@@ -5,6 +5,7 @@ package behavior_test
5
5
import (
6
6
"bytes"
7
7
"encoding/json"
8
+ "fmt"
8
9
"strings"
9
10
"testing"
10
11
@@ -124,6 +125,19 @@ func TestLogDuringInit(t *testing.T) {
124
125
}
125
126
}
126
127
128
+ func formatLogsWithExtra (logs []* gosimlog.Log ) []string {
129
+ // TODO: share this code with prettylog somehow?
130
+ var lines []string
131
+ for _ , log := range logs {
132
+ line := fmt .Sprintf ("%d %s/%d %s %s" , log .Step , log .Machine , log .Goroutine , log .Level , log .Msg )
133
+ for _ , kv := range log .Unknown {
134
+ line += fmt .Sprintf (" %s=%s" , kv .Key , kv .Value )
135
+ }
136
+ lines = append (lines , line )
137
+ }
138
+ return lines
139
+ }
140
+
127
141
func TestLogTraceSyscall (t * testing.T ) {
128
142
if race .Enabled {
129
143
// TODO: repair, which will need a reasonable plan for printing data
@@ -155,20 +169,17 @@ func TestLogTraceSyscall(t *testing.T) {
155
169
t .Fatal (err )
156
170
}
157
171
158
- // TODO: make sure we check traceKind?
159
172
// TODO: support snapshotting these logs?
160
- // TODO: include machine etc.?
161
- if diff := cmp .Diff (metatesting .SimplifyParsedLog (metatesting .ParseLog (run .LogOutput )), []string {
162
- "INFO unsupported syscall unknown (9999) 0 0 0 0 0 0" ,
163
- // TODO: check flags
164
- "INFO call SysOpenat" ,
165
- "INFO ret SysOpenat" ,
166
- "INFO call SysFcntl" ,
167
- "INFO ret SysFcntl" ,
168
- "INFO call SysWrite" ,
169
- "INFO ret SysWrite" ,
170
- "INFO call SysClose" ,
171
- "INFO ret SysClose" ,
173
+ if diff := cmp .Diff (formatLogsWithExtra (gosimlog .ParseLog (run .LogOutput )), []string {
174
+ "1 main/4 INFO unsupported syscall unknown (9999) 0 0 0 0 0 0" ,
175
+ `2 main/4 INFO call SysOpenat dirfd="AT_FDCWD" path="hello" flags="O_WRONLY|O_TRUNC|O_CREAT|O_CLOEXEC" mode="0o644"` ,
176
+ "3 main/4 INFO ret SysOpenat fd=5 err=null" ,
177
+ "4 main/4 INFO call SysFcntl" ,
178
+ "5 main/4 INFO ret SysFcntl" ,
179
+ `6 main/4 INFO call SysWrite fd=5 p="world"` ,
180
+ "7 main/4 INFO ret SysWrite n=5 err=null" ,
181
+ "8 main/4 INFO call SysClose fd=5" ,
182
+ "9 main/4 INFO ret SysClose err=null" ,
172
183
}); diff != "" {
173
184
t .Error ("diff" , diff )
174
185
}
0 commit comments