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 976ef75..a29aa05 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"