46 lines
1014 B
Go
Executable File
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)
|
|
}
|
|
}
|
|
}
|