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