Index: head/cddl/usr.bin/ctfconvert/Makefile =================================================================== --- head/cddl/usr.bin/ctfconvert/Makefile +++ head/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 @@ -35,5 +37,8 @@ -I${OPENSOLARIS_SYS_DISTDIR}/uts/common LIBADD= dwarf elf z pthread + +HAS_TESTS= +SUBDIR.${MK_TESTS}+= tests .include Index: head/cddl/usr.bin/ctfconvert/tests/Makefile =================================================================== --- head/cddl/usr.bin/ctfconvert/tests/Makefile +++ head/cddl/usr.bin/ctfconvert/tests/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ATF_TESTS_SH+= ctfconvert_test + +.include Index: head/cddl/usr.bin/ctfconvert/tests/ctfconvert_test.sh =================================================================== --- head/cddl/usr.bin/ctfconvert/tests/ctfconvert_test.sh +++ head/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 +} Index: head/etc/mtree/BSD.tests.dist =================================================================== --- head/etc/mtree/BSD.tests.dist +++ head/etc/mtree/BSD.tests.dist @@ -65,6 +65,8 @@ sbin .. usr.bin + ctfconvert + .. .. usr.sbin dtrace @@ -654,6 +656,8 @@ .. file2c .. + fold + .. getconf .. grep @@ -689,6 +693,8 @@ printf .. procstat + .. + rs .. sdiff .. Index: head/usr.bin/fold/Makefile =================================================================== --- head/usr.bin/fold/Makefile +++ head/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 Index: head/usr.bin/fold/tests/Makefile =================================================================== --- head/usr.bin/fold/tests/Makefile +++ head/usr.bin/fold/tests/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ATF_TESTS_SH+= fold_test + +.include Index: head/usr.bin/fold/tests/fold_test.sh =================================================================== --- head/usr.bin/fold/tests/fold_test.sh +++ head/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 +} Index: head/usr.bin/rs/Makefile =================================================================== --- head/usr.bin/rs/Makefile +++ head/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 Index: head/usr.bin/rs/tests/Makefile =================================================================== --- head/usr.bin/rs/tests/Makefile +++ head/usr.bin/rs/tests/Makefile @@ -0,0 +1,5 @@ +# $FreeBSD$ + +ATF_TESTS_SH+= rs_test + +.include Index: head/usr.bin/rs/tests/rs_test.sh =================================================================== --- head/usr.bin/rs/tests/rs_test.sh +++ head/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 +}