summaryrefslogtreecommitdiff
path: root/scripts/update_help_checks.py
diff options
context:
space:
mode:
authorAlon Zakai <azakai@google.com>2022-01-05 11:42:13 -0800
committerGitHub <noreply@github.com>2022-01-05 11:42:13 -0800
commit16c9b3042d925270d1536429a239261b5a7df9b8 (patch)
tree4c27cdfa36afbb6e66f69b7dab4292aa76926ea9 /scripts/update_help_checks.py
parent79f76987ca899241a3f45d61e9b7964bcffb31a1 (diff)
downloadbinaryen-16c9b3042d925270d1536429a239261b5a7df9b8.tar.gz
binaryen-16c9b3042d925270d1536429a239261b5a7df9b8.tar.bz2
binaryen-16c9b3042d925270d1536429a239261b5a7df9b8.zip
Add categories to --help text (#4421)
The general shape of the --help output is now: ======================== wasm-foo Does the foo operation ======================== wasm-foo opts: -------------- --foo-bar .. Tool opts: ---------- .. The options are now in categories, with the more specific ones - most likely to be wanted by the user - first. I think this makes the list a lot less confusing. In particular, in wasm-opt all the opt passes are now in their own category. Also add a script to make it easy to update the help tests.
Diffstat (limited to 'scripts/update_help_checks.py')
-rwxr-xr-xscripts/update_help_checks.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/scripts/update_help_checks.py b/scripts/update_help_checks.py
new file mode 100755
index 000000000..e439b2ecc
--- /dev/null
+++ b/scripts/update_help_checks.py
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+# Copyright 2022 WebAssembly Community Group participants
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""A test case update script for lit help checks.
+"""
+
+import os
+import subprocess
+
+import test.shared as shared
+
+script_dir = os.path.dirname(__file__)
+root_dir = os.path.dirname(script_dir)
+test_dir = os.path.join(root_dir, 'test', 'lit', 'help')
+
+TOOLS = ['wasm-opt', 'wasm-as', 'wasm-dis', 'wasm2js', 'wasm-ctor-eval',
+ 'wasm-shell', 'wasm-reduce', 'wasm-metadce', 'wasm-split',
+ 'wasm-fuzz-types', 'wasm-emscripten-finalize']
+
+
+def main():
+ for tool in TOOLS:
+ tool_path = os.path.join(shared.options.binaryen_bin, tool)
+ command = [tool_path, '--help']
+ print(command)
+ output = subprocess.check_output(command).decode('utf-8')
+ with open(os.path.join(test_dir, tool + '.test'), 'w') as out:
+ out.write(f';; RUN: {tool} --help | filecheck %s' + os.linesep)
+ first = True
+ for line in output.splitlines():
+ if first:
+ out.write(f';; CHECK: {line}'.strip() + os.linesep)
+ first = False
+ else:
+ out.write(f';; CHECK-NEXT: {line}'.strip() + os.linesep)
+
+
+if __name__ == '__main__':
+ main()