7 авг. 2017 г. 20:34 пользователь "David Sommerseth" <
open...@sf.lists.topphemmelig.net> написал:
On 07/08/17 15:23, Ilya Shipitsin wrote:
> inspired by https://www.mail-archive.com/openvpn-devel@lists.
sourceforge.net/msg13808.html
> ---
> tests/Makefile.am | 2 +-
> tests/t_usage.sh | 29 +++++++++++++++++++++++++++++
> 2 files changed, 30 insertions(+), 1 deletion(-)
> create mode 100755 tests/t_usage.sh
>
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index 0795680c..7306d1d1 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -14,7 +14,7 @@ MAINTAINERCLEANFILES = \
>
> SUBDIRS = unit_tests
>
> -test_scripts = t_client.sh
> +test_scripts = t_client.sh t_usage.sh
> if ENABLE_CRYPTO
> test_scripts += t_lpback.sh t_cltsrv.sh
> endif
> diff --git a/tests/t_usage.sh b/tests/t_usage.sh
> new file mode 100755
> index 00000000..f4845468
> --- /dev/null
> +++ b/tests/t_usage.sh
> @@ -0,0 +1,29 @@
> +#!/bin/sh
> +#
> +# run "openvpn --help"
> +# - check that openvpn did not crash
> +#
> +# prerequisites:
> +# - openvpn binary in current directory
> +#
> +# inspired by https://www.mail-archive.com/openvpn-devel@lists.
sourceforge.net/msg13808.html
> +#
> +
> +top_builddir="${top_builddir:-..}"
> +
> +if [ ! -x "${top_builddir}/src/openvpn/openvpn" ]
> +then
> + echo "no (executable) openvpn binary in current build tree. FAIL."
>&2
> + exit 1
> +fi
> +
> +exit_code=0
> +
> +"${top_builddir}/src/openvpn/openvpn" --help >/dev/null
> +
> +if [ $? -ne 1 ]
> +then
> + exit_code=1
> +fi
This check is odd. Where the --help option is parsed, it calls usage(),
usage_small(). And those functions will always call:
Sometimes it segfaults.
openvpn_exit(OPENVPN_EXIT_STATUS_USAGE);
And OPENVPN_EXIT_STATUS_USAGE is defined as:
error.h:#define OPENVPN_EXIT_STATUS_USAGE 1
I would rather recommend you to grep for some information you expect to
be listed in --help and check if that was found instead.
I tried to implement it with cmocka. However, I gave up
For example:
$ ./openvpn --help | grep -- ^-- | wc -l
238
As we might vary number of options from time to time, I wouldn't check
against 238. But that it should be above 220 in the foreseeable future
would not be an unreasonable assumption. *BUT* the number of options
might differ more in some other builds (depending on
--enable-*/--disable-* arguments given to ./configure).
--
kind regards,
David Sommerseth
OpenVPN Technologies, Inc
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel