diff options
author | Jakob Unterwurzacher | 2018-04-02 18:43:50 +0200 |
---|---|---|
committer | Jakob Unterwurzacher | 2018-04-02 18:43:50 +0200 |
commit | a0fd3eca98218aa7d165080ab20cf234330e5e09 (patch) | |
tree | 08ea2eae6946f26316576af043fba428f37da14c /tests/fsck | |
parent | b6c8960b01f9e5366814b0dada57a0b1e6a031d9 (diff) |
fsck: test against example_filesystems
Diffstat (limited to 'tests/fsck')
-rw-r--r-- | tests/fsck/fsck_test.go | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/fsck/fsck_test.go b/tests/fsck/fsck_test.go index b5bbf84..77f94c3 100644 --- a/tests/fsck/fsck_test.go +++ b/tests/fsck/fsck_test.go @@ -1,7 +1,9 @@ package fsck import ( + "os" "os/exec" + "strings" "testing" "github.com/rfjakob/gocryptfs/internal/exitcodes" @@ -18,3 +20,41 @@ func TestBrokenFsV14(t *testing.T) { t.Errorf("wrong exit code, have=%d want=%d", code, exitcodes.FsckErrors) } } + +func TestExampleFses(t *testing.T) { + dirfd, err := os.Open("../example_filesystems") + if err != nil { + t.Fatal(err) + } + var fsNames []string + entries, err := dirfd.Readdir(0) + if err != nil { + t.Fatal(err) + } + for _, e := range entries { + if !e.IsDir() { + continue + } + if strings.Contains(e.Name(), "reverse") { + continue + } + if e.Name() == "content" { + continue + } + fsNames = append(fsNames, e.Name()) + } + for _, n := range fsNames { + path := "../example_filesystems/" + n + cmd := exec.Command(test_helpers.GocryptfsBinary, "-fsck", "-extpass", "echo test", path) + outBin, err := cmd.CombinedOutput() + out := string(outBin) + code := test_helpers.ExtractCmdExitCode(err) + if code == exitcodes.DeprecatedFS { + continue + } + if code != 0 { + t.Log(out) + t.Errorf("fsck returned code %d but fs should be clean", code) + } + } +} |