Note the tests don't test all the paths, in particular stride, and ensuring the old value is preserved.