@@ -200,8 +200,10 @@ func TestGroupCleanup(t *testing.T) {
200
200
}
201
201
strOut := strings .TrimSpace (string (out ))
202
202
expected := "uid=0(root) gid=0(root) groups=0(root)"
203
- if strOut != expected {
204
- t .Fatalf ("id command output: %s, expected: %s" , strOut , expected )
203
+ // Just check prefix because some distros reportedly output a
204
+ // context parameter; see https://golang.org/issue/16224.
205
+ if ! strings .HasPrefix (strOut , expected ) {
206
+ t .Errorf ("id command output: %q, expected prefix: %q" , strOut , expected )
205
207
}
206
208
}
207
209
@@ -230,10 +232,17 @@ func TestGroupCleanupUserNamespace(t *testing.T) {
230
232
t .Fatalf ("Cmd failed with err %v, output: %s" , err , out )
231
233
}
232
234
strOut := strings .TrimSpace (string (out ))
233
- // there are two possible outs
234
- expected1 := "uid=0(root) gid=0(root) groups=0(root)"
235
- expected2 := "uid=0(root) gid=0(root) groups=0(root),65534(nobody)"
236
- if strOut != expected1 && strOut != expected2 {
237
- t .Fatalf ("id command output: %s, expected: %s or %s" , strOut , expected1 , expected2 )
235
+
236
+ // Strings we've seen in the wild.
237
+ expected := []string {
238
+ "uid=0(root) gid=0(root) groups=0(root)" ,
239
+ "uid=0(root) gid=0(root) groups=0(root),65534(nobody)" ,
240
+ "uid=0(root) gid=0(root) groups=0(root),65534(nogroup)" ,
241
+ }
242
+ for _ , e := range expected {
243
+ if strOut == e {
244
+ return
245
+ }
238
246
}
247
+ t .Errorf ("id command output: %q, expected one of %q" , strOut , expected )
239
248
}
0 commit comments