summaryrefslogtreecommitdiff
path: root/xdelta3/go/src/regtest.go
diff options
context:
space:
mode:
Diffstat (limited to 'xdelta3/go/src/regtest.go')
-rw-r--r--xdelta3/go/src/regtest.go34
1 files changed, 19 insertions, 15 deletions
diff --git a/xdelta3/go/src/regtest.go b/xdelta3/go/src/regtest.go
index 1798f40..f8045c0 100644
--- a/xdelta3/go/src/regtest.go
+++ b/xdelta3/go/src/regtest.go
@@ -20,48 +20,51 @@ func smokeTest(r *xdelta.Runner, t *xdelta.TestGroup, p *xdelta.Program) {
20 target := "Hello world!" 20 target := "Hello world!"
21 source := "Hello world, nice to meet you!" 21 source := "Hello world, nice to meet you!"
22 22
23 run, err := r.Exec(p, true, []string{"-e"}) 23 run, err := r.Exec(p, true, []string{"-evv"})
24 if err != nil { 24 if err != nil {
25 t.Panic(err) 25 t.Panic(err)
26 } 26 }
27 encodeout := t.Drain(run.Stdout) 27 encodeout := t.Drain(run.Stdout, "encode.stdout")
28 t.Empty(run.Stderr, "encode") 28 t.Empty(run.Stderr, "encode")
29 29
30 t.Write("encode.stdin", run.Stdin, []byte(target)) 30 t.Write("encode.stdin", run.Stdin, []byte(target))
31 t.Write("encode.stdout", run.Srcin, []byte(source)) 31 t.Write("encode.srcin", run.Srcin, []byte(source))
32 32
33 if err := run.Cmd.Wait(); err != nil { 33 if err := run.Cmd.Wait(); err != nil {
34 t.Panic(err) 34 t.Panic(err)
35 } 35 }
36 36
37 run, err = r.Exec(p, true, []string{"-d"}) 37 run, err = r.Exec(p, true, []string{"-dvv"})
38 if err != nil { 38 if err != nil {
39 t.Panic(err) 39 t.Panic(err)
40 } 40 }
41 41
42 decodeout := t.Drain(run.Stdout) 42 decodeout := t.Drain(run.Stdout, "decode.stdout")
43 t.Empty(run.Stderr, "decode") 43 t.Empty(run.Stderr, "decode")
44 44
45 t.Write("decode.stdin", run.Stdin, <-encodeout) 45 t.Write("decode.stdin", run.Stdin, <-encodeout)
46 t.Write("decode.stdout", run.Srcin, []byte(source)) 46 t.Write("decode.srcin", run.Srcin, []byte(source))
47 47 decoded := string(<-decodeout)
48 if err := run.Cmd.Wait(); err != nil { 48 if err := run.Cmd.Wait(); err != nil {
49 t.Panic(err) 49 t.Panic(err)
50 } 50 }
51 51 if decoded != target {
52 if string(<-decodeout) != target {
53 t.Panic(errors.New("It's not working!!!")) 52 t.Panic(errors.New("It's not working!!!"))
54 } 53 }
55 t.Done() 54 t.Done()
55 fmt.Println("Smoketest pass")
56} 56}
57 57
58func offsetTest(r *xdelta.Runner, t *xdelta.TestGroup, p *xdelta.Program, offset, bufsize, length int64) { 58func offsetTest(r *xdelta.Runner, t *xdelta.TestGroup, p *xdelta.Program, offset, bufsize, length int64) {
59 fmt.Println("Hi")
59 t.Add(1) 60 t.Add(1)
60 eargs := []string{"-e", "-1", "-n", fmt.Sprint("-B", bufsize), "-vv", fmt.Sprint("-W", winsize)} 61 eargs := []string{"-e", "-1", "-n", fmt.Sprint("-B", bufsize), "-vv", fmt.Sprint("-W", winsize)}
61 enc, err := r.Exec(p, true, eargs) 62 enc, err := r.Exec(p, true, eargs)
63 fmt.Println("Hi2")
62 if err != nil { 64 if err != nil {
63 t.Panic(err) 65 t.Panic(err)
64 } 66 }
67 fmt.Println("Hi3")
65 dargs := []string{"-d", fmt.Sprint("-B", bufsize), "-vv", fmt.Sprint("-W", winsize)} 68 dargs := []string{"-d", fmt.Sprint("-B", bufsize), "-vv", fmt.Sprint("-W", winsize)}
66 dec, err := r.Exec(p, true, dargs) 69 dec, err := r.Exec(p, true, dargs)
67 if err != nil { 70 if err != nil {
@@ -70,12 +73,15 @@ func offsetTest(r *xdelta.Runner, t *xdelta.TestGroup, p *xdelta.Program, offset
70 73
71 read, write := io.Pipe() 74 read, write := io.Pipe()
72 75
73 t.CopyStreams(enc.Stdout, dec.Stdin)
74 t.CompareStreams(dec.Stdout, read, length)
75
76 t.Empty(enc.Stderr, "encode") 76 t.Empty(enc.Stderr, "encode")
77 t.Empty(dec.Stderr, "decode") 77 t.Empty(dec.Stderr, "decode")
78 78
79 fmt.Println("Hi4")
80 t.CopyStreams(enc.Stdout, dec.Stdin)
81 fmt.Println("Hi5")
82 t.CompareStreams(dec.Stdout, read, length)
83 fmt.Println("Hi6")
84
79 // TODO: seems possible to use one WriteRstreams call to generate 85 // TODO: seems possible to use one WriteRstreams call to generate
80 // the source and target for both encoder and decoder. Why not? 86 // the source and target for both encoder and decoder. Why not?
81 xdelta.WriteRstreams(t, seed, offset, length, enc.Srcin, enc. Stdin) 87 xdelta.WriteRstreams(t, seed, offset, length, enc.Srcin, enc. Stdin)
@@ -101,7 +107,5 @@ func main() {
101 107
102 smokeTest(r, xdelta.NewTestGroup(), prog) 108 smokeTest(r, xdelta.NewTestGroup(), prog)
103 109
104 offsetTest(r, xdelta.NewTestGroup(), prog, 1 << 8, 1 << 9, 1 << 10) 110 offsetTest(r, xdelta.NewTestGroup(), prog, 1 << 31, 1 << 32, 1 << 33)
105
106 //offsetTest(r, prog, 1 << 31, 1 << 32, 1 << 33)
107} 111}