;; NOTE: Assertions have been generated by update_lit_checks.py --output=fuzz-exec and should not be edited. ;; RUN: wasm-opt %s -all --fuzz-exec -o /dev/null 2>&1 | filecheck %s ;; Test the fuzzing-support module imports. (module (import "fuzzing-support" "log-i32" (func $log-i32 (param i32))) (import "fuzzing-support" "log-f64" (func $log-f64 (param f64))) (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] (func $logging (export "logging") (call $log-i32 (i32.const 42) ) (call $log-f64 (f64.const 3.14159) ) ) ;; CHECK: [fuzz-exec] calling throwing ;; CHECK-NEXT: [exception thrown: __private ()] (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] ;; CHECK-NEXT: [LoggingExternalInterface logging 3.14159] ;; 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