Module Name:    src
Committed By:   rillig
Date:           Sat Aug  7 21:24:14 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.exp read.ln

Log Message:
tests/lint: add test for reading the lint1 output


To generate a diff of this commit:
cvs rdiff -u -r1.1105 -r1.1106 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.1 -r1.2 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.exp \
    src/tests/usr.bin/xlint/lint2/read.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.1105 src/distrib/sets/lists/tests/mi:1.1106
--- src/distrib/sets/lists/tests/mi:1.1105	Fri Aug  6 08:44:31 2021
+++ src/distrib/sets/lists/tests/mi	Sat Aug  7 21:24:13 2021
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.1105 2021/08/06 08:44:31 martin Exp $
+# $NetBSD: mi,v 1.1106 2021/08/07 21:24:13 rillig Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -7064,6 +7064,8 @@
 ./usr/tests/usr.bin/xlint/lint2/msg_017.ln			tests-usr.bin-tests	compattestfile,atf
 ./usr/tests/usr.bin/xlint/lint2/msg_018.exp			tests-usr.bin-tests	compattestfile,atf
 ./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/t_lint2				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

Index: src/tests/usr.bin/xlint/lint2/Makefile
diff -u src/tests/usr.bin/xlint/lint2/Makefile:1.1 src/tests/usr.bin/xlint/lint2/Makefile:1.2
--- src/tests/usr.bin/xlint/lint2/Makefile:1.1	Thu Aug  5 22:36:08 2021
+++ src/tests/usr.bin/xlint/lint2/Makefile	Sat Aug  7 21:24:14 2021
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1 2021/08/05 22:36:08 rillig Exp $
+# $NetBSD: Makefile,v 1.2 2021/08/07 21:24:14 rillig Exp $
 
 NOMAN=		yes
 
@@ -13,8 +13,9 @@ 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
+FILES+=		msg_${msg}.exp	msg_${msg}.ln
 .endfor
+FILES+=		read.exp	read.ln
 
 # 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.1 src/tests/usr.bin/xlint/lint2/t_lint2.sh:1.2
--- src/tests/usr.bin/xlint/lint2/t_lint2.sh:1.1	Thu Aug  5 22:36:08 2021
+++ src/tests/usr.bin/xlint/lint2/t_lint2.sh	Sat Aug  7 21:24:14 2021
@@ -1,4 +1,4 @@
-# $NetBSD: t_lint2.sh,v 1.1 2021/08/05 22:36:08 rillig Exp $
+# $NetBSD: t_lint2.sh,v 1.2 2021/08/07 21:24:14 rillig Exp $
 #
 # Copyright (c) 2021 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -27,28 +27,30 @@
 
 lint2=/usr/libexec/lint2
 
-do_msg_head()
+std_head()
 {
 	atf_set 'require.progs' "$lint2"
 }
 
-do_msg_body()
+std_body()
 {
 	# shellcheck disable=SC2155
 	local srcdir="$(atf_get_srcdir)"
 
 	# remove comments and empty lines from the .ln file
-	sed -e '/^#/d' -e '/^$/d' < "$srcdir/msg_$1.ln" > "msg_$1.ln"
+	sed -e '/^#/d' -e '/^$/d' -e 's,[[:space:]]*#.*,,' \
+	    < "$srcdir/$1.ln" \
+	    > "$1.ln"
 
-	atf_check -o "file:$srcdir/msg_$1.exp" \
-	    "$lint2" -h -p -x "msg_$1.ln"
+	atf_check -o "file:$srcdir/$1.exp" \
+	    "$lint2" -h -p -x "$1.ln"
 }
 
 atf_init_test_cases()
 {
-	for i in $(printf '%03d\n' $(seq 0 18)); do
-		eval "msg_${i}_head() { do_msg_head; }"
-		eval "msg_${i}_body() { do_msg_body '$i'; }"
-		atf_add_test_case "msg_$i"
+	for i in $(printf 'msg_%03d\n' $(seq 0 18)) "read"; do
+		eval "${i}_head() { std_head; }"
+		eval "${i}_body() { std_body '$i'; }"
+		atf_add_test_case "$i"
 	done
 }

Added files:

Index: src/tests/usr.bin/xlint/lint2/read.exp
diff -u /dev/null src/tests/usr.bin/xlint/lint2/read.exp:1.1
--- /dev/null	Sat Aug  7 21:24:14 2021
+++ src/tests/usr.bin/xlint/lint2/read.exp	Sat Aug  7 21:24:14 2021
@@ -0,0 +1 @@
+a125 declared( read.c(125) ), but never used or defined
Index: src/tests/usr.bin/xlint/lint2/read.ln
diff -u /dev/null src/tests/usr.bin/xlint/lint2/read.ln:1.1
--- /dev/null	Sat Aug  7 21:24:14 2021
+++ src/tests/usr.bin/xlint/lint2/read.ln	Sat Aug  7 21:24:14 2021
@@ -0,0 +1,64 @@
+# $NetBSD: read.ln,v 1.1 2021/08/07 21:24:14 rillig Exp $
+#
+# Cover each path of reading declarations, definitions and usages.
+
+0sread.c
+Sread.c
+
+# Cover all tspec_t constants, in declaration order.
+#
+# The line numbers correspond to the constant values of tspec_t,
+# with the 128-bit types included.
+#
+# NOTSPEC	cannot occur in lint1 output.
+# SIGNED	cannot occur in lint1 output.
+# UNSIGN	cannot occur in lint1 output.
+103d0.103e4f103F0B		# BOOL		_Bool		f103(void);
+104d0.104e4f104F0C		# CHAR		char		f104(void);
+105d0.105e4f105F0sC		# SCHAR		signed char	f105(void);
+106d0.106e4f106F0uC		# UCHAR		unsigned char	f106(void);
+107d0.107e4f107F0S		# SHORT		short		f107(void);
+108d0.108e4f108F0uS		# USHORT	unsigned short	f108(void);
+109d0.109e4f109F0I		# INT		int		f109(void);
+110d0.110e4f110F0uI		# UINT		unsigned int	f110(void);
+111d0.111e4f111F0L		# LONG		long		f111(void);
+112d0.112e4f112F0uL		# ULONG		unsigned long	f112(void);
+113d0.113e4f113F0Q		# QUAD		long long	f113(void);
+114d0.114e4f114F0uQ		# UQUAD		unsigned long long f114(void);
+# INT128	works only in 64-bit mode, see read_lp64.
+# UINT128	works only in 64-bit mode, see read_lp64.
+117d0.117e4f117F0sD		# FLOAT		float		f117(void);
+118d0.118e4f118F0D		# DOUBLE	double		f118(void);
+119d0.119e4f119F0lD		# LDOUBLE	long double	f119(void);
+120d0.120e4f120F0V		# VOID		void		f120(void);
+121d0.121e4f121F0sT16tag121	# STRUCT	struct tag121	f121(void);
+122d0.122e4f122F0uT16tag122	# UNION		union tag122	f122(void);
+123d0.123e4f123F0eT16tag123	# ENUM		enum tag123	f123(void);
+124d0.124e4f124FPV		# PTR		void *		f124(void);
+125d0.125e4a125A7D		# ARRAY		extern double	a125[7];
+126d0.126e4f126F0PF1DV		# FUNC		void (*f126(void))(double);
+# COMPLEX	cannot occur in lint1 output.
+127d0.127e4f127F0sX		# FCOMPLEX	float _Complex	f127(void);
+128d0.128e4f128F0X		# COMPLEX	double _Complex	f128(void);
+129d0.129e4f129F0lX		# LCOMPLEX	long double _Complex f129(void);
+
+# Tagged types (struct, union, enum) can have tags or typedefs or be
+# anonymous, but anonymous types are not usually used in external
+# declarations.
+#
+# struct s_tag f201(void);
+201d0.201e4f201F0sT15s_tag
+# typedef struct {} s_def;
+# s_def f202(void);
+202d0.202e4f202F0sT25s_def
+# struct { int member; } f203(void);
+203d0.203e4f203F0sT3203.0.0
+
+# Type qualifiers
+#
+# void f301(const int *);
+301d0.301e4f301F1PcIV
+# void f302(volatile int *);
+302d0.302e4f302F1PvIV
+# void f302(const volatile int *);
+303d0.303e4f303F1PcvIV

Reply via email to