FakeFile is supposed to emulate a regular file. This would mean that whenever you reach the end of the file/string you are reading, you are supposed to signal a close callback because eof has been reached.
I.e. the close callback on FakeFile should therefore not need to wait for an actual close from the writer. Reaching the end of the string (=file) suffices.
All this contrasts with FakePipe where this obviously not hold true and you have to wait for an explicit close from the writer side.