summaryrefslogtreecommitdiff
path: root/test/lit/exec
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit/exec')
-rw-r--r--test/lit/exec/i31.wast29
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