Commit 72c1660c13 introduced TestMain, but forgot to call os.Exit with the value returned from m.Run This causes "go test" to exit with status 0, even if tests fail. Adding os.Exit to TestMain makes sure the success/failure of tests is correctly reported through the exit code.
Quick seed 21691 used to generate duplicate keys,
which caused some Puts of values to overwrite other values,
causing spurious test failures.
Fixes#629.