-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathstream_test.go
More file actions
80 lines (68 loc) · 1.49 KB
/
stream_test.go
File metadata and controls
80 lines (68 loc) · 1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package nfdump
import (
"bytes"
"fmt"
"io"
"io/ioutil"
"testing"
)
func TestCorruptStreamReader(t *testing.T) {
var fileName = "testdata/nfcapd-corrupt"
var data []byte
var err error
if data, err = ioutil.ReadFile(fileName); err != nil {
t.Error(err)
}
var reader = bytes.NewReader(data)
var nfs *NFStream
nfs, err = StreamReader(reader)
if err != nil {
t.Errorf("StreamReader error:%#+v", err)
}
for {
if _, err = nfs.Row(); err == io.EOF {
goto Stop
} else if err != nil && err.Error() != "Corrupt file, bad record size:0" {
t.Errorf("nfs.Row() error:%v", err)
goto Stop
} else if err != nil && err.Error() == "Corrupt file, bad record size:0" {
// Found expected error
return
}
}
Stop:
t.Errorf("Failed to detected corrupt file")
}
func TestStreamReader(t *testing.T) {
var data []byte
var err error
if data, err = ioutil.ReadFile("testdata/nfcapd-large-lzo"); err != nil {
t.Error(err)
}
var reader = bytes.NewReader(data)
var nfs *NFStream
var record NFRecord
nfs, err = StreamReader(reader)
if err != nil {
t.Errorf("StreamReader error:%#+v", err)
}
var x = 0
for {
if record, err = nfs.Row(); err == io.EOF {
goto Stop
} else if err != nil {
t.Errorf("nfs.Row() error:%v", err)
goto Stop
}
if x > 1 {
break
}
if fmt.Sprintf("%#v", record) != fmt.Sprintf("%#v", testData[x]) {
t.Errorf("test record:%d does not match", x)
t.Log(fmt.Sprintf("%#v", record))
t.Log(fmt.Sprintf("%#v", testData[x]))
}
x++
}
Stop:
}