diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/example/debug-location-propagation.cpp | 47 | ||||
-rw-r--r-- | test/example/debug-location-propagation.txt | 1 | ||||
-rw-r--r-- | test/lit/help/wasm-opt.test | 4 | ||||
-rw-r--r-- | test/lit/help/wasm2js.test | 4 | ||||
-rw-r--r-- | test/lit/wat-kitchen-sink.wast | 12 |
5 files changed, 68 insertions, 0 deletions
diff --git a/test/example/debug-location-propagation.cpp b/test/example/debug-location-propagation.cpp new file mode 100644 index 000000000..b4685e391 --- /dev/null +++ b/test/example/debug-location-propagation.cpp @@ -0,0 +1,47 @@ +#include <cassert> +#include <iostream> + +#include <binaryen-c.h> +#include <wasm.h> + +int main() { + BinaryenModuleRef module = BinaryenModuleCreate(); + + BinaryenType ii[2] = {BinaryenTypeInt32(), BinaryenTypeInt32()}; + BinaryenType params = BinaryenTypeCreate(ii, 2); + BinaryenType results = BinaryenTypeNone(); + + BinaryenExpressionRef x = BinaryenLocalGet(module, 0, BinaryenTypeInt32()), + y = BinaryenLocalGet(module, 1, BinaryenTypeInt32()); + BinaryenExpressionRef add = BinaryenBinary(module, BinaryenAddInt32(), x, y); + BinaryenExpressionRef drop = BinaryenDrop(module, add); + BinaryenExpressionRef funcBody = + BinaryenBlock(module, "", &drop, 1, BinaryenTypeNone()); + + BinaryenFunctionRef adder = + BinaryenAddFunction(module, "adder", params, results, NULL, 0, funcBody); + + BinaryenModuleAddDebugInfoFileName(module, "main"); + + BinaryenFunctionSetDebugLocation(adder, x, 0, 2, 13); + BinaryenFunctionSetDebugLocation(adder, drop, 0, 2, 2); + + BinaryenModuleValidate(module); + BinaryenSetDebugInfo(true); + const char* runPasses[] = {"propagate-debug-locs"}; + BinaryenModuleRunPasses(module, runPasses, 1); + + auto& debugLocations = module->getFunction("adder")->debugLocations; + assert(debugLocations.size() == 4); + assert(debugLocations[x].columnNumber == 13); + assert(debugLocations[y].columnNumber == 13); + assert(debugLocations[add].columnNumber == 2); + assert(debugLocations[drop].columnNumber == 2); + + BinaryenSetDebugInfo(false); + BinaryenModuleDispose(module); + + std::cout << "success." << std::endl; + + return 0; +} diff --git a/test/example/debug-location-propagation.txt b/test/example/debug-location-propagation.txt new file mode 100644 index 000000000..b32bb74d2 --- /dev/null +++ b/test/example/debug-location-propagation.txt @@ -0,0 +1 @@ +success. diff --git a/test/lit/help/wasm-opt.test b/test/lit/help/wasm-opt.test index ff07586f2..849469178 100644 --- a/test/lit/help/wasm-opt.test +++ b/test/lit/help/wasm-opt.test @@ -368,6 +368,10 @@ ;; CHECK-NEXT: --print-stack-ir print out Stack IR (useful for ;; CHECK-NEXT: internal debugging) ;; CHECK-NEXT: +;; CHECK-NEXT: --propagate-debug-locs propagate debug location from +;; CHECK-NEXT: parents or previous siblings to +;; CHECK-NEXT: child nodes +;; CHECK-NEXT: ;; CHECK-NEXT: --propagate-globals-globally propagate global values to other ;; CHECK-NEXT: globals (useful for tests) ;; CHECK-NEXT: diff --git a/test/lit/help/wasm2js.test b/test/lit/help/wasm2js.test index 493542135..4b0330db6 100644 --- a/test/lit/help/wasm2js.test +++ b/test/lit/help/wasm2js.test @@ -322,6 +322,10 @@ ;; CHECK-NEXT: --print-stack-ir print out Stack IR (useful for ;; CHECK-NEXT: internal debugging) ;; CHECK-NEXT: +;; CHECK-NEXT: --propagate-debug-locs propagate debug location from +;; CHECK-NEXT: parents or previous siblings to +;; CHECK-NEXT: child nodes +;; CHECK-NEXT: ;; CHECK-NEXT: --propagate-globals-globally propagate global values to other ;; CHECK-NEXT: globals (useful for tests) ;; CHECK-NEXT: diff --git a/test/lit/wat-kitchen-sink.wast b/test/lit/wat-kitchen-sink.wast index 3c4c56ba6..772d3f5df 100644 --- a/test/lit/wat-kitchen-sink.wast +++ b/test/lit/wat-kitchen-sink.wast @@ -5235,6 +5235,13 @@ ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ;;@ src.cpp:30:1 + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (i32.add + ;; CHECK-NEXT: (i32.const 100) + ;; CHECK-NEXT: (i32.const 200) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $source-map-propagation ;;@ src.cpp:10:1 @@ -5245,6 +5252,11 @@ drop i32.const 2 drop + i32.const 100 + i32.const 200 + i32.add + ;;@ src.cpp:30:1 + drop ) ;; CHECK: (func $use-types (type $107) (param $0 (ref $s0)) (param $1 (ref $s1)) (param $2 (ref $s2)) (param $3 (ref $s3)) (param $4 (ref $s4)) (param $5 (ref $s5)) (param $6 (ref $s6)) (param $7 (ref $s7)) (param $8 (ref $s8)) (param $9 (ref $a0)) (param $10 (ref $a1)) (param $11 (ref $a2)) (param $12 (ref $a3)) (param $13 (ref $subvoid)) (param $14 (ref $submany)) (param $15 (ref $all-types)) |