Module Name: src
Committed By: rillig
Date: Sat Aug 7 23:52:32 UTC 2021
Modified Files:
src/distrib/sets/lists/tests: mi
src/tests/usr.bin/xlint/lint2: Makefile t_lint2.sh
Added Files:
src/tests/usr.bin/xlint/lint2: read_lp64.exp read_lp64.ln
read_printf.exp read_printf.ln
Log Message:
tests/lint: test reading of 128-bit integer types and printf
To generate a diff of this commit:
cvs rdiff -u -r1.1106 -r1.1107 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.2 -r1.3 src/tests/usr.bin/xlint/lint2/Makefile \
src/tests/usr.bin/xlint/lint2/t_lint2.sh
cvs rdiff -u -r0 -r1.1 src/tests/usr.bin/xlint/lint2/read_lp64.exp \
src/tests/usr.bin/xlint/lint2/read_lp64.ln \
src/tests/usr.bin/xlint/lint2/read_printf.exp \
src/tests/usr.bin/xlint/lint2/read_printf.ln
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.1106 src/distrib/sets/lists/tests/mi:1.1107
--- src/distrib/sets/lists/tests/mi:1.1106 Sat Aug 7 21:24:13 2021
+++ src/distrib/sets/lists/tests/mi Sat Aug 7 23:52:32 2021
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1106 2021/08/07 21:24:13 rillig Exp $
+# $NetBSD: mi,v 1.1107 2021/08/07 23:52:32 rillig Exp $
#
# Note: don't delete entries from here - mark them as "obsolete" instead.
#
@@ -7066,7 +7066,12 @@
./usr/tests/usr.bin/xlint/lint2/msg_018.ln tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint2/read.exp tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint2/read.ln tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint2/read_lp64.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint2/read_lp64.ln tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint2/read_printf.exp tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint2/read_printf.ln tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/xlint/lint2/t_lint2 tests-usr.bin-tests compattestfile,atf
+./usr/tests/usr.bin/xlint/lint2/tests tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/ztest tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/ztest/Atffile tests-usr.bin-tests compattestfile,atf
./usr/tests/usr.bin/ztest/Kyuafile tests-usr.bin-tests compattestfile,atf,kyua
Index: src/tests/usr.bin/xlint/lint2/Makefile
diff -u src/tests/usr.bin/xlint/lint2/Makefile:1.2 src/tests/usr.bin/xlint/lint2/Makefile:1.3
--- src/tests/usr.bin/xlint/lint2/Makefile:1.2 Sat Aug 7 21:24:14 2021
+++ src/tests/usr.bin/xlint/lint2/Makefile Sat Aug 7 23:52:32 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.2 2021/08/07 21:24:14 rillig Exp $
+# $NetBSD: Makefile,v 1.3 2021/08/07 23:52:32 rillig Exp $
NOMAN= yes
@@ -13,9 +13,20 @@ FILESDIR= ${TESTSDIR}
.for msg in \
000 001 002 003 004 005 006 007 008 009 \
010 011 012 013 014 015 016 017 018
-FILES+= msg_${msg}.exp msg_${msg}.ln
+TESTS+= msg_${msg}
.endfor
-FILES+= read.exp read.ln
+TESTS+= read
+.if ${MACHINE_ARCH:M*64} # close enough to "is a 64-bit platform"
+TESTS+= read_lp64
+.endif
+TESTS+= read_printf
+
+FILES+= ${TESTS:=.ln} ${TESTS:=.exp}
+FILES+= tests
+
+realall: tests
+tests:
+ printf '%s\n' ${TESTS} > ${.TARGET}
# Note: only works for adding tests.
# To remove a test, the $$mi file must be edited manually.
Index: src/tests/usr.bin/xlint/lint2/t_lint2.sh
diff -u src/tests/usr.bin/xlint/lint2/t_lint2.sh:1.2 src/tests/usr.bin/xlint/lint2/t_lint2.sh:1.3
--- src/tests/usr.bin/xlint/lint2/t_lint2.sh:1.2 Sat Aug 7 21:24:14 2021
+++ src/tests/usr.bin/xlint/lint2/t_lint2.sh Sat Aug 7 23:52:32 2021
@@ -1,4 +1,4 @@
-# $NetBSD: t_lint2.sh,v 1.2 2021/08/07 21:24:14 rillig Exp $
+# $NetBSD: t_lint2.sh,v 1.3 2021/08/07 23:52:32 rillig Exp $
#
# Copyright (c) 2021 The NetBSD Foundation, Inc.
# All rights reserved.
@@ -37,8 +37,8 @@ std_body()
# shellcheck disable=SC2155
local srcdir="$(atf_get_srcdir)"
- # remove comments and empty lines from the .ln file
- sed -e '/^#/d' -e '/^$/d' -e 's,[[:space:]]*#.*,,' \
+ # remove comments and whitespace from the .ln file
+ sed -e '/^#/d' -e '/^$/d' -e 's,#.*,,' -e 's,[[:space:]],,g' \
< "$srcdir/$1.ln" \
> "$1.ln"
@@ -48,7 +48,8 @@ std_body()
atf_init_test_cases()
{
- for i in $(printf 'msg_%03d\n' $(seq 0 18)) "read"; do
+ # shellcheck disable=SC2013
+ for i in $(cat "$(atf_get_srcdir)/tests"); do
eval "${i}_head() { std_head; }"
eval "${i}_body() { std_body '$i'; }"
atf_add_test_case "$i"
Added files:
Index: src/tests/usr.bin/xlint/lint2/read_lp64.ln
diff -u /dev/null src/tests/usr.bin/xlint/lint2/read_lp64.ln:1.1
--- /dev/null Sat Aug 7 23:52:32 2021
+++ src/tests/usr.bin/xlint/lint2/read_lp64.ln Sat Aug 7 23:52:32 2021
@@ -0,0 +1,10 @@
+# $NetBSD: read_lp64.ln,v 1.1 2021/08/07 23:52:32 rillig Exp $
+#
+# Cover reading of 128-bit integer types.
+# These types are only available on 64-bit platforms.
+
+0sread_lp64.c
+Sread_lp64.c
+
+115d0.115e4f115F0J # INT128
+116d0.116e4f116F0uJ # UINT128
Index: src/tests/usr.bin/xlint/lint2/read_printf.ln
diff -u /dev/null src/tests/usr.bin/xlint/lint2/read_printf.ln:1.1
--- /dev/null Sat Aug 7 23:52:32 2021
+++ src/tests/usr.bin/xlint/lint2/read_printf.ln Sat Aug 7 23:52:32 2021
@@ -0,0 +1,35 @@
+# $NetBSD: read_printf.ln,v 1.1 2021/08/07 23:52:32 rillig Exp $
+#
+# Test reading of declarations and usage of printf-like functions.
+
+# void my_printf(const char *, ...);
+0sprintf-def.c
+Sprintf-def.c
+3d0.3d9my_printfF2PcCEV
+
+0sprintf-use.c
+Sprintf-use.c
+
+# my_printf("string %s", "string %s%%%3d");
+#
+# Argument 1 is converted to 'const char *', due to the function prototype.
+# After that, is it not a string literal anymore, therefore no information
+# about this argument is written to the .ln file.
+#
+# Argument 2 is part of the '...', therefore no conversion to 'const char *'
+# takes place. Since it is still the address of a string, its value is
+# analyzed for printf format specifiers. This is unnecessary though since in
+# this example, the format string is already in argument 1, but not 2.
+11c0.11 s2"%s%%%3d" i 9my_printf f2 PcC PC V
+
+# my_printf("int %d", 12345);
+#
+# Argument 2 is a positive integer.
+12c0.12 p2 i 9my_printf f2 PcC I V
+
+# my_printf("%s %d %p", "\t", -6, (const void *)0);
+#
+# Argument 2 is a string without any printf-like format specifiers.
+# Argument 3 is a negative integer.
+# Argument 4 has no further interesting properties.
+13c0.13 s2"" n3 i 9my_printf f4 PcC PC I PcV V