diff options
Diffstat (limited to 'xdelta3/go/src/regtest.go')
-rw-r--r-- | xdelta3/go/src/regtest.go | 34 |
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 | ||
58 | func offsetTest(r *xdelta.Runner, t *xdelta.TestGroup, p *xdelta.Program, offset, bufsize, length int64) { | 58 | func 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 | } |