2 # SPDX-License-Identifier: BSD-2-Clause-FreeBSD
4 # Copyright (c) 2017 Kyle Evans <kevans@FreeBSD.org>
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions
9 # 1. Redistributions of source code must retain the above copyright
10 # notice, this list of conditions and the following disclaimer.
11 # 2. Redistributions in binary form must reproduce the above copyright
12 # notice, this list of conditions and the following disclaimer in the
13 # documentation and/or other materials provided with the distribution.
15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18 # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30 ret=$(echo I | tr -d "[:space:]" | od -to2 | head -n1 | awk '{print $2}' | cut -c6)
31 if [ "$ret" = "0" ]; then
38 atf_set "descr" "Verify -b output"
42 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_bflag_a.out" \
43 hexdump -b "$(atf_get_srcdir)/d_hexdump_a.in"
44 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_bflag_b.out" \
45 hexdump -b "$(atf_get_srcdir)/d_hexdump_b.in"
46 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_bflag_c.out" \
47 hexdump -b "$(atf_get_srcdir)/d_hexdump_c.in"
53 atf_set "descr" "Verify -c output"
57 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_cflag_a.out" \
58 hexdump -c "$(atf_get_srcdir)/d_hexdump_a.in"
59 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_cflag_b.out" \
60 hexdump -c "$(atf_get_srcdir)/d_hexdump_b.in"
61 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_cflag_c.out" \
62 hexdump -c "$(atf_get_srcdir)/d_hexdump_c.in"
68 atf_set "descr" "Verify -C output"
72 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_UCflag_a.out" \
73 hexdump -C "$(atf_get_srcdir)/d_hexdump_a.in"
74 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_UCflag_b.out" \
75 hexdump -C "$(atf_get_srcdir)/d_hexdump_b.in"
76 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_UCflag_c.out" \
77 hexdump -C "$(atf_get_srcdir)/d_hexdump_c.in"
83 atf_set "descr" "Verify hd output matching -C output"
87 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_UCflag_a.out" \
88 hd "$(atf_get_srcdir)/d_hexdump_a.in"
89 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_UCflag_b.out" \
90 hd "$(atf_get_srcdir)/d_hexdump_b.in"
91 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_UCflag_c.out" \
92 hd "$(atf_get_srcdir)/d_hexdump_c.in"
98 atf_set "descr" "Verify -d output"
102 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_dflag_a_$ENDIAN.out" \
103 hexdump -d "$(atf_get_srcdir)/d_hexdump_a.in"
104 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_dflag_b_$ENDIAN.out" \
105 hexdump -d "$(atf_get_srcdir)/d_hexdump_b.in"
106 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_dflag_c_$ENDIAN.out" \
107 hexdump -d "$(atf_get_srcdir)/d_hexdump_c.in"
113 atf_set "descr" "Check -n functionality"
117 atf_check -o empty hexdump -bn 0 "$(atf_get_srcdir)/d_hexdump_a.in"
118 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_nflag_a.out" \
119 hexdump -bn 1 "$(atf_get_srcdir)/d_hexdump_a.in"
125 atf_set "descr" "Verify -o output"
129 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_oflag_a_$ENDIAN.out" \
130 hexdump -o "$(atf_get_srcdir)/d_hexdump_a.in"
131 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_oflag_b_$ENDIAN.out" \
132 hexdump -o "$(atf_get_srcdir)/d_hexdump_b.in"
133 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_oflag_c_$ENDIAN.out" \
134 hexdump -o "$(atf_get_srcdir)/d_hexdump_c.in"
140 atf_set "descr" "Verify -s output"
144 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_sflag_a.out" \
145 hexdump -bs 4 "$(atf_get_srcdir)/d_hexdump_a.in"
147 atf_check -o not-empty hexdump -n 100 -s 1024 /dev/random
153 atf_set "descr" "Verify -v functionality"
157 for i in $(seq 0 7); do
158 atf_check -o match:"^\*$" \
159 hexdump -s ${i} "$(atf_get_srcdir)/d_hexdump_c.in"
160 atf_check -o not-match:"^\*$" \
161 hexdump -vs ${i} "$(atf_get_srcdir)/d_hexdump_c.in"
164 atf_check -o not-match:"^\*$" \
165 hexdump -s 8 "$(atf_get_srcdir)/d_hexdump_c.in"
166 atf_check -o not-match:"^\*$" \
167 hexdump -vs 8 "$(atf_get_srcdir)/d_hexdump_c.in"
173 atf_set "descr" "Verify -x output"
177 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_xflag_a_$ENDIAN.out" \
178 hexdump -x "$(atf_get_srcdir)/d_hexdump_a.in"
179 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_xflag_b_$ENDIAN.out" \
180 hexdump -x "$(atf_get_srcdir)/d_hexdump_b.in"
181 atf_check -o file:"$(atf_get_srcdir)/d_hexdump_xflag_c_$ENDIAN.out" \
182 hexdump -x "$(atf_get_srcdir)/d_hexdump_c.in"
185 atf_test_case no_conv_err
188 atf_set "descr" "Verify missing conversion char error handling"
192 atf_check -s exit:1 -e ignore \
194 atf_check -s exit:1 -e ignore \
198 atf_init_test_cases()
200 atf_add_test_case b_flag
201 atf_add_test_case c_flag
202 atf_add_test_case C_flag
203 atf_add_test_case hd_name
204 atf_add_test_case d_flag
205 atf_add_test_case n_flag
206 atf_add_test_case o_flag
207 atf_add_test_case s_flag
208 atf_add_test_case v_flag
209 atf_add_test_case x_flag
210 atf_add_test_case no_conv_err