xref: /freebsd/usr.bin/unifdef/tests/unifdef_test.sh (revision 4a1b0a9e2b9f717e14df082735d3a85cf158b1af)
1#
2# Copyright (c) 2023 Klara, Inc.
3#
4# SPDX-License-Identifier: BSD-2-Clause
5#
6
7atf_test_case hash_comment
8hash_comment_head() {
9	atf_set descr "multiline comment follows directive"
10}
11hash_comment_body() {
12	cat >f <<EOF
13#if FOO
14a
15#endif /*
16*/
17EOF
18	atf_check -o file:f unifdef <f
19}
20
21atf_test_case redefine
22redefine_head() {
23	atf_set descr "redefine the same symbol"
24}
25redefine_body() {
26	cat >file <<EOF
27#if FOO
28a
29#else
30b
31#endif
32EOF
33	atf_check -s exit:1 -o inline:"a\n" unifdef -DFOO <file
34	atf_check -s exit:1 -o inline:"a\n" unifdef -UFOO -DFOO <file
35	atf_check -s exit:1 -o inline:"a\n" unifdef -DFOO=0 -DFOO <file
36	atf_check -s exit:1 -o inline:"b\n" unifdef -UFOO <file
37	atf_check -s exit:1 -o inline:"b\n" unifdef -DFOO -UFOO <file
38	atf_check -s exit:1 -o inline:"b\n" unifdef -DFOO -DFOO=0 <file
39}
40
41atf_test_case sDU
42sDU_head() {
43	atf_set descr "simultaneous use of -s and -D or -U"
44}
45sDU_body() {
46	atf_check unifdef -s -DFOO -UFOO /dev/null
47	atf_check unifdef -s -DFOO -DBAR=FOO /dev/null
48}
49
50atf_init_test_cases() {
51	atf_add_test_case hash_comment
52	atf_add_test_case redefine
53	atf_add_test_case sDU
54}
55