summaryrefslogtreecommitdiff
path: root/test/lit
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit')
-rw-r--r--test/lit/exec/fuzzing-api.wast61
1 files changed, 60 insertions, 1 deletions
diff --git a/test/lit/exec/fuzzing-api.wast b/test/lit/exec/fuzzing-api.wast
index d37d7ef4a..0d0f25130 100644
--- a/test/lit/exec/fuzzing-api.wast
+++ b/test/lit/exec/fuzzing-api.wast
@@ -10,6 +10,13 @@
(import "fuzzing-support" "throw" (func $throw))
+ (import "fuzzing-support" "table-set" (func $table.set (param i32 funcref)))
+ (import "fuzzing-support" "table-get" (func $table.get (param i32) (result funcref)))
+
+ (table $table 10 20 funcref)
+
+ (export "table" (table $table))
+
;; CHECK: [fuzz-exec] calling logging
;; CHECK-NEXT: [LoggingExternalInterface logging 42]
;; CHECK-NEXT: [LoggingExternalInterface logging 3.14159]
@@ -24,10 +31,52 @@
;; CHECK: [fuzz-exec] calling throwing
;; CHECK-NEXT: [exception thrown: __private ()]
- ;; CHECK-NEXT: warning: no passes specified, not doing any work
(func $throwing (export "throwing")
(call $throw)
)
+
+ ;; CHECK: [fuzz-exec] calling table.setting
+ ;; CHECK-NEXT: [exception thrown: __private ()]
+ (func $table.setting (export "table.setting")
+ (call $table.set
+ (i32.const 5)
+ (ref.func $table.setting)
+ )
+ ;; Out of bounds sets will throw.
+ (call $table.set
+ (i32.const 9999)
+ (ref.func $table.setting)
+ )
+ )
+
+ ;; CHECK: [fuzz-exec] calling table.getting
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 0]
+ ;; CHECK-NEXT: [LoggingExternalInterface logging 1]
+ ;; CHECK-NEXT: [exception thrown: __private ()]
+ ;; CHECK-NEXT: warning: no passes specified, not doing any work
+ (func $table.getting (export "table.getting")
+ ;; There is a non-null value at 5, and a null at 6.
+ (call $log-i32
+ (ref.is_null
+ (call $table.get
+ (i32.const 5)
+ )
+ )
+ )
+ (call $log-i32
+ (ref.is_null
+ (call $table.get
+ (i32.const 6)
+ )
+ )
+ )
+ ;; Out of bounds gets will throw.
+ (drop
+ (call $table.get
+ (i32.const 9999)
+ )
+ )
+ )
)
;; CHECK: [fuzz-exec] calling logging
;; CHECK-NEXT: [LoggingExternalInterface logging 42]
@@ -35,5 +84,15 @@
;; CHECK: [fuzz-exec] calling throwing
;; CHECK-NEXT: [exception thrown: __private ()]
+
+;; CHECK: [fuzz-exec] calling table.setting
+;; CHECK-NEXT: [exception thrown: __private ()]
+
+;; CHECK: [fuzz-exec] calling table.getting
+;; CHECK-NEXT: [LoggingExternalInterface logging 0]
+;; CHECK-NEXT: [LoggingExternalInterface logging 1]
+;; CHECK-NEXT: [exception thrown: __private ()]
;; CHECK-NEXT: [fuzz-exec] comparing logging
+;; CHECK-NEXT: [fuzz-exec] comparing table.getting
+;; CHECK-NEXT: [fuzz-exec] comparing table.setting
;; CHECK-NEXT: [fuzz-exec] comparing throwing