Commit 72c1660c13cb8cf0d590d91fb03625a68e53900f 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.