diff options
-rw-r--r-- | apps/openssl.c | 9 | ||||
-rw-r--r-- | test/recipes/20-test_app.t | 25 |
2 files changed, 32 insertions, 2 deletions
diff --git a/apps/openssl.c b/apps/openssl.c index 7b0ccbcc09..4c97936824 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -308,6 +308,13 @@ int help_main(int argc, char **argv) char *prog; HELP_CHOICE o; DISPLAY_COLUMNS dc; + char *new_argv[3]; + + if (argc == 0) { + new_argv[0] = "help"; + new_argv[1] = NULL; + return do_cmd(prog_init(), 1, new_argv); + } prog = opt_init(argc, argv, help_options); while ((o = opt_next()) != OPT_hEOF) { @@ -323,8 +330,6 @@ int help_main(int argc, char **argv) } if (opt_num_rest() == 1) { - char *new_argv[3]; - new_argv[0] = opt_rest()[0]; new_argv[1] = "--help"; new_argv[2] = NULL; diff --git a/test/recipes/20-test_app.t b/test/recipes/20-test_app.t new file mode 100644 index 0000000000..e7246565f2 --- /dev/null +++ b/test/recipes/20-test_app.t @@ -0,0 +1,25 @@ +#! /usr/bin/env perl +# Copyright 2020 The OpenSSL Project Authors. All Rights Reserved. +# +# Licensed under the Apache License 2.0 (the "License"). You may not use +# this file except in compliance with the License. You can obtain a copy +# in the file LICENSE in the source distribution or at +# https://www.openssl.org/source/license.html + +use strict; +use warnings; + +use OpenSSL::Test; + +setup("test_app"); + +plan tests => 3; + +ok(run(app(["openssl"])), + "Run openssl app with no args"); + +ok(run(app(["openssl", "help"])), + "Run openssl app with help"); + +ok(!run(app(["openssl", "-help"])), + "Run openssl app with incorrect arg"); |