cloudly-min/enc_test.go

46 lines
1014 B
Go
Executable File

package main
import (
"local/cloudly/capture"
"os"
"strings"
"testing"
)
func Test_EncDec(t *testing.T) {
os.Setenv("KEY", "123")
defer os.Setenv("KEY", "")
cases := []struct {
in string
}{
{in: "hello world"},
{in: "h"},
{in: ""},
{in: "hello world my name is charl" + strings.Repeat("i", 100) + "e!"},
}
for _, c := range cases {
encoded := capture.Stdout(func() {
capture.Stdin(c.in, func() {
if err := Enc(); err != nil {
t.Fatalf("cannot encode: %v", err)
}
})
})
if encoded == "" || encoded == c.in {
t.Errorf("failed to encode (%v): got (%v)", len(c.in), len(encoded))
}
t.Logf("%v => %v => ?", len(c.in), len(encoded))
decoded := capture.Stdout(func() {
capture.Stdin(encoded, func() {
if err := Dec(); err != nil {
t.Fatalf("cannot decode: %v", err)
}
})
})
if decoded != c.in {
t.Errorf("failed to encode-decode (%v): got (%v)", len(c.in), len(encoded))
t.Logf("%q => (%v) => %q", c.in, len(encoded), decoded)
}
}
}