diff options
Diffstat (limited to 'test/lit/exec')
-rw-r--r-- | test/lit/exec/trap.wast | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/test/lit/exec/trap.wast b/test/lit/exec/trap.wast new file mode 100644 index 000000000..a0ed6f0f2 --- /dev/null +++ b/test/lit/exec/trap.wast @@ -0,0 +1,55 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py --output=fuzz-exec and should not be edited. + +;; RUN: wasm-opt %s --vacuum --fuzz-exec -q -o /dev/null 2>&1 | filecheck %s +;; RUN: wasm-opt %s --ignore-implicit-traps --vacuum --fuzz-exec -q -o /dev/null 2>&1 | filecheck %s --check-prefix=IIT +;; RUN: wasm-opt %s --traps-never-happen --vacuum --fuzz-exec -q -o /dev/null 2>&1 | filecheck %s --check-prefix=TNH + +(module + ;; CHECK: [fuzz-exec] calling trap + ;; CHECK-NEXT: [trap unreachable] + ;; IIT: [fuzz-exec] calling trap + ;; IIT-NEXT: [trap unreachable] + ;; TNH: [fuzz-exec] calling trap + ;; TNH-NEXT: [trap unreachable] + (func "trap" + (unreachable) + ) + + (memory 1 1) + ;; CHECK: [fuzz-exec] calling load-trap + ;; CHECK-NEXT: [trap highest > memory: 65536 > 65532] + ;; IIT: [fuzz-exec] calling load-trap + ;; IIT-NEXT: [trap highest > memory: 65536 > 65532] + ;; TNH: [fuzz-exec] calling load-trap + ;; TNH-NEXT: [trap highest > memory: 65536 > 65532] + (func "load-trap" + ;; This load traps, so this cannot be removed. But if either of + ;; --ignore-implicit-traps or --traps-never-happen is set, this load is + ;; assumed not to trap and we end up optimizing this out with --vacuum, + ;; causes the trap behavior to change. This should not result in [fuzz-exec] + ;; comparison failure. + (drop + (i32.load (i32.const 65536)) + ) + ) +) +;; CHECK: [fuzz-exec] calling trap +;; CHECK-NEXT: [trap unreachable] + +;; CHECK: [fuzz-exec] calling load-trap +;; CHECK-NEXT: [trap highest > memory: 65536 > 65532] +;; CHECK-NEXT: [fuzz-exec] comparing load-trap +;; CHECK-NEXT: [fuzz-exec] comparing trap + +;; IIT: [fuzz-exec] calling trap +;; IIT-NEXT: [trap unreachable] + +;; IIT: [fuzz-exec] calling load-trap +;; IIT-NEXT: [fuzz-exec] comparing load-trap +;; IIT-NEXT: [fuzz-exec] comparing trap + +;; TNH: [fuzz-exec] calling trap + +;; TNH: [fuzz-exec] calling load-trap +;; TNH-NEXT: [fuzz-exec] comparing load-trap +;; TNH-NEXT: [fuzz-exec] comparing trap |