diff options
Diffstat (limited to 'cryptfs/config_test.go')
-rw-r--r-- | cryptfs/config_test.go | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/cryptfs/config_test.go b/cryptfs/config_test.go new file mode 100644 index 0000000..2e46a25 --- /dev/null +++ b/cryptfs/config_test.go @@ -0,0 +1,71 @@ +package cryptfs + +import ( + "fmt" + "testing" + "time" +) + +func TestLoadV1(t *testing.T) { + _, _, err := LoadConfFile("config_test/v1.conf", "test") + if err == nil { + t.Errorf("Outdated v1 config file must fail to load but it didn't") + } else if testing.Verbose() { + fmt.Print(err) + } +} + +// Load a known-good config file and verify that it takes at least 100ms +// (brute-force protection) +func TestLoadV2(t *testing.T) { + t1 := time.Now() + + _, _, err := LoadConfFile("config_test/v2.conf", "foo") + if err != nil { + t.Errorf("Could not load v2 config file: %v", err) + } + + elapsed := time.Since(t1) + if elapsed < 100 *time.Millisecond { + t.Errorf("scrypt calculation runs too fast: %d ms", elapsed / time.Millisecond) + } +} + +func TestLoadV2PwdError(t *testing.T) { + if ! testing.Verbose() { + Warn.Disable() + } + _, _, err := LoadConfFile("config_test/v2.conf", "wrongpassword") + Warn.Enable() + if err == nil { + t.Errorf("Loading with wrong password must fail but it didn't") + } +} + +func TestLoadV2Feature(t *testing.T) { + _, _, err := LoadConfFile("config_test/PlaintextNames.conf", "test") + if err != nil { + t.Errorf("Could not load v2 PlaintextNames config file: %v", err) + } +} + +func TestLoadV2StrangeFeature(t *testing.T) { + _, _, err := LoadConfFile("config_test/StrangeFeature.conf", "test") + if err == nil { + t.Errorf("Loading unknown feature must fail but it didn't") + } else if testing.Verbose() { + fmt.Print(err) + } +} + +func TestCreateConfFile(t *testing.T) { + err := CreateConfFile("config_test/tmp.conf", "test", false) + if err != nil { + t.Fatal(err) + } + _, _, err = LoadConfFile("config_test/tmp.conf", "test") + if err != nil { + t.Fatal(err) + } + +} |