commit 53a0451917caf76866b0084aa748077ceb2ad0b4
parent 6b7187b694df3c8a90b28ac0e214386dceff053b
Author: Sean Enck <sean@ttypty.com>
Date: Sat, 15 Oct 2022 18:25:37 -0400
moving tests into scripts area
Diffstat:
7 files changed, 119 insertions(+), 125 deletions(-)
diff --git a/Makefile b/Makefile
@@ -5,6 +5,7 @@ TESTDIR := $(sort $(dir $(wildcard internal/**/*_test.go)))
DOC := $(BUILD)doc.text
MAN := $(BUILD)lb.man
DOCTEXT := scripts/doc.sections
+ACTUAL := $(BUILD)actual.log
.PHONY: $(TESTDIR)
@@ -20,7 +21,8 @@ $(TESTDIR):
cd $@ && go test
check: $(TARGET) $(TESTDIR)
- cd tests && make BUILD=../$(BUILD)
+ LB_BUILD=$(TARGET) TEST_DATA=$(BUILD) go run scripts/check.go 2>&1 | sed "s#$(PWD)/$(DATA)##g" | sed 's/^[0-9][0-9][0-9][0-9][0-9][0-9]$$/XXXXXX/g' > $(ACTUAL)
+ diff -u $(ACTUAL) scripts/tests.expected.log
clean:
rm -rf $(BUILD)
@@ -35,3 +37,4 @@ $(MAN): $(TARGET) $(DOC)
install:
install -Dm644 $(MAN) $(DESTDIR)share/man/man1/lb.1
install -Dm755 $(TARGET) $(DESTDIR)bin/lb
+
diff --git a/go.mod b/go.mod
@@ -13,5 +13,5 @@ require (
github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect
github.com/boombuler/barcode v1.0.1 // indirect
golang.org/x/crypto v0.0.0-20221012134737-56aed061732a // indirect
- golang.org/x/sys v0.0.0-20221010170243-090e33056c14 // indirect
+ golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 // indirect
)
diff --git a/go.sum b/go.sum
@@ -26,6 +26,6 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200513112337-417ce2331b5c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20221010170243-090e33056c14 h1:k5II8e6QD8mITdi+okbbmR/cIyEbeXLBhy5Ha4nevyc=
-golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43 h1:OK7RB6t2WQX54srQQYSXMW8dF5C6/8+oA/s5QBmmto4=
+golang.org/x/sys v0.0.0-20221013171732-95e765b1cc43/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
diff --git a/scripts/check.go b/scripts/check.go
@@ -0,0 +1,112 @@
+// package main runs the tests
+package main
+
+import (
+ "bytes"
+ "fmt"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "time"
+)
+
+const (
+ testKey = "plaintextkey"
+)
+
+func die(message string, err error) {
+ fmt.Fprintf(os.Stderr, "%s (%v)", message, err)
+ os.Exit(1)
+}
+
+func runCommand(args []string, data []string) {
+ p := exec.Command(os.Getenv("LB_BUILD"), args...)
+ var buf bytes.Buffer
+ for _, d := range data {
+ if _, err := buf.WriteString(fmt.Sprintf("%s\n", d)); err != nil {
+ die("failed to write stdin", err)
+ }
+ }
+ p.Stdout = os.Stdout
+ p.Stderr = os.Stderr
+ p.Stdin = &buf
+ if err := p.Run(); err != nil {
+ fmt.Println(err)
+ }
+}
+
+func ls() {
+ runCommand([]string{"ls"}, nil)
+}
+
+func rm(k string) {
+ runCommand([]string{"rm", k}, []string{"y"})
+}
+
+func show(k string) {
+ runCommand([]string{"show", k}, nil)
+}
+
+func insert(k string, d []string) {
+ runCommand([]string{"insert", k}, d)
+}
+
+func totpList() {
+ runCommand([]string{"totp", "-list"}, nil)
+}
+
+func main() {
+ store := filepath.Join(os.Getenv("TEST_DATA"), fmt.Sprintf("%s.kdbx", time.Now().Format("20060102150405")))
+ os.Setenv("LOCKBOX_STORE", store)
+ os.Setenv("LOCKBOX_KEY", testKey)
+ os.Setenv("LOCKBOX_TOTP", "totp")
+ os.Setenv("LOCKBOX_INTERACTIVE", "no")
+ os.Setenv("LOCKBOX_READONLY", "no")
+ os.Setenv("LOCKBOX_KEYMODE", "plaintext")
+ insert("keys/k/one2", []string{"test2"})
+ for _, k := range []string{"keys/k/one", "key/a/one", "keys/k/one", "keys/k/one/", "/keys/k/one", "keys/aa/b//s///e"} {
+ insert(k, []string{"test"})
+ }
+ insert("keys2/k/three", []string{"test3", "test4"})
+ ls()
+ rm("keys/k/one")
+ fmt.Println()
+ ls()
+ runCommand([]string{"find", "e"}, nil)
+ show("keys/k/one2")
+ show("keys2/k/three")
+ for _, k := range []string{"test/k", "test/k/totp"} {
+ runCommand([]string{"insert", "-totp", k}, []string{"5ae472abqdekjqykoyxk7hvc2leklq5n"})
+ }
+ totpList()
+ insert("test/k/totp", []string{"5ae472abqdekjqykoyxk7hvc2leklq5n"})
+ totpList()
+ runCommand([]string{"totp", "test/k"}, nil)
+ runCommand([]string{"hash", store}, nil)
+ rm("keys2/k/three")
+ fmt.Println()
+ rm("test/k/totp")
+ fmt.Println()
+ rm("test/k/one")
+ fmt.Println()
+ fmt.Println()
+ runCommand([]string{"mv", "key/a/one", "keyx/d/e"}, nil)
+ ls()
+ rm("keyx/d/e")
+ fmt.Println()
+ ls()
+ insert("keys/k2/one2", []string{"test2"})
+ insert("keys/k2/one", []string{"test"})
+ insert("keys/k2/t1/one2", []string{"test2"})
+ insert("keys/k2/t1/one", []string{"test"})
+ insert("keys/k2/t2/one2", []string{"test2"})
+ insert("keys/k2/t2/one", []string{"test"})
+ fmt.Println()
+ ls()
+ rm("keys/k2/t1/*")
+ fmt.Println()
+ ls()
+ rm("keys/k2/*")
+ fmt.Println()
+ ls()
+}
diff --git a/tests/expected.log b/scripts/tests.expected.log
diff --git a/tests/Makefile b/tests/Makefile
@@ -1,7 +0,0 @@
-DATA := bin
-ACTUAL := $(DATA)/actual.log
-
-all:
- mkdir -p $(DATA)
- go run run.go 2>&1 | sed "s#$(PWD)/$(DATA)##g" | sed 's/^[0-9][0-9][0-9][0-9][0-9][0-9]$$/XXXXXX/g' > $(ACTUAL)
- diff -u $(ACTUAL) expected.log
diff --git a/tests/run.go b/tests/run.go
@@ -1,114 +0,0 @@
-// package main runs the tests
-package main
-
-import (
- "bytes"
- "fmt"
- "os"
- "os/exec"
- "path/filepath"
- "time"
-)
-
-const (
- testDir = "bin"
- testKey = "plaintextkey"
- binary = "../bin/lb"
-)
-
-func die(message string, err error) {
- fmt.Fprintf(os.Stderr, "%s (%v)", message, err)
- os.Exit(1)
-}
-
-func runCommand(args []string, data []string) {
- p := exec.Command(binary, args...)
- var buf bytes.Buffer
- for _, d := range data {
- if _, err := buf.WriteString(fmt.Sprintf("%s\n", d)); err != nil {
- die("failed to write stdin", err)
- }
- }
- p.Stdout = os.Stdout
- p.Stderr = os.Stderr
- p.Stdin = &buf
- if err := p.Run(); err != nil {
- fmt.Println(err)
- }
-}
-
-func ls() {
- runCommand([]string{"ls"}, nil)
-}
-
-func rm(k string) {
- runCommand([]string{"rm", k}, []string{"y"})
-}
-
-func show(k string) {
- runCommand([]string{"show", k}, nil)
-}
-
-func insert(k string, d []string) {
- runCommand([]string{"insert", k}, d)
-}
-
-func totpList() {
- runCommand([]string{"totp", "-list"}, nil)
-}
-
-func main() {
- store := filepath.Join(testDir, fmt.Sprintf("%s.kdbx", time.Now().Format("20060102150405")))
- os.Setenv("LOCKBOX_STORE", store)
- os.Setenv("LOCKBOX_KEY", testKey)
- os.Setenv("LOCKBOX_TOTP", "totp")
- os.Setenv("LOCKBOX_INTERACTIVE", "no")
- os.Setenv("LOCKBOX_READONLY", "no")
- os.Setenv("LOCKBOX_KEYMODE", "plaintext")
- insert("keys/k/one2", []string{"test2"})
- for _, k := range []string{"keys/k/one", "key/a/one", "keys/k/one", "keys/k/one/", "/keys/k/one", "keys/aa/b//s///e"} {
- insert(k, []string{"test"})
- }
- insert("keys2/k/three", []string{"test3", "test4"})
- ls()
- rm("keys/k/one")
- fmt.Println()
- ls()
- runCommand([]string{"find", "e"}, nil)
- show("keys/k/one2")
- show("keys2/k/three")
- for _, k := range []string{"test/k", "test/k/totp"} {
- runCommand([]string{"insert", "-totp", k}, []string{"5ae472abqdekjqykoyxk7hvc2leklq5n"})
- }
- totpList()
- insert("test/k/totp", []string{"5ae472abqdekjqykoyxk7hvc2leklq5n"})
- totpList()
- runCommand([]string{"totp", "test/k"}, nil)
- runCommand([]string{"hash", store}, nil)
- rm("keys2/k/three")
- fmt.Println()
- rm("test/k/totp")
- fmt.Println()
- rm("test/k/one")
- fmt.Println()
- fmt.Println()
- runCommand([]string{"mv", "key/a/one", "keyx/d/e"}, nil)
- ls()
- rm("keyx/d/e")
- fmt.Println()
- ls()
- insert("keys/k2/one2", []string{"test2"})
- insert("keys/k2/one", []string{"test"})
- insert("keys/k2/t1/one2", []string{"test2"})
- insert("keys/k2/t1/one", []string{"test"})
- insert("keys/k2/t2/one2", []string{"test2"})
- insert("keys/k2/t2/one", []string{"test"})
- fmt.Println()
- ls()
- rm("keys/k2/t1/*")
- fmt.Println()
- ls()
- rm("keys/k2/*")
- fmt.Println()
- ls()
-}