From 3c2c07a69daf75d377ba196c28524c0fc6a16db6 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Thu, 23 Oct 2025 21:02:22 -0700 Subject: Move sym files into the root directory --- sym_test.go | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 sym_test.go (limited to 'sym_test.go') diff --git a/sym_test.go b/sym_test.go new file mode 100644 index 0000000..704d477 --- /dev/null +++ b/sym_test.go @@ -0,0 +1,75 @@ +package sym + +import ( + "bytes" + "os" + "path/filepath" + "testing" +) + +var testEncryptOptions = func() EncryptOptions { + opts := DefaultEncryptOptions + opts.iterations = 10 + return opts +}() + +func mustWriteFile(t *testing.T, path string, content []byte) { + t.Helper() + if err := os.WriteFile(path, content, 0600); err != nil { + t.Fatalf("Failed to write test file: %s", err) + } +} + +func mustReadFile(t *testing.T, path string) []byte { + t.Helper() + content, err := os.ReadFile(path) + if err != nil { + t.Fatalf("Failed to read file: %s", err) + } + return content +} + +func mustRename(t *testing.T, src, dst string) { + t.Helper() + if err := os.Rename(src, dst); err != nil { + t.Fatalf("Failed to rename: %s", err) + } +} + +func mustRemove(t *testing.T, path string) { + t.Helper() + if err := os.Remove(path); err != nil { + t.Fatalf("Failed to remove file: %s", err) + } +} + +func mustChmod(t *testing.T, path string, mod os.FileMode) { + t.Helper() + if err := os.Chmod(path, mod); err != nil { + t.Fatalf("Failed to chmod: %s", err) + } +} + +func TestEncryptDecrypt(t *testing.T) { + t.Parallel() + + buf := make([]byte, 12*1024*1024) + for i := range buf { + buf[i] = byte(i) + } + + fileName := filepath.Join(t.TempDir(), "file") + mustWriteFile(t, fileName, buf) + const password = "karp cache tidal mars fed rajah uses graze pobox flew" + if err := testEncryptOptions.encryptFile(fileName, password); err != nil { + t.Fatalf("EncryptFile failed: %s", err) + } + mustRemove(t, fileName) + if err := DefaultDecryptOptions.decryptFile(fileName+".enc", password); err != nil { + t.Fatalf("DecryptFile failed: %s", err) + } + gotContents := mustReadFile(t, fileName) + if !bytes.Equal(gotContents, buf) { + t.Errorf("contents differ") + } +} -- cgit v1.3.1