Sun Jul 11 12:07:15 2021 UTC ()
tests/lint: suppress ShellCheck warnings for intentional violations

The undeclared variables are generated by the AWK program.
The variable 'flags' must be split into words at exactly this point.


(rillig)
diff -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/accept.sh

cvs diff -r1.1 -r1.2 src/tests/usr.bin/xlint/lint1/accept.sh (switch to unified diff)

--- src/tests/usr.bin/xlint/lint1/accept.sh 2021/06/29 09:44:25 1.1
+++ src/tests/usr.bin/xlint/lint1/accept.sh 2021/07/11 12:07:14 1.2
@@ -1,90 +1,93 @@ @@ -1,90 +1,93 @@
1#! /bin/sh 1#! /bin/sh
2# $NetBSD: accept.sh,v 1.1 2021/06/29 09:44:25 rillig Exp $ 2# $NetBSD: accept.sh,v 1.2 2021/07/11 12:07:14 rillig Exp $
3# 3#
4# Copyright (c) 2021 The NetBSD Foundation, Inc. 4# Copyright (c) 2021 The NetBSD Foundation, Inc.
5# All rights reserved. 5# All rights reserved.
6# 6#
7# Redistribution and use in source and binary forms, with or without 7# Redistribution and use in source and binary forms, with or without
8# modification, are permitted provided that the following conditions 8# modification, are permitted provided that the following conditions
9# are met: 9# are met:
10# 1. Redistributions of source code must retain the above copyright 10# 1. Redistributions of source code must retain the above copyright
11# notice, this list of conditions and the following disclaimer. 11# notice, this list of conditions and the following disclaimer.
12# 2. Redistributions in binary form must reproduce the above copyright 12# 2. Redistributions in binary form must reproduce the above copyright
13# notice, this list of conditions and the following disclaimer in the 13# notice, this list of conditions and the following disclaimer in the
14# documentation and/or other materials provided with the distribution. 14# documentation and/or other materials provided with the distribution.
15# 15#
16# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 16# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
17# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 17# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 18# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 19# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 20# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 21# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 22# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 23# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 24# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 25# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26# POSSIBILITY OF SUCH DAMAGE. 26# POSSIBILITY OF SUCH DAMAGE.
27# 27#
28 28
29# usage: accept.sh <pattern>... 29# usage: accept.sh <pattern>...
30# 30#
31# Accept the actual output from running the lint tests and save them 31# Accept the actual output from running the lint tests and save them
32# back into the .exp files. 32# back into the .exp files.
33 33
34set -eu 34set -eu
35 35
36. './t_integration.sh' 36. './t_integration.sh'
37 37
38for pattern in "$@"; do 38for pattern in "$@"; do
39 for test in *$pattern*.c; do 39 for test in *$pattern*.c; do
40 base=${test%.*} 40 base=${test%.*}
41 cfile="$base.c" 41 cfile="$base.c"
42 expfile="$base.exp" 42 expfile="$base.exp"
43 tmpfile="$base.exp.tmp" 43 tmpfile="$base.exp.tmp"
44 ln_file="$base.ln" 44 ln_file="$base.ln"
45 45
46 configure_test_case "$cfile" 46 configure_test_case "$cfile"
 47 # shellcheck disable=SC2154
47 if [ $skip = yes ]; then 48 if [ $skip = yes ]; then
48 continue 49 continue
49 fi 50 fi
50 51
51 if [ ! -f "$ln_file" ]; then 52 if [ ! -f "$ln_file" ]; then
52 ln_file='/dev/null' 53 ln_file='/dev/null'
53 fi 54 fi
54 55
 56 # shellcheck disable=SC2154
 57 # shellcheck disable=SC2086
55 if "$lint1" $flags "$base.c" "$ln_file" > "$tmpfile"; then 58 if "$lint1" $flags "$base.c" "$ln_file" > "$tmpfile"; then
56 if [ -s "$tmpfile" ]; then 59 if [ -s "$tmpfile" ]; then
57 echo "$base produces output but exits successfully" 60 echo "$base produces output but exits successfully"
58 sed 's,^,| ,' "$tmpfile" 61 sed 's,^,| ,' "$tmpfile"
59 fi 62 fi
60 rm -f "$expfile" "$tmpfile" 63 rm -f "$expfile" "$tmpfile"
61 else 64 else
62 if [ -f "$tmpfile" ] && cmp -s "$tmpfile" "$expfile"; then 65 if [ -f "$tmpfile" ] && cmp -s "$tmpfile" "$expfile"; then
63 rm "$tmpfile" 66 rm "$tmpfile"
64 else 67 else
65 echo "replacing $base" 68 echo "replacing $base"
66 mv "$tmpfile" "$expfile" 69 mv "$tmpfile" "$expfile"
67 fi 70 fi
68 fi 71 fi
69 72
70 case "$base" in (msg_*) 73 case "$base" in (msg_*)
71 if [ ! -f "$expfile" ]; then 74 if [ ! -f "$expfile" ]; then
72 echo "$base should produce warnings" 75 echo "$base should produce warnings"
73 elif grep '^TODO: "Add example code' "$base.c" >/dev/null; then 76 elif grep '^TODO: "Add example code' "$base.c" >/dev/null; then
74 : 'ok, this test is not yet written' 77 : 'ok, this test is not yet written'
75 else 78 else
76 msgid=${base} 79 msgid=${base}
77 msgid=${msgid#msg_00} 80 msgid=${msgid#msg_00}
78 msgid=${msgid#msg_0} 81 msgid=${msgid#msg_0}
79 msgid=${msgid#msg_} 82 msgid=${msgid#msg_}
80 msgid=${msgid%_*} 83 msgid=${msgid%_*}
81 if ! grep "\\[$msgid\\]" "$expfile" >/dev/null; then 84 if ! grep "\\[$msgid\\]" "$expfile" >/dev/null; then
82 echo "$base should trigger the message '$msgid'" 85 echo "$base should trigger the message '$msgid'"
83 fi 86 fi
84 fi 87 fi
85 esac 88 esac
86 89
87 done 90 done
88done 91done
89 92
90lua '../check-expect.lua' *.c 93lua '../check-expect.lua' *.c