OK, I see what's wrong. mips32 platforms only have access to the low 2 GiB of virtual memory, so heapAddrBits is 31 and maxOffAddr is set to (2^31)-1. The tests on 32-bit platforms, however, provide dummy addresses in the top half. This didn't break before because maxOffAddr was ^uintptr(0). The fix is to make the tests use addresses in the bottom half only on mips32, I think.
Ah hah, even more specifically, it looks like the test never goes beyond the 2 GiB boundary, but does hit the top of it. maxOffAddr is inclusive but the limit in the range is exclusive. When we try to prune, the range ends up being entirely contained in the last chunk, hence the failure. I don't know the likelihood that the OS on mips32 platforms is going to hand out memory at the top of the address space, but this seems worth guarding against more generally (and leaving the tests as they are).