;; Instrument the module ;; RUN: wasm-split --instrument %s -o %t.instrumented.wasm -g ;; Generate profiles ;; RUN: node %S/call_exports.mjs %t.instrumented.wasm %t.foo.prof foo ;; RUN: node %S/call_exports.mjs %t.instrumented.wasm %t.foo.bar.prof foo bar ;; RUN: node %S/call_exports.mjs %t.instrumented.wasm %t.bar.baz.prof bar baz ;; Merge profiles ;; RUN: wasm-split --merge-profiles -v %t.foo.prof %t.foo.bar.prof %t.bar.baz.prof -o %t.merged.prof 2>&1 \ ;; RUN: | filecheck %s --check-prefix MERGE ;; Split the module ;; RUN: wasm-split %s --profile %t.merged.prof -o1 %t.1.wasm -o2 %t.2.wasm -g -v \ ;; RUN: | filecheck %s --check-prefix SPLIT ;; MERGE: Profile {{.*}}foo.prof only includes functions included in other profiles. ;; MERGE: Profile {{.*}}foo.bar.prof only includes functions included in other profiles. ;; MERGE-NOT: Profile {{.*}}bar.baz.prof only includes functions included in other profiles. ;; SPLIT: Keeping functions: bar, baz, foo{{$}} ;; SPLIT-NEXT: Splitting out functions: qux{{$}} (module (memory $m 0 0) (export "memory" (memory $m)) (export "foo" (func $foo)) (export "bar" (func $bar)) (export "baz" (func $baz)) (export "qux" (func $qux)) (func $foo (nop) ) (func $bar (nop) ) (func $baz (nop) ) (func $qux (nop) ) )