xref: /freebsd-src/usr.bin/fold/tests/fold_test.sh (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*013953ebSAlan Somers#
2*013953ebSAlan Somers# Copyright 2017 Shivansh
3*013953ebSAlan Somers# All rights reserved.
4*013953ebSAlan Somers#
5*013953ebSAlan Somers# Redistribution and use in source and binary forms, with or without
6*013953ebSAlan Somers# modification, are permitted provided that the following conditions
7*013953ebSAlan Somers# are met:
8*013953ebSAlan Somers# 1. Redistributions of source code must retain the above copyright
9*013953ebSAlan Somers#    notice, this list of conditions and the following disclaimer.
10*013953ebSAlan Somers# 2. Redistributions in binary form must reproduce the above copyright
11*013953ebSAlan Somers#    notice, this list of conditions and the following disclaimer in the
12*013953ebSAlan Somers#    documentation and/or other materials provided with the distribution.
13*013953ebSAlan Somers#
14*013953ebSAlan Somers# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*013953ebSAlan Somers# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*013953ebSAlan Somers# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*013953ebSAlan Somers# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*013953ebSAlan Somers# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*013953ebSAlan Somers# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*013953ebSAlan Somers# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*013953ebSAlan Somers# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*013953ebSAlan Somers# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*013953ebSAlan Somers# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*013953ebSAlan Somers# SUCH DAMAGE.
25*013953ebSAlan Somers#
26*013953ebSAlan Somers#
27*013953ebSAlan Somers
28*013953ebSAlan Somersatf_test_case b_flag
29*013953ebSAlan Somersb_flag_head()
30*013953ebSAlan Somers{
31*013953ebSAlan Somers	atf_set "descr" "Verify the usage of option 'b'"
32*013953ebSAlan Somers}
33*013953ebSAlan Somers
34*013953ebSAlan Somersb_flag_body()
35*013953ebSAlan Somers{
36*013953ebSAlan Somers	atf_check -s exit:0 -o empty fold -b < /dev/null
37*013953ebSAlan Somers}
38*013953ebSAlan Somers
39*013953ebSAlan Somersatf_test_case s_flag
40*013953ebSAlan Somerss_flag_head()
41*013953ebSAlan Somers{
42*013953ebSAlan Somers	atf_set "descr" "Verify the usage of option 's'"
43*013953ebSAlan Somers}
44*013953ebSAlan Somers
45*013953ebSAlan Somerss_flag_body()
46*013953ebSAlan Somers{
47*013953ebSAlan Somers	atf_check -s exit:0 -o empty fold -s < /dev/null
48*013953ebSAlan Somers}
49*013953ebSAlan Somers
50*013953ebSAlan Somersatf_test_case invalid_usage
51*013953ebSAlan Somersinvalid_usage_head()
52*013953ebSAlan Somers{
53*013953ebSAlan Somers	atf_set "descr" "Verify that an invalid usage with a supported option produces a valid error message"
54*013953ebSAlan Somers}
55*013953ebSAlan Somers
56*013953ebSAlan Somersinvalid_usage_body()
57*013953ebSAlan Somers{
58*013953ebSAlan Somers	atf_check -s not-exit:0 -e inline:"fold: option requires an argument -- w
59*013953ebSAlan Somersusage: fold [-bs] [-w width] [file ...]
60*013953ebSAlan Somers" fold -w
61*013953ebSAlan Somers}
62*013953ebSAlan Somers
63*013953ebSAlan Somersatf_test_case no_arguments
64*013953ebSAlan Somersno_arguments_head()
65*013953ebSAlan Somers{
66*013953ebSAlan Somers	atf_set "descr" "Verify that fold(1) executes successfully and silently when invoked without any arguments"
67*013953ebSAlan Somers}
68*013953ebSAlan Somers
69*013953ebSAlan Somersno_arguments_body()
70*013953ebSAlan Somers{
71*013953ebSAlan Somers	atf_check -s exit:0 -o empty fold < /dev/null
72*013953ebSAlan Somers}
73*013953ebSAlan Somers
74*013953ebSAlan Somersatf_init_test_cases()
75*013953ebSAlan Somers{
76*013953ebSAlan Somers	atf_add_test_case b_flag
77*013953ebSAlan Somers	atf_add_test_case s_flag
78*013953ebSAlan Somers	atf_add_test_case invalid_usage
79*013953ebSAlan Somers	atf_add_test_case no_arguments
80*013953ebSAlan Somers}
81