diff --git a/cddl/usr.bin/ctfconvert/Makefile b/cddl/usr.bin/ctfconvert/Makefile index ce4238145df2..42061c1fa3d3 100644 --- a/cddl/usr.bin/ctfconvert/Makefile +++ b/cddl/usr.bin/ctfconvert/Makefile @@ -1,5 +1,7 @@ # $FreeBSD$ +.include + .PATH: ${SRCTOP}/cddl/contrib/opensolaris/tools/ctf/common .PATH: ${SRCTOP}/cddl/contrib/opensolaris/tools/ctf/cvt @@ -36,4 +38,7 @@ CFLAGS+= -I${SRCTOP}/sys/cddl/compat/opensolaris \ LIBADD= dwarf elf z pthread +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .include diff --git a/cddl/usr.bin/ctfconvert/tests/Makefile b/cddl/usr.bin/ctfconvert/tests/Makefile new file mode 100644 index 000000000000..431a1f25bd9f --- /dev/null +++ b/cddl/usr.bin/ctfconvert/tests/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ATF_TESTS_SH+= ctfconvert_test + +.include diff --git a/cddl/usr.bin/ctfconvert/tests/ctfconvert_test.sh b/cddl/usr.bin/ctfconvert/tests/ctfconvert_test.sh new file mode 100644 index 000000000000..04723fd08ad3 --- /dev/null +++ b/cddl/usr.bin/ctfconvert/tests/ctfconvert_test.sh @@ -0,0 +1,62 @@ +# +# Copyright 2017 Shivansh +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +usage_output='Usage: ctfconvert' + +atf_test_case invalid_usage +invalid_usage_head() +{ + atf_set "descr" "Verify that an invalid usage with a supported option produces a valid error message" +} + +invalid_usage_body() +{ + atf_check -s not-exit:0 -e match:"$usage_output" ctfconvert -l + atf_check -s not-exit:0 -e match:"$usage_output" ctfconvert -L + atf_check -s not-exit:0 -e match:"$usage_output" ctfconvert -g + atf_check -s not-exit:0 -e match:"$usage_output" ctfconvert -i + atf_check -s not-exit:0 -e match:"$usage_output" ctfconvert -s + atf_check -s not-exit:0 -e match:"$usage_output" ctfconvert -o +} + +atf_test_case no_arguments +no_arguments_head() +{ + atf_set "descr" "Verify that ctfconvert(1) fails and generates a valid usage message when no arguments are supplied" +} + +no_arguments_body() +{ + atf_check -s not-exit:0 -e match:"$usage_output" ctfconvert +} + +atf_init_test_cases() +{ + atf_add_test_case invalid_usage + atf_add_test_case no_arguments +} diff --git a/etc/mtree/BSD.tests.dist b/etc/mtree/BSD.tests.dist index 90e81eed096b..f0d6f3252a5d 100644 --- a/etc/mtree/BSD.tests.dist +++ b/etc/mtree/BSD.tests.dist @@ -65,6 +65,8 @@ sbin .. usr.bin + ctfconvert + .. .. usr.sbin dtrace @@ -654,6 +656,8 @@ .. file2c .. + fold + .. getconf .. grep @@ -690,6 +694,8 @@ .. procstat .. + rs + .. sdiff .. sed diff --git a/usr.bin/fold/Makefile b/usr.bin/fold/Makefile index d73d0a7cee43..858335294262 100644 --- a/usr.bin/fold/Makefile +++ b/usr.bin/fold/Makefile @@ -1,6 +1,11 @@ # From: @(#)Makefile 8.1 (Berkeley) 6/6/93 # $FreeBSD$ +.include + PROG= fold +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .include diff --git a/usr.bin/fold/tests/Makefile b/usr.bin/fold/tests/Makefile new file mode 100644 index 000000000000..494b7e5b3c54 --- /dev/null +++ b/usr.bin/fold/tests/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ATF_TESTS_SH+= fold_test + +.include diff --git a/usr.bin/fold/tests/fold_test.sh b/usr.bin/fold/tests/fold_test.sh new file mode 100644 index 000000000000..17ef287203f1 --- /dev/null +++ b/usr.bin/fold/tests/fold_test.sh @@ -0,0 +1,81 @@ +# +# Copyright 2017 Shivansh +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +atf_test_case b_flag +b_flag_head() +{ + atf_set "descr" "Verify the usage of option 'b'" +} + +b_flag_body() +{ + atf_check -s exit:0 -o empty fold -b < /dev/null +} + +atf_test_case s_flag +s_flag_head() +{ + atf_set "descr" "Verify the usage of option 's'" +} + +s_flag_body() +{ + atf_check -s exit:0 -o empty fold -s < /dev/null +} + +atf_test_case invalid_usage +invalid_usage_head() +{ + atf_set "descr" "Verify that an invalid usage with a supported option produces a valid error message" +} + +invalid_usage_body() +{ + atf_check -s not-exit:0 -e inline:"fold: option requires an argument -- w +usage: fold [-bs] [-w width] [file ...] +" fold -w +} + +atf_test_case no_arguments +no_arguments_head() +{ + atf_set "descr" "Verify that fold(1) executes successfully and silently when invoked without any arguments" +} + +no_arguments_body() +{ + atf_check -s exit:0 -o empty fold < /dev/null +} + +atf_init_test_cases() +{ + atf_add_test_case b_flag + atf_add_test_case s_flag + atf_add_test_case invalid_usage + atf_add_test_case no_arguments +} diff --git a/usr.bin/rs/Makefile b/usr.bin/rs/Makefile index 21da34d0a01f..20da0d9dc9b6 100644 --- a/usr.bin/rs/Makefile +++ b/usr.bin/rs/Makefile @@ -1,5 +1,11 @@ # @(#)Makefile 8.1 (Berkeley) 6/6/93 +# $FreeBSD$ + +.include PROG= rs +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests + .include diff --git a/usr.bin/rs/tests/Makefile b/usr.bin/rs/tests/Makefile new file mode 100644 index 000000000000..5aae84cad034 --- /dev/null +++ b/usr.bin/rs/tests/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ATF_TESTS_SH+= rs_test + +.include diff --git a/usr.bin/rs/tests/rs_test.sh b/usr.bin/rs/tests/rs_test.sh new file mode 100644 index 000000000000..1960f9bb0019 --- /dev/null +++ b/usr.bin/rs/tests/rs_test.sh @@ -0,0 +1,278 @@ +# +# Copyright 2017 Shivansh +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +atf_test_case c_flag +c_flag_head() +{ + atf_set "descr" "Verify the usage of option 'c'" +} + +c_flag_body() +{ + atf_check -s exit:0 -o empty rs -c < /dev/null +} + +atf_test_case s_flag +s_flag_head() +{ + atf_set "descr" "Verify the usage of option 's'" +} + +s_flag_body() +{ + atf_check -s exit:0 -o empty rs -s < /dev/null +} + +atf_test_case C_flag +C_flag_head() +{ + atf_set "descr" "Verify the usage of option 'C'" +} + +C_flag_body() +{ + atf_check -s exit:0 -o empty rs -C < /dev/null +} + +atf_test_case S_flag +S_flag_head() +{ + atf_set "descr" "Verify the usage of option 'S'" +} + +S_flag_body() +{ + atf_check -s exit:0 -o empty rs -S < /dev/null +} + +atf_test_case t_flag +t_flag_head() +{ + atf_set "descr" "Verify the usage of option 't'" +} + +t_flag_body() +{ + atf_check -s exit:0 -o empty rs -t < /dev/null +} + +atf_test_case T_flag +T_flag_head() +{ + atf_set "descr" "Verify the usage of option 'T'" +} + +T_flag_body() +{ + atf_check -s exit:0 -o empty rs -T < /dev/null +} + +atf_test_case k_flag +k_flag_head() +{ + atf_set "descr" "Verify the usage of option 'k'" +} + +k_flag_body() +{ + atf_check -s exit:0 -o empty rs -k < /dev/null +} + +atf_test_case K_flag +K_flag_head() +{ + atf_set "descr" "Verify the usage of option 'K'" +} + +K_flag_body() +{ + atf_check -s exit:0 -o inline:" +" rs -K < /dev/null +} + +atf_test_case g_flag +g_flag_head() +{ + atf_set "descr" "Verify the usage of option 'g'" +} + +g_flag_body() +{ + atf_check -s exit:0 -o empty rs -g < /dev/null +} + +atf_test_case G_flag +G_flag_head() +{ + atf_set "descr" "Verify the usage of option 'G'" +} + +G_flag_body() +{ + atf_check -s exit:0 -o empty rs -G < /dev/null +} + +atf_test_case e_flag +e_flag_head() +{ + atf_set "descr" "Verify the usage of option 'e'" +} + +e_flag_body() +{ + atf_check -s exit:0 -o inline:" +" rs -e < /dev/null +} + +atf_test_case n_flag +n_flag_head() +{ + atf_set "descr" "Verify the usage of option 'n'" +} + +n_flag_body() +{ + atf_check -s exit:0 -o empty rs -n < /dev/null +} + +atf_test_case y_flag +y_flag_head() +{ + atf_set "descr" "Verify the usage of option 'y'" +} + +y_flag_body() +{ + atf_check -s exit:0 -o empty rs -y < /dev/null +} + +atf_test_case h_flag +h_flag_head() +{ + atf_set "descr" "Verify the usage of option 'h'" +} + +h_flag_body() +{ + atf_check -s exit:0 -o inline:"1 0 +" rs -h < /dev/null +} + +atf_test_case H_flag +H_flag_head() +{ + atf_set "descr" "Verify the usage of option 'H'" +} + +H_flag_body() +{ + atf_check -s exit:0 -o inline:" 0 line 1 +1 0 +" rs -H < /dev/null +} + +atf_test_case j_flag +j_flag_head() +{ + atf_set "descr" "Verify the usage of option 'j'" +} + +j_flag_body() +{ + atf_check -s exit:0 -o empty rs -j < /dev/null +} + +atf_test_case m_flag +m_flag_head() +{ + atf_set "descr" "Verify the usage of option 'm'" +} + +m_flag_body() +{ + atf_check -s exit:0 -o empty rs -m < /dev/null +} + +atf_test_case z_flag +z_flag_head() +{ + atf_set "descr" "Verify the usage of option 'z'" +} + +z_flag_body() +{ + atf_check -s exit:0 -o empty rs -z < /dev/null +} + +atf_test_case invalid_usage +invalid_usage_head() +{ + atf_set "descr" "Verify that an invalid usage with a supported option produces a valid error message" +} + +invalid_usage_body() +{ + atf_check -s not-exit:0 -e inline:"rs: width must be a positive integer +" rs -w +} + +atf_test_case no_arguments +no_arguments_head() +{ + atf_set "descr" "Verify that rs(1) executes successfully and produces a valid output when invoked without any arguments" +} + +no_arguments_body() +{ + atf_check -s exit:0 -o inline:" +" rs < /dev/null +} + +atf_init_test_cases() +{ + atf_add_test_case c_flag + atf_add_test_case s_flag + atf_add_test_case C_flag + atf_add_test_case S_flag + atf_add_test_case t_flag + atf_add_test_case T_flag + atf_add_test_case k_flag + atf_add_test_case K_flag + atf_add_test_case g_flag + atf_add_test_case G_flag + atf_add_test_case e_flag + atf_add_test_case n_flag + atf_add_test_case y_flag + atf_add_test_case h_flag + atf_add_test_case H_flag + atf_add_test_case j_flag + atf_add_test_case m_flag + atf_add_test_case z_flag + atf_add_test_case invalid_usage + atf_add_test_case no_arguments +}