From a11be99f88833129a7f980cbd9f7e5e542b8bea5 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 31 Mar 2015 10:04:29 +1100 Subject: [PATCH 1/7] ForgetFSTest.Open_Bar --- samples/forgetfs/forget_fs_test.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/samples/forgetfs/forget_fs_test.go b/samples/forgetfs/forget_fs_test.go index 4245122..7f21200 100644 --- a/samples/forgetfs/forget_fs_test.go +++ b/samples/forgetfs/forget_fs_test.go @@ -65,7 +65,17 @@ func (t *ForgetFSTest) Open_Foo() { AssertEq(nil, err) } -func (t *ForgetFSTest) Open_Dir() { +func (t *ForgetFSTest) Open_Bar() { + var err error + + f, err := os.Open(path.Join(t.Dir, "bar")) + AssertEq(nil, err) + + err = f.Close() + AssertEq(nil, err) +} + +func (t *ForgetFSTest) Open_ManyTimes() { AssertTrue(false, "TODO") } @@ -73,7 +83,11 @@ func (t *ForgetFSTest) Stat_Foo() { AssertTrue(false, "TODO") } -func (t *ForgetFSTest) Stat_Dir() { +func (t *ForgetFSTest) Stat_Bar() { + AssertTrue(false, "TODO") +} + +func (t *ForgetFSTest) Stat_ManyTimes() { AssertTrue(false, "TODO") } From ea13e766fd6762b10c35b9bf0ad3c66a92614637 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 31 Mar 2015 10:06:06 +1100 Subject: [PATCH 2/7] ForgetFSTest.Open_ManyTimes --- samples/forgetfs/forget_fs_test.go | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/samples/forgetfs/forget_fs_test.go b/samples/forgetfs/forget_fs_test.go index 7f21200..3025849 100644 --- a/samples/forgetfs/forget_fs_test.go +++ b/samples/forgetfs/forget_fs_test.go @@ -15,6 +15,7 @@ package forgetfs_test import ( + "io" "os" "path" "testing" @@ -76,7 +77,27 @@ func (t *ForgetFSTest) Open_Bar() { } func (t *ForgetFSTest) Open_ManyTimes() { - AssertTrue(false, "TODO") + // Set up a slice of files that will be closed when we're done. + var toClose []io.Closer + defer func() { + for _, c := range toClose { + ExpectEq(nil, c.Close()) + } + }() + + // Open foo many times. + for i := 0; i < 100; i++ { + f, err := os.Open(path.Join(t.Dir, "foo")) + AssertEq(nil, err) + toClose = append(toClose, f) + } + + // Open bar many times. + for i := 0; i < 100; i++ { + f, err := os.Open(path.Join(t.Dir, "bar")) + AssertEq(nil, err) + toClose = append(toClose, f) + } } func (t *ForgetFSTest) Stat_Foo() { From fb6dcee4d04d356313b32ad98b2ca2319b140d7c Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 31 Mar 2015 10:06:51 +1100 Subject: [PATCH 3/7] ForgetFSTest.Stat_Foo --- samples/forgetfs/forget_fs_test.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/samples/forgetfs/forget_fs_test.go b/samples/forgetfs/forget_fs_test.go index 3025849..45b52e6 100644 --- a/samples/forgetfs/forget_fs_test.go +++ b/samples/forgetfs/forget_fs_test.go @@ -101,7 +101,13 @@ func (t *ForgetFSTest) Open_ManyTimes() { } func (t *ForgetFSTest) Stat_Foo() { - AssertTrue(false, "TODO") + var fi os.FileInfo + var err error + + fi, err = os.Stat(path.Join(t.Dir, "foo")) + AssertEq(nil, err) + AssertEq("foo", fi.Name()) + AssertEq(os.FileMode(0777), fi.Mode()) } func (t *ForgetFSTest) Stat_Bar() { From a84040dc15c19f3230453aac1a24ba4a5a3f376e Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 31 Mar 2015 10:07:07 +1100 Subject: [PATCH 4/7] ForgetFSTest.Stat_Bar --- samples/forgetfs/forget_fs_test.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/samples/forgetfs/forget_fs_test.go b/samples/forgetfs/forget_fs_test.go index 45b52e6..b25e2c7 100644 --- a/samples/forgetfs/forget_fs_test.go +++ b/samples/forgetfs/forget_fs_test.go @@ -111,7 +111,13 @@ func (t *ForgetFSTest) Stat_Foo() { } func (t *ForgetFSTest) Stat_Bar() { - AssertTrue(false, "TODO") + var fi os.FileInfo + var err error + + fi, err = os.Stat(path.Join(t.Dir, "bar")) + AssertEq(nil, err) + AssertEq("bar", fi.Name()) + AssertEq(0777|os.ModeDir, fi.Mode()) } func (t *ForgetFSTest) Stat_ManyTimes() { From ce13e404fd8eec631e3196c75f1fea80923a16c7 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 31 Mar 2015 10:07:43 +1100 Subject: [PATCH 5/7] ForgetFSTest.Stat_ManyTimes --- samples/forgetfs/forget_fs_test.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/samples/forgetfs/forget_fs_test.go b/samples/forgetfs/forget_fs_test.go index b25e2c7..c03396e 100644 --- a/samples/forgetfs/forget_fs_test.go +++ b/samples/forgetfs/forget_fs_test.go @@ -121,7 +121,19 @@ func (t *ForgetFSTest) Stat_Bar() { } func (t *ForgetFSTest) Stat_ManyTimes() { - AssertTrue(false, "TODO") + var err error + + // Stat foo many times. + for i := 0; i < 100; i++ { + _, err = os.Stat(path.Join(t.Dir, "foo")) + AssertEq(nil, err) + } + + // Stat bar many times. + for i := 0; i < 100; i++ { + _, err = os.Stat(path.Join(t.Dir, "bar")) + AssertEq(nil, err) + } } func (t *ForgetFSTest) CreateFile() { From c0d3a195c6e676bca135d4d4fe5b80d5b3c7ca3b Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 31 Mar 2015 10:09:09 +1100 Subject: [PATCH 6/7] ForgetFSTest.CreateFile --- samples/forgetfs/forget_fs_test.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/samples/forgetfs/forget_fs_test.go b/samples/forgetfs/forget_fs_test.go index c03396e..8018777 100644 --- a/samples/forgetfs/forget_fs_test.go +++ b/samples/forgetfs/forget_fs_test.go @@ -137,7 +137,19 @@ func (t *ForgetFSTest) Stat_ManyTimes() { } func (t *ForgetFSTest) CreateFile() { - AssertTrue(false, "TODO") + // Create and close many files within the root. + for i := 0; i < 100; i++ { + f, err := os.Create(path.Join(t.Dir, "blah")) + AssertEq(nil, err) + AssertEq(nil, f.Close()) + } + + // Create and close many files within the sub-directory. + for i := 0; i < 100; i++ { + f, err := os.Create(path.Join(t.Dir, "bar", "blah")) + AssertEq(nil, err) + AssertEq(nil, f.Close()) + } } func (t *ForgetFSTest) MkDir() { From a31287ac351ed5ad936fe8718ba255feae745d24 Mon Sep 17 00:00:00 2001 From: Aaron Jacobs Date: Tue, 31 Mar 2015 10:09:58 +1100 Subject: [PATCH 7/7] ForgetFSTest.MkDir --- samples/forgetfs/forget_fs_test.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/samples/forgetfs/forget_fs_test.go b/samples/forgetfs/forget_fs_test.go index 8018777..e70bbe9 100644 --- a/samples/forgetfs/forget_fs_test.go +++ b/samples/forgetfs/forget_fs_test.go @@ -153,5 +153,15 @@ func (t *ForgetFSTest) CreateFile() { } func (t *ForgetFSTest) MkDir() { - AssertTrue(false, "TODO") + // Create many directories within the root. + for i := 0; i < 100; i++ { + err := os.Mkdir(path.Join(t.Dir, "blah"), 0777) + AssertEq(nil, err) + } + + // Create many directories within the sub-directory. + for i := 0; i < 100; i++ { + err := os.Mkdir(path.Join(t.Dir, "bar", "blah"), 0777) + AssertEq(nil, err) + } }