@@ -277,11 +277,6 @@ pub fn main() anyerror!void {
277
277
}
278
278
}
279
279
280
- if (expected .len > 1 ) {
281
- std .debug .warn ("SKIPPING MULTI-VALUE\n " , .{});
282
- continue ;
283
- }
284
-
285
280
// Allocate input parameters and output results
286
281
var in = try arena .allocator .alloc (u64 , action .invoke .args .len );
287
282
var out = try arena .allocator .alloc (u64 , expected .len );
@@ -293,13 +288,12 @@ pub fn main() anyerror!void {
293
288
}
294
289
295
290
// Invoke the function
296
- instance .invokeDynamic (field , in , out , .{}) catch | err | {
291
+ instance .invoke (field , in , out , .{}) catch | err | {
297
292
std .debug .warn ("(result) invoke = {s}\n " , .{field });
298
293
std .debug .warn ("Testsuite failure: {s} at {s}:{}\n " , .{ field , r .source_filename , command .assert_return .line });
299
294
return err ;
300
295
};
301
296
302
- // Test the result
303
297
for (expected ) | result , i | {
304
298
const value_type = try valueTypeFromString (result .@"type" );
305
299
if (mem .startsWith (u8 , result .value , "nan:" )) {
@@ -323,7 +317,7 @@ pub fn main() anyerror!void {
323
317
std .debug .warn ("Testsuite failure: {s} at {s}:{}\n " , .{ field , r .source_filename , command .assert_return .line });
324
318
std .debug .warn ("result[{}], expected: {s} ({x}), result: {} ({x})\n " , .{ i , result .value , result_value , out [i ], out [i ] });
325
319
}
326
- if (result_value != out [i ]) {
320
+ if (result_value != out [expected . len - i - 1 ]) {
327
321
return error .TestsuiteTestFailureTrapResult ;
328
322
}
329
323
}
@@ -400,7 +394,7 @@ pub fn main() anyerror!void {
400
394
401
395
// Test the result
402
396
if (mem .eql (u8 , trap , "integer divide by zero" )) {
403
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
397
+ if (instance .invoke (field , in , out , .{})) | x | {
404
398
return error .TestsuiteExpectedTrap ;
405
399
} else | err | switch (err ) {
406
400
error .DivisionByZero = > continue ,
@@ -409,7 +403,7 @@ pub fn main() anyerror!void {
409
403
}
410
404
411
405
if (mem .eql (u8 , trap , "integer overflow" )) {
412
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
406
+ if (instance .invoke (field , in , out , .{})) | x | {
413
407
return error .TestsuiteExpectedTrap ;
414
408
} else | err | switch (err ) {
415
409
error .Overflow = > continue ,
@@ -418,7 +412,7 @@ pub fn main() anyerror!void {
418
412
}
419
413
420
414
if (mem .eql (u8 , trap , "invalid conversion to integer" )) {
421
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
415
+ if (instance .invoke (field , in , out , .{})) | x | {
422
416
return error .TestsuiteExpectedTrap ;
423
417
} else | err | switch (err ) {
424
418
error .InvalidConversion = > continue ,
@@ -427,7 +421,7 @@ pub fn main() anyerror!void {
427
421
}
428
422
429
423
if (mem .eql (u8 , trap , "out of bounds memory access" )) {
430
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
424
+ if (instance .invoke (field , in , out , .{})) | x | {
431
425
return error .TestsuiteExpectedTrap ;
432
426
} else | err | switch (err ) {
433
427
error .OutOfBoundsMemoryAccess = > continue ,
@@ -436,7 +430,7 @@ pub fn main() anyerror!void {
436
430
}
437
431
438
432
if (mem .eql (u8 , trap , "indirect call type mismatch" )) {
439
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
433
+ if (instance .invoke (field , in , out , .{})) | x | {
440
434
return error .TestsuiteExpectedTrap ;
441
435
} else | err | switch (err ) {
442
436
error .IndirectCallTypeMismatch = > continue ,
@@ -445,7 +439,7 @@ pub fn main() anyerror!void {
445
439
}
446
440
447
441
if (mem .eql (u8 , trap , "undefined element" ) or mem .eql (u8 , trap , "uninitialized element" )) {
448
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
442
+ if (instance .invoke (field , in , out , .{})) | x | {
449
443
return error .TestsuiteExpectedTrap ;
450
444
} else | err | switch (err ) {
451
445
error .UndefinedElement = > continue ,
@@ -458,7 +452,7 @@ pub fn main() anyerror!void {
458
452
}
459
453
460
454
if (mem .eql (u8 , trap , "uninitialized" ) or mem .eql (u8 , trap , "undefined" ) or mem .eql (u8 , trap , "indirect call" )) {
461
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
455
+ if (instance .invoke (field , in , out , .{})) | x | {
462
456
return error .TestsuiteExpectedTrap ;
463
457
} else | err | switch (err ) {
464
458
error .UndefinedElement = > continue ,
@@ -472,7 +466,7 @@ pub fn main() anyerror!void {
472
466
}
473
467
474
468
if (mem .eql (u8 , trap , "unreachable" )) {
475
- if (instance .invokeDynamic (field , in , out , .{})) | x | {
469
+ if (instance .invoke (field , in , out , .{})) | x | {
476
470
return error .TestsuiteExpectedUnreachable ;
477
471
} else | err | switch (err ) {
478
472
error .TrapUnreachable = > continue ,
@@ -707,11 +701,6 @@ pub fn main() anyerror!void {
707
701
const field = action .invoke .field ;
708
702
std .debug .warn ("(return): {s}:{}\n " , .{ r .source_filename , command .action .line });
709
703
710
- if (expected .len > 1 ) {
711
- std .debug .warn ("SKIPPING MULTI-VALUE\n " , .{});
712
- continue ;
713
- }
714
-
715
704
// Allocate input parameters and output results
716
705
var in = try arena .allocator .alloc (u64 , action .invoke .args .len );
717
706
var out = try arena .allocator .alloc (u64 , expected .len );
@@ -723,7 +712,7 @@ pub fn main() anyerror!void {
723
712
}
724
713
725
714
// Invoke the function
726
- inst .invokeDynamic (field , in , out , .{}) catch | err | {
715
+ inst .invoke (field , in , out , .{}) catch | err | {
727
716
std .debug .warn ("(result) invoke = {s}\n " , .{field });
728
717
std .debug .warn ("Testsuite failure: {s} at {s}:{}\n " , .{ field , r .source_filename , command .action .line });
729
718
return err ;
0 commit comments