--- /dev/null
+# This file is part of NIT ( http://www.nitlanguage.org ).
+#
+# 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.
+
+# Program used to test `ToolContext`
+module test_toolcontext
+
+import toolcontext
+
+redef class ToolContext
+ var opt_a = new OptionBool("option a, do nothing", "-a", "--option-a")
+ var opt_b = new OptionString("option b, do nothing", "-b", "--option-b")
+ var opt_c = new OptionBool("option c, do nothing", "-c")
+
+ redef init do
+ super
+ option_context.add_option(opt_a, opt_b, opt_c)
+ end
+end
+
+var toolcontext = new ToolContext
+toolcontext.tooldescription = "Usage: test_toolcontext [OPTION]...\nTest for ToolContext, try --bash-completion."
+toolcontext.process_options(args)
+print toolcontext.option_context.rest
+
--- /dev/null
+Usage: test_toolcontext [OPTION]...
+Test for ToolContext, try --bash-completion.
+Use --help for help
--- /dev/null
+# generated bash completion file for DUMMY_TOOL DUMMY_VERSION
+_DUMMY_TOOL()
+{
+ local cur prev opts
+ COMPREPLY=()
+ cur="${COMP_WORDS[COMP_CWORD]}"
+ prev="${COMP_WORDS[COMP_CWORD-1]}"
+ opts="--warn --quiet --stop-on-first-error --no-color --log --log-dir --help --version --set-dummy-tool --verbose --bash-completion --option-a --option-b"
+ if [[ ${cur} == -* ]] ; then
+ COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
+ return 0
+ fi
+ _filedir
+}
+complete -F _DUMMY_TOOL DUMMY_TOOL
+
--- /dev/null
+Usage: test_toolcontext [OPTION]...
+Test for ToolContext, try --bash-completion.
+ -W, --warn Show warnings
+ -q, --quiet Do not show warnings
+ --stop-on-first-error Stop on first error
+ --no-color Do not use color to display errors and warnings
+ --log Generate various log files
+ --log-dir Directory where to generate log files
+ -h, -?, --help Show Help (This screen)
+ --version Show version and exit
+ --set-dummy-tool Set toolname and version to DUMMY. Useful for testing
+ -v, --verbose Verbose
+ --bash-completion Generate bash_completion file for this program
+ -a, --option-a option a, do nothing
+ -b, --option-b option b, do nothing
+ -c option c, do nothing
--- /dev/null
+DUMMY_VERSION
--- /dev/null
+--bash-completion --set-dummy-tool
+--help
+--version --set-dummy-tool