diff options
Diffstat (limited to 'test/lit/exec')
-rw-r--r-- | test/lit/exec/i31.wast | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/lit/exec/i31.wast b/test/lit/exec/i31.wast index 70d220d8c..0833d490d 100644 --- a/test/lit/exec/i31.wast +++ b/test/lit/exec/i31.wast @@ -76,6 +76,27 @@ (ref.null i31) ) ) + + ;; CHECK: [fuzz-exec] calling return-i31 + ;; CHECK-NEXT: [fuzz-exec] note result: return-i31 => i31ref(42) + (func $return-i31 (export "return-i31") (result i31ref) + ;; An i31 should be logged out using its integer value, unlike a struct or + ;; array which ends up as only "object". + (ref.i31 + (i32.const 42) + ) + ) + + ;; CHECK: [fuzz-exec] calling return-exted-i31 + ;; CHECK-NEXT: [fuzz-exec] note result: return-exted-i31 => i31ref(42) + (func $return-exted-i31 (export "return-exted-i31") (result externref) + ;; Even an externalized i31 is logged out using its integer value. + (extern.externalize + (ref.i31 + (i32.const 42) + ) + ) + ) ) ;; CHECK: [fuzz-exec] calling null-local ;; CHECK-NEXT: [fuzz-exec] note result: null-local => 1 @@ -97,10 +118,18 @@ ;; CHECK: [fuzz-exec] calling trap ;; CHECK-NEXT: [trap null ref] + +;; CHECK: [fuzz-exec] calling return-i31 +;; CHECK-NEXT: [fuzz-exec] note result: return-i31 => i31ref(42) + +;; CHECK: [fuzz-exec] calling return-exted-i31 +;; CHECK-NEXT: [fuzz-exec] note result: return-exted-i31 => i31ref(42) ;; CHECK-NEXT: [fuzz-exec] comparing nn-s ;; CHECK-NEXT: [fuzz-exec] comparing nn-u ;; CHECK-NEXT: [fuzz-exec] comparing non-null ;; CHECK-NEXT: [fuzz-exec] comparing null-immediate ;; CHECK-NEXT: [fuzz-exec] comparing null-local +;; CHECK-NEXT: [fuzz-exec] comparing return-exted-i31 +;; CHECK-NEXT: [fuzz-exec] comparing return-i31 ;; CHECK-NEXT: [fuzz-exec] comparing trap ;; CHECK-NEXT: [fuzz-exec] comparing zero-is-not-null |