diff options
Diffstat (limited to 'test/lit/debug')
-rw-r--r-- | test/lit/debug/source-map-smearing.wast | 22 | ||||
-rw-r--r-- | test/lit/debug/source-map-stop.wast | 5 |
2 files changed, 27 insertions, 0 deletions
diff --git a/test/lit/debug/source-map-smearing.wast b/test/lit/debug/source-map-smearing.wast new file mode 100644 index 000000000..875bec9d3 --- /dev/null +++ b/test/lit/debug/source-map-smearing.wast @@ -0,0 +1,22 @@ +;; RUN: wasm-opt %s -g -o %t.wasm -osm %t.wasm.map +;; RUN: echo >> %t.wasm.map +;; RUN: cat %t.wasm.map | filecheck %s + +;; Also test with StackIR, which should have identical results. +;; +;; RUN: wasm-opt %s --generate-stack-ir -o %t.wasm -osm %t.map -g -q +;; RUN: echo >> %t.wasm.map +;; RUN: cat %t.wasm.map | filecheck %s + +;; Check that the debug locations do not smear beyond a function +;; epilogue to the next function. The encoded segment 'C' means that +;; the previous segment is indeed one-byte long. +;; CHECK: {"version":3,"sources":["foo"],"names":[],"mappings":"yBAAC,C,GACC"} +(module + (func $0 + ;;@ foo:1:1 + ) + (func $1 + ;;@ foo:2:2 + ) +) diff --git a/test/lit/debug/source-map-stop.wast b/test/lit/debug/source-map-stop.wast index d075d5686..cdc06505e 100644 --- a/test/lit/debug/source-map-stop.wast +++ b/test/lit/debug/source-map-stop.wast @@ -3,6 +3,11 @@ ;; RUN: wasm-opt %s -g -o %t.wasm -osm %t.wasm.map ;; RUN: wasm-opt %t.wasm -ism %t.wasm.map -S -o - | filecheck %s +;; Also test with StackIR, which should have identical results. +;; +;; RUN: wasm-opt %s --generate-stack-ir -o %t.wasm -osm %t.map -g -q +;; RUN: wasm-opt %t.wasm -ism %t.map -q -o - -S | filecheck %s + ;; Verify that writing to a source map and reading it back does not "smear" ;; debug info across adjacent instructions. The debug info in the output should ;; be identical to the input. |