summaryrefslogtreecommitdiff
path: root/test/generate
diff options
context:
space:
mode:
Diffstat (limited to 'test/generate')
-rwxr-xr-xtest/generate64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/generate b/test/generate
new file mode 100755
index 00000000..deeba05a
--- /dev/null
+++ b/test/generate
@@ -0,0 +1,64 @@
+#!/bin/bash -eu
+# Generate skeleton files for completion of specified command.
+# Test skeleton files are generated as well.
+# @param $1 string Command, e.g. 'make'
+# @param $2 string Completion function, e.g. _command
+# @param $3 string Completion arguments, e.g. '-o filenames'
+
+
+# Generate test code
+# @param $1 string Command, e.g. 'make'
+generate_test_completion() {
+ local path="completion/$1.exp"
+ # Does file already exist?
+ #if [ ! -f "$path" ]; then
+ # No, file doesn't exist; generate file
+ cat <<EXPECT > "$path"
+assert_source_completions $1
+EXPECT
+ #fi
+} # generate_test_completion()
+
+
+# Generate test code
+# @param $1 string Command, e.g. 'make'
+# @param $2 string Completion function, e.g. _command
+# @param $3 string Completion arguments, e.g. ' -o filenames'
+generate_test_lib_completions() {
+ local path="lib/completions/$1.exp"
+ # Does file already exist?
+ #if [ ! -f "$path" ]; then
+ # No, file doesn't exist; generate file
+ cat <<EXPECT > "$path"
+proc setup {} {
+ save_env
+}
+
+
+proc teardown {} {
+ assert_env_unmodified
+}
+
+
+setup
+
+
+assert_complete_any "$1 "
+sync_after_int
+
+
+teardown
+EXPECT
+ #fi
+} # generate_test_lib_completions()
+
+
+ # If argument count is wrong, show help
+if [ $# -ne 1 ]; then
+ echo "Usage: $0 command"
+ echo "Example: $0 make"
+ exit 1
+fi
+
+generate_test_completion "$1"
+generate_test_lib_completions "$1"