add kqueue read test, plus modifications to make it easier to use