diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lit/lit.cfg.py | 2 | ||||
-rw-r--r-- | test/lit/wasm-split/help.test | 68 | ||||
-rw-r--r-- | test/lit/wasm-split/invalid-options.wast | 26 |
3 files changed, 82 insertions, 14 deletions
diff --git a/test/lit/lit.cfg.py b/test/lit/lit.cfg.py index df3a21079..60ba1ced6 100644 --- a/test/lit/lit.cfg.py +++ b/test/lit/lit.cfg.py @@ -3,7 +3,7 @@ import lit.formats config.name = "Binaryen lit tests" config.test_format = lit.formats.ShTest(True) -config.suffixes = ['.wat', '.wast'] +config.suffixes = ['.wat', '.wast', '.test'] config.test_source_root = os.path.dirname(__file__) config.test_exec_root = os.path.join(config.binaryen_build_root, 'test') diff --git a/test/lit/wasm-split/help.test b/test/lit/wasm-split/help.test new file mode 100644 index 000000000..c473b28a1 --- /dev/null +++ b/test/lit/wasm-split/help.test @@ -0,0 +1,68 @@ +;; RUN: wasm-split --help | filecheck %s + +CHECK: wasm-split INFILE +CHECK-NEXT: +CHECK-NEXT: Split a module into a primary module and a secondary module, or instrument a +CHECK-NEXT: module to gather a profile that can inform future splitting, or manage such +CHECK-NEXT: profiles. Options that are only accepted in particular modes are marked with the +CHECK-NEXT: accepted "[<modes>]" in their descriptions. +CHECK-NEXT: +CHECK-NEXT: Options: + +;; Skip standard tool options + +CHECK: --split Split an input module into two output +CHECK-NEXT: modules. The default mode. +CHECK-NEXT: --instrument Instrument an input module to allow it to +CHECK-NEXT: generate a profile that can be used to +CHECK-NEXT: guide splitting. +CHECK-NEXT: --profile [split] The profile to use to guide +CHECK-NEXT: splitting. +CHECK-NEXT: --keep-funcs [split] Comma-separated list of functions +CHECK-NEXT: to keep in the primary module, regardless +CHECK-NEXT: of any profile. +CHECK-NEXT: --split-funcs [split] Comma-separated list of functions +CHECK-NEXT: to split into the secondary module, +CHECK-NEXT: regardless of any profile. If there is no +CHECK-NEXT: profile, then this defaults to all +CHECK-NEXT: functions defined in the module. +CHECK-NEXT: --primary-output,-o1 [split] Output file for the primary +CHECK-NEXT: module. +CHECK-NEXT: --secondary-output,-o2 [split] Output file for the secondary +CHECK-NEXT: module. +CHECK-NEXT: --symbolmap [split] Write a symbol map file for each +CHECK-NEXT: of the output modules. +CHECK-NEXT: --import-namespace [split] The namespace from which to +CHECK-NEXT: import objects from the primary module +CHECK-NEXT: into the secondary module. +CHECK-NEXT: --placeholder-namespace [split] The namespace from which to +CHECK-NEXT: import placeholder functions into the +CHECK-NEXT: primary module. +CHECK-NEXT: --export-prefix [split] An identifying prefix to prepend +CHECK-NEXT: to new export names created by module +CHECK-NEXT: splitting. +CHECK-NEXT: --output,-o [instrument] Output file. +CHECK-NEXT: --profile-export [instrument] The export name of the +CHECK-NEXT: function the embedder calls to write the +CHECK-NEXT: profile into memory. Defaults to +CHECK-NEXT: `__write_profile`. +CHECK-NEXT: --emit-module-names [split, instrument] Emit module names, +CHECK-NEXT: even if not emitting the rest of the +CHECK-NEXT: names section. Can help differentiate the +CHECK-NEXT: modules in stack traces. This option will +CHECK-NEXT: be removed once simpler ways of naming +CHECK-NEXT: modules are widely available. See +CHECK-NEXT: https://bugs.chromium.org/p/v8/issues/detail?id=11808. +CHECK-NEXT: --initial-table [split, instrument] A hack to ensure the +CHECK-NEXT: split and instrumented modules have the +CHECK-NEXT: same table size when using Emscripten's +CHECK-NEXT: SPLIT_MODULE mode with dynamic linking. +CHECK-NEXT: TODO: Figure out a more elegant solution +CHECK-NEXT: for that use case and remove this. +CHECK-NEXT: --verbose,-v Verbose output mode. Prints the functions +CHECK-NEXT: that will be kept and split out when +CHECK-NEXT: splitting a module. +CHECK-NEXT: --emit-text,-S Emit text instead of binary for the +CHECK-NEXT: output file or files. +CHECK-NEXT: --debuginfo,-g Emit names section in wasm binary (or +CHECK-NEXT: full debuginfo in wast) diff --git a/test/lit/wasm-split/invalid-options.wast b/test/lit/wasm-split/invalid-options.wast index 32899b87b..89a68e6aa 100644 --- a/test/lit/wasm-split/invalid-options.wast +++ b/test/lit/wasm-split/invalid-options.wast @@ -39,32 +39,32 @@ ;; Split mode requires -o1 and -o2 rather than -o ;; RUN: not wasm-split %s -o %t 2>&1 \ -;; RUN: | filecheck %s --check-prefix NO-INSTRUMENT-OUT +;; RUN: | filecheck %s --check-prefix SPLIT-OUT ;; --instrument is required to use --profile-export ;; RUN: not wasm-split %s --profile-export=foo 2>&1 \ -;; RUN: | filecheck %s --check-prefix NO-INSTRUMENT-PROFILE-EXPORT +;; RUN: | filecheck %s --check-prefix SPLIT-PROFILE-EXPORT -;; INSTRUMENT-PROFILE: error: --profile cannot be used with --instrument +;; INSTRUMENT-PROFILE: error: Option --profile cannot be used in instrument mode. -;; INSTRUMENT-OUT1: error: primary output cannot be used with --instrument +;; INSTRUMENT-OUT1: error: Option --primary-output cannot be used in instrument mode. -;; INSTRUMENT-OUT2: error: secondary output cannot be used with --instrument +;; INSTRUMENT-OUT2: error: Option --secondary-output cannot be used in instrument mode. -;; INSTRUMENT-SYMBOLMAP: error: --symbolmap cannot be used with --instrument +;; INSTRUMENT-SYMBOLMAP: error: Option --symbolmap cannot be used in instrument mode. -;; INSTRUMENT-IMPORT-NS: error: --import-namespace cannot be used with --instrument +;; INSTRUMENT-IMPORT-NS: error: Option --import-namespace cannot be used in instrument mode. -;; INSTRUMENT-PLACEHOLDER-NS: error: --placeholder-namespace cannot be used with --instrument +;; INSTRUMENT-PLACEHOLDER-NS: error: Option --placeholder-namespace cannot be used in instrument mode. -;; INSTRUMENT-EXPORT-PREFIX: error: --export-prefix cannot be used with --instrument +;; INSTRUMENT-EXPORT-PREFIX: error: Option --export-prefix cannot be used in instrument mode. -;; INSTRUMENT-KEEP-FUNCS: error: --keep-funcs cannot be used with --instrument +;; INSTRUMENT-KEEP-FUNCS: error: Option --keep-funcs cannot be used in instrument mode. -;; INSTRUMENT-SPLIT-FUNCS: error: --split-funcs cannot be used with --instrument +;; INSTRUMENT-SPLIT-FUNCS: error: Option --split-funcs cannot be used in instrument mode. -;; NO-INSTRUMENT-OUT: error: must provide separate primary and secondary output with -o1 and -o2 +;; SPLIT-OUT: error: Option --output cannot be used in split mode. -;; NO-INSTRUMENT-PROFILE-EXPORT: error: --profile-export must be used with --instrument +;; SPLIT-PROFILE-EXPORT: error: Option --profile-export cannot be used in split mode. (module) |