From 95a89e5302c923142526af54eb247f610512d140 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Thu, 5 Mar 2015 19:22:32 +1100 Subject: [PATCH] PosixTest.WriteAtDoesntChangeOffset_AppendMode --- samples/memfs/posix_test.go | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/samples/memfs/posix_test.go b/samples/memfs/posix_test.go index ab78985..4f4d68f 100644 --- a/samples/memfs/posix_test.go +++ b/samples/memfs/posix_test.go @@ -187,7 +187,35 @@ func (t *PosixTest) WriteAtDoesntChangeOffset_NotAppendMode() { } func (t *PosixTest) WriteAtDoesntChangeOffset_AppendMode() { - AssertTrue(false, "TODO") + var err error + var n int + + // Create a file in append mode. + f, err := os.OpenFile( + path.Join(t.dir, "foo"), + os.O_RDWR|os.O_APPEND|os.O_CREATE, + 0600) + + t.toClose = append(t.toClose, f) + AssertEq(nil, err) + + // Make it 16 bytes long. + err = f.Truncate(16) + AssertEq(nil, err) + + // Seek to offset 4. + _, err = f.Seek(4, 0) + AssertEq(nil, err) + + // Write the range [10, 14). + n, err = f.WriteAt([]byte("taco"), 2) + AssertEq(nil, err) + AssertEq(4, n) + + // We should still be at offset 4. + offset, err := getFileOffset(f) + AssertEq(nil, err) + ExpectEq(4, offset) } func (t *PosixTest) ReadOverlapsEndOfFile() {