Add basic tests for echo(1)

Verify that echo(1) does not...
- ... print the trailing newline character with option '-n'.
- ... print the trailing newline character when '\c' is appended to
      the end of the string.

Submitted by:	shivansh
Reviewed by:	asomers, ngie
MFC after:	1 month
Sponsored by:	Google, Inc (GSoC 2017)
Differential Revision:	D11036
This commit is contained in:
Enji Cooper 2017-06-06 16:04:27 +00:00
parent 2c4227aaa2
commit 2d15c3cb12
4 changed files with 68 additions and 0 deletions

View File

@ -1,7 +1,13 @@
# @(#)Makefile 8.1 (Berkeley) 5/31/93
# $FreeBSD$
.include <src.opts.mk>
PACKAGE=runtime
PROG= echo
.if ${MK_TESTS} != "no"
SUBDIR+= tests
.endif
.include <bsd.prog.mk>

5
bin/echo/tests/Makefile Normal file
View File

@ -0,0 +1,5 @@
# $FreeBSD$
ATF_TESTS_SH+= echo_test
.include <bsd.test.mk>

View File

@ -0,0 +1,55 @@
#
# Copyright 2017 Shivansh Rai
# 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 n_output
n_output_head() {
atf_set "descr" "Verify that echo(1) does not print the trailing " \
"newline character with option '-n'"
}
n_output_body() {
atf_check -s ignore -o inline:"Hello world" \
/bin/echo -n "Hello world"
}
atf_test_case append_c_output
append_c_output_head() {
atf_set "descr" "Verify that echo(1) does not print the trailing newline " \
"character when '\c' is appended to the end of the string"
}
append_c_output_body() {
atf_check -s ignore -o inline:"Hello world" \
/bin/echo "Hello world\c"
}
atf_init_test_cases()
{
atf_add_test_case n_output
atf_add_test_case append_c_output
}

View File

@ -12,6 +12,8 @@
..
dd
..
echo
..
expr
..
ls