@@ -1205,21 +1205,31 @@ func assertOpts(expected, actual interface{}) (expectedFmt, actualFmt string) {
1205
1205
expectedOpts := reflect .ValueOf (expected )
1206
1206
actualOpts := reflect .ValueOf (actual )
1207
1207
1208
+ var expectedFuncs []* runtime.Func
1209
+ var expectedNames []string
1210
+ for i := 0 ; i < expectedOpts .Len (); i ++ {
1211
+ f := runtimeFunc (expectedOpts .Index (i ).Interface ())
1212
+ expectedFuncs = append (expectedFuncs , f )
1213
+ expectedNames = append (expectedNames , funcName (f ))
1214
+ }
1215
+ var actualFuncs []* runtime.Func
1216
+ var actualNames []string
1217
+ for i := 0 ; i < actualOpts .Len (); i ++ {
1218
+ f := runtimeFunc (actualOpts .Index (i ).Interface ())
1219
+ actualFuncs = append (actualFuncs , f )
1220
+ actualNames = append (actualNames , funcName (f ))
1221
+ }
1222
+
1208
1223
if expectedOpts .Len () != actualOpts .Len () {
1209
- expectedFmt = fmt .Sprintf ("%v" , expected )
1210
- actualFmt = fmt .Sprintf ("%v" , actual )
1224
+ expectedFmt = fmt .Sprintf ("%v" , expectedNames )
1225
+ actualFmt = fmt .Sprintf ("%v" , actualNames )
1211
1226
return
1212
1227
}
1213
1228
1214
- var funcNames []string
1215
-
1216
1229
for i := 0 ; i < expectedOpts .Len (); i ++ {
1217
- expectedFunc := getRuntimeFunc (expectedOpts .Index (i ).Interface ())
1218
- funcNames = append (funcNames , funcName (getRuntimeFunc (expectedFunc )))
1219
-
1220
- if actualFunc := getRuntimeFunc (actualOpts .Index (i ).Interface ()); ! isFuncSame (expectedFunc , actualFunc ) {
1221
- expectedFmt = funcName (expectedFunc )
1222
- actualFmt = funcName (actualFunc )
1230
+ if ! isFuncSame (expectedFuncs [i ], actualFuncs [i ]) {
1231
+ expectedFmt = expectedNames [i ]
1232
+ actualFmt = actualNames [i ]
1223
1233
return
1224
1234
}
1225
1235
}
@@ -1246,8 +1256,8 @@ func assertOpts(expected, actual interface{}) (expectedFmt, actualFmt string) {
1246
1256
1247
1257
for i := 0 ; i < ot .NumIn (); i ++ {
1248
1258
if expectedArg , actualArg := expectedValues [i ].Interface (), actualValues [i ].Interface (); ! assert .ObjectsAreEqual (expectedArg , actualArg ) {
1249
- expectedFmt = fmt .Sprintf ("%s(%T) -> %#v" , funcNames [i ], expectedArg , expectedArg )
1250
- actualFmt = fmt .Sprintf ("%s(%T) -> %#v" , funcNames [i ], actualArg , actualArg )
1259
+ expectedFmt = fmt .Sprintf ("%s(%T) -> %#v" , expectedNames [i ], expectedArg , expectedArg )
1260
+ actualFmt = fmt .Sprintf ("%s(%T) -> %#v" , expectedNames [i ], actualArg , actualArg )
1251
1261
return
1252
1262
}
1253
1263
}
@@ -1256,7 +1266,7 @@ func assertOpts(expected, actual interface{}) (expectedFmt, actualFmt string) {
1256
1266
return "" , ""
1257
1267
}
1258
1268
1259
- func getRuntimeFunc (opt interface {}) * runtime.Func {
1269
+ func runtimeFunc (opt interface {}) * runtime.Func {
1260
1270
return runtime .FuncForPC (reflect .ValueOf (opt ).Pointer ())
1261
1271
}
1262
1272
0 commit comments