From 3c405a41c29dda84ceb6abe9be85339143a465fc Mon Sep 17 00:00:00 2001 From: Vaughan Newton Date: Mon, 23 Sep 2013 16:51:27 +0200 Subject: [PATCH] Moved LoadFile test to a linux-only test file. --- ini_linux_test.go | 43 +++++++++++++++++++++++++++++++++++++++++++ ini_test.go | 37 ------------------------------------- 2 files changed, 43 insertions(+), 37 deletions(-) create mode 100644 ini_linux_test.go diff --git a/ini_linux_test.go b/ini_linux_test.go new file mode 100644 index 0000000..38a6f00 --- /dev/null +++ b/ini_linux_test.go @@ -0,0 +1,43 @@ +package ini + +import ( + "reflect" + "syscall" + "testing" +) + +func TestLoadFile(t *testing.T) { + originalOpenFiles := numFilesOpen(t) + + file, err := LoadFile("test.ini") + if err != nil { + t.Fatal(err) + } + + if originalOpenFiles != numFilesOpen(t) { + t.Error("test.ini not closed") + } + + if !reflect.DeepEqual(file, File{"default": {"stuff": "things"}}) { + t.Error("file not read correctly") + } +} + +func numFilesOpen(t *testing.T) (num uint64) { + var rlimit syscall.Rlimit + err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit) + if err != nil { + t.Fatal(err) + } + maxFds := int(rlimit.Cur) + + var stat syscall.Stat_t + for i := 0; i < maxFds; i++ { + if syscall.Fstat(i, &stat) == nil { + num++ + } else { + return + } + } + return +} diff --git a/ini_test.go b/ini_test.go index f8ee4dd..06a4d05 100644 --- a/ini_test.go +++ b/ini_test.go @@ -3,7 +3,6 @@ package ini import ( "reflect" "strings" - "syscall" "testing" ) @@ -88,39 +87,3 @@ func TestDefinedSectionBehaviour(t *testing.T) { "a": {"this": "that"}, }) } - -func TestLoadFile(t *testing.T) { - originalOpenFiles := numFilesOpen(t) - - file, err := LoadFile("test.ini") - if err != nil { - t.Fatal(err) - } - - if originalOpenFiles != numFilesOpen(t) { - t.Error("test.ini not closed") - } - - if !reflect.DeepEqual(file, File{"default": {"stuff": "things"}}) { - t.Error("file not read correctly") - } -} - -func numFilesOpen(t *testing.T) (num uint64) { - var rlimit syscall.Rlimit - err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit) - if err != nil { - t.Fatal(err) - } - maxFds := int(rlimit.Cur) - - var stat syscall.Stat_t - for i := 0; i < maxFds; i++ { - if syscall.Fstat(i, &stat) == nil { - num++ - } else { - return - } - } - return -}