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) +		} +	} +} | 
