selftests/bpf: Fix vmtest.sh getopts optstring
authorDaniel Xu <dxu@dxuuu.xyz>
Tue, 9 Aug 2022 17:11:10 +0000 (11:11 -0600)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 9 Aug 2022 20:30:02 +0000 (22:30 +0200)
Before, you could see the following errors:

  $ ./vmtest.sh -j
  ./vmtest.sh: option requires an argument -- j
  ./vmtest.sh: line 357: OPTARG: unbound variable

  $ ./vmtest.sh -z
  ./vmtest.sh: illegal option -- z
  ./vmtest.sh: line 357: OPTARG: unbound variable

Fix by adding ':' as first character of optstring. Reason is that getopts
requires ':' as the first character for OPTARG to be set in the `?` and `:`
error cases.

Note that the ':' as the first character of the optstring switches getopts
to silent mode. The desire to run in this mode seems to have been there all
along, as the script takes care of reporting errors.

Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Daniel Müller <deso@posteo.net>
Link: https://lore.kernel.org/bpf/0f93b56198328b6b4da7b4cf4662d05c3edb5fd2.1660064925.git.dxu@dxuuu.xyz
tools/testing/selftests/bpf/vmtest.sh

index 976ef7585b335a60abc3c35936ee7bc0388f7a63..a29aa05ebb3e98cc64129ca8bcb7fe30de17e20c 100755 (executable)
@@ -333,7 +333,7 @@ main()
        local exit_command="poweroff -f"
        local debug_shell="no"
 
-       while getopts 'hskid:j:' opt; do
+       while getopts ':hskid:j:' opt; do
                case ${opt} in
                i)
                        update_image="yes"