The NetBSD Project

CVS log for src/tests/usr.bin/xlint/lint1/t_integration.sh

[BACK] Up to [cvs.NetBSD.org] / src / tests / usr.bin / xlint / lint1

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.78 / (download) - annotate - [select for diffs], Mon Feb 6 21:20:58 2023 UTC (2 days ago) by rillig
Branch: MAIN
CVS Tags: HEAD
Changes since 1.77: +2 -2 lines
Diff to previous 1.77 (colored)

tests/lint: sync reference to platform properties generator

Revision 1.77 / (download) - annotate - [select for diffs], Mon Feb 6 21:01:55 2023 UTC (2 days ago) by rillig
Branch: MAIN
Changes since 1.76: +2 -3 lines
Diff to previous 1.76 (colored)

lint: eliminate unnecessary indirection

No functional change.

Revision 1.76 / (download) - annotate - [select for diffs], Fri Jun 17 20:24:00 2022 UTC (7 months, 3 weeks ago) by rillig
Branch: MAIN
CVS Tags: netbsd-10-base, netbsd-10
Changes since 1.75: +7 -11 lines
Diff to previous 1.75 (colored)

tests/lint: remove .exp files, as they have become redundant

Now that each lint1 test lists all generated diagnostics as 'expect'
comments, the information from the .exp files is no longer needed.  The
only information that gets lost is the order of the diagnostics, which
is mostly relevant for paired messages like 'inconsistent definition' +
'previous definition was here'.

Revision 1.75 / (download) - annotate - [select for diffs], Sat Feb 26 20:36:11 2022 UTC (11 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.74: +1 -24 lines
Diff to previous 1.74 (colored)

lint: fix memory corruption in statement expressions (since 2021-12-17)

The commit that introduced the assertion failure looks innocent, it only
adds a few predefined functions for GCC mode.  Nevertheless, before that
commit, lint consistently complained about 'error: void type illegal in
expression [109]', which doesn't make sense either.

This fix also removes the creative use of the initialization stack to
store the type of the statement expression.  Having a separate stack for
these statement expressions makes the code easier to understand.

Revision 1.74 / (download) - annotate - [select for diffs], Sat Feb 26 16:43:20 2022 UTC (11 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.73: +24 -1 lines
Diff to previous 1.73 (colored)

tests/lint: demonstrate assertion failure in GCC compound expression

Revision 1.73 / (download) - annotate - [select for diffs], Sun Oct 10 18:16:12 2021 UTC (15 months, 4 weeks ago) by rillig
Branch: MAIN
Changes since 1.72: +1 -2 lines
Diff to previous 1.72 (colored)

tests/lint: remove duplicate platform, generate platforms list

It was an unreliable idea to extract the platform properties from the
targparam.h files manually, even if it was a one-time job. I still made
a mistake by accidentally marking aarch64 as schar, even though it is
uchar, plus I duplicated the line for powerpc64.

Remove the duplicate line, no functional change.

Revision 1.72 / (download) - annotate - [select for diffs], Sun Oct 10 08:45:51 2021 UTC (15 months, 4 weeks ago) by skrll
Branch: MAIN
Changes since 1.71: +2 -2 lines
Diff to previous 1.71 (colored)

aarch64 has unsigned char

Revision 1.71 / (download) - annotate - [select for diffs], Sun Sep 26 03:17:59 2021 UTC (16 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.70: +7 -5 lines
Diff to previous 1.70 (colored)

tests/lint: add tests for platform characteristics

Running lint in usr.bin/make on i386 fails due to this warning:

cond.c(800): warning: argument #3 is converted from 'unsigned char' to
    'unsigned int' due to prototype [259]

This warning only occurred on i386 but not on sparc or x86_64. Try to
reproduce the test situation in platform_int.

The platform code in t_integration.sh was not strict enough, it didn't
check for multiple conditions, such as in msg_132_ilp32. That test was
only supposed to run on ILP32 platforms where size_t is unsigned int. It
also ran on sparc, even though size_t is long there.

Revision 1.70 / (download) - annotate - [select for diffs], Fri Sep 10 20:02:51 2021 UTC (16 months, 4 weeks ago) by rillig
Branch: MAIN
Changes since 1.69: +3 -3 lines
Diff to previous 1.69 (colored)

lint: replace space followed by tab with simply tab

No functional change.

Revision 1.69 / (download) - annotate - [select for diffs], Sat Aug 21 11:50:57 2021 UTC (17 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.68: +10 -5 lines
Diff to previous 1.68 (colored)

tests/lint: guard against typos in test environment configuration

Some tests had "lint1-only-if" without a trailing colon, others included
the trailing colon.  The tests that included the trailing colon were run
even though they were supposed to be skipped, and they failed, as could
be expected.

To prevent further typos, always require the trailing colon, just as in
"lint1-flags" and fail fast on unknown "lint1" comments.

Revision 1.68 / (download) - annotate - [select for diffs], Tue Jul 13 18:50:16 2021 UTC (18 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.67: +7 -8 lines
Diff to previous 1.67 (colored)

tests/lint: take archsubdir from usr.bin/xlint/Makefile.inc

This fixes the tests on the various ARM platforms where the platform
name does not correspond to MACHINE_ARCH, such as earmv7hf.

Revision 1.67 / (download) - annotate - [select for diffs], Sun Jul 11 22:41:36 2021 UTC (18 months, 4 weeks ago) by rillig
Branch: MAIN
Changes since 1.66: +14 -25 lines
Diff to previous 1.66 (colored)

tests/lint: rework ATF test driver

To skip tests that work only on particular platforms, a simple 'eval'
from the shell does not work since it does not exit on failure.  Fix
this by storing the commands in a local variable first.

Remove configuration knobs 'lint1-only-if-arch' and 'lint1-skip-if-arch'
since they are unused.

When skipping a test, actually mark it as skipped in the ATF statistics.

Revision 1.66 / (download) - annotate - [select for diffs], Tue Jun 29 13:58:13 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.65: +40 -9 lines
Diff to previous 1.65 (colored)

tests/lint: add test that only runs where char == unsigned char

There a 4 regular NetBSD builds where lint is activated.  All these
builds run on platforms where char == signed char.

The official test runs from https://releng.netbsd.org/test-results.html
mostly have char == signed char as well.

However, lint behaves differently on platforms with char == unsigned
char.  On these platforms, a simple "char ch = '\xff'" leads to the
bogus warning that "conversion of 'int' to 'char' is out of range".

Revision 1.65 / (download) - annotate - [select for diffs], Tue Jun 29 09:19:17 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.64: +2 -2 lines
Diff to previous 1.64 (colored)

tests/lint: add tests for ILP32 platforms

Previously, all tests for lint had to produce the exact same output, no
matter which platform they ran on.  This differs from practical needs
since lint is intended to produce different results depending on whether
the platform is ILP32 or LP64.

Examples for these are type conversions and the widths of the integer
types during lexical analysis.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Jun 29 08:46:10 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.63: +33 -12 lines
Diff to previous 1.63 (colored)

tests/lint: allow tests to be skipped depending on platform properties

Revision 1.63 / (download) - annotate - [select for diffs], Sun Jun 27 19:41:15 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.62: +2 -2 lines
Diff to previous 1.62 (colored)

tests/lint: fix selection of the .exp-ln file

Since t_integration.sh 1.58 from today, the expected .ln output was not
detected anymore.  Changes to the file format would have gone unnoticed.

Revision 1.62 / (download) - annotate - [select for diffs], Sun Jun 27 19:33:25 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.61: +14 -126 lines
Diff to previous 1.61 (colored)

tests/lint: remove list of test names from t_integration

By convention, each *.c file in the source directory is a test case.

There is no need to list them individually and redundantly.

There is also no need to group the tests for the individual messages.
This ensures that each test is run in the regular builds.  Previously,
the test all_messages stopped after the first failure.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Jun 27 19:10:29 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.60: +2 -2 lines
Diff to previous 1.60 (colored)

lint: require C11 for _Generic

This does not have any effect in practice since the option -g
(originally meant for GCC extensions to the C standards) implicitly
allows all features from C11, since err.c 1.111 from 2021-04-14.

Since the default lint flags for NetBSD builds include the option -g,
this allows all C11 features.

Currently it is not possible to say "allow GNU extensions but not C11".

Revision 1.60 / (download) - annotate - [select for diffs], Sun Jun 27 18:48:45 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.59: +2 -1 lines
Diff to previous 1.59 (colored)

lint: fix option -Ac11, add test for _Generic

Previously, selecting the option -Ac11 allowed features from C11 but at
the same time prohibited 'long long', which was added in C99.  This was
caused by the option -s, which is interpreted as "allow features from
C90, but no later".

The test for _Generic, which has been added in C11, demonstrates that
the current implementation is broken.  Lint currently thinks that the
return type of a _Generic selection is the type of the expression, but
it really is the type of the selected expression.  In the current tests,
this is always 'const char *', but C11 does not require that the types
of a generic selection are compatible.

Revision 1.59 / (download) - annotate - [select for diffs], Sun Jun 27 10:14:43 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.58: +26 -8 lines
Diff to previous 1.58 (colored)

tests/lint: allow skipping individual tests

Depending on the platform, some tests do not make sense or produce
platform-dependent results.  Allow these tests to be marked as such.

For example, the test lex_integer.c only works on 64-bit platforms.
Therefore it is disabled on i386 for now since it prints different
warnings there.  Even better would be a "lint1-only-on-lpi32" toggle,
but that would need detection of 'sizeof(int)' at runtime.

Revision 1.58 / (download) - annotate - [select for diffs], Sun Jun 27 09:22:31 2021 UTC (19 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.57: +5 -5 lines
Diff to previous 1.57 (colored)

tests/lint: rename expected .ln file to .exp-ln

This way, the hack for suffixes is no longer needed.

Revision 1.57 / (download) - annotate - [select for diffs], Sun Jun 20 18:09:48 2021 UTC (19 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.56: +2 -1 lines
Diff to previous 1.56 (colored)

tests/lint: test syntax error in initialization using designator

This test prepares the upcoming refactoring of the grammar.

Revision 1.56 / (download) - annotate - [select for diffs], Sat Jun 19 20:25:58 2021 UTC (19 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.55: +2 -1 lines
Diff to previous 1.55 (colored)

lint: fix endless loop on unfinished comment at EOF

Found using afl.

Revision 1.55 / (download) - annotate - [select for diffs], Sat Jun 19 19:59:02 2021 UTC (19 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.54: +2 -1 lines
Diff to previous 1.54 (colored)

lint: fix assertion after malformed for loop

Found using afl.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Jun 19 19:49:15 2021 UTC (19 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.53: +2 -1 lines
Diff to previous 1.53 (colored)

lint: fix assertion failure in struct with unnamed member

Found using afl.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Jun 19 08:30:08 2021 UTC (19 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.52: +7 -1 lines
Diff to previous 1.52 (colored)

tests/lint: add test cases for lexical analysis

Revision 1.52 / (download) - annotate - [select for diffs], Wed Jun 16 10:21:51 2021 UTC (19 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.51: +40 -41 lines
Diff to previous 1.51 (colored)

tests/lint: sort the list of test cases

No functional change.

Revision 1.51 / (download) - annotate - [select for diffs], Wed Jun 16 10:19:23 2021 UTC (19 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.50: +25 -36 lines
Diff to previous 1.50 (colored)

tests/lint: clean up ATF test driver

No functional change.

Revision 1.48.2.1 / (download) - annotate - [select for diffs], Mon May 31 22:15:24 2021 UTC (20 months, 1 week ago) by cjep
Branch: cjep_staticlib_x
Changes since 1.48: +3 -2 lines
Diff to previous 1.48 (colored) next main 1.49 (colored)

sync with head

Revision 1.50 / (download) - annotate - [select for diffs], Sun May 16 11:11:37 2021 UTC (20 months, 3 weeks ago) by rillig
Branch: MAIN
CVS Tags: cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1
Changes since 1.49: +2 -2 lines
Diff to previous 1.49 (colored)

lint: add more specific warning for bit-field of type plain 'int'

Previously, declaring a bit-field of type plain 'int' resulted in this
warning:

	warning: nonportable bit-field type 'int' [34]

This warning was too unspecific to be actionable, and until yesterday it
didn't even include the type.  In order to allow this warning to be
understood and properly fixed, describe the actual nonportability more
precisely:

	warning: bit-field of type plain 'int' has
	implementation-defined signedness [344]

Revision 1.49 / (download) - annotate - [select for diffs], Fri May 14 21:14:55 2021 UTC (20 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.48: +2 -1 lines
Diff to previous 1.48 (colored)

tests/lint: test bitwise mismatch in switch statement

Revision 1.48 / (download) - annotate - [select for diffs], Mon May 3 03:50:43 2021 UTC (21 months, 1 week ago) by rillig
Branch: MAIN
CVS Tags: cjep_staticlib_x-base
Branch point for: cjep_staticlib_x
Changes since 1.47: +1 -4 lines
Diff to previous 1.47 (colored)

tests/lint: remove outdated comment

The test d_gcc_extension is already activated in line 121.

Revision 1.47 / (download) - annotate - [select for diffs], Sun May 2 21:22:09 2021 UTC (21 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.46: +2 -1 lines
Diff to previous 1.46 (colored)

tests/lint: add test for bit-field types in GCC mode

Revision 1.46 / (download) - annotate - [select for diffs], Sun May 2 20:44:46 2021 UTC (21 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.45: +2 -1 lines
Diff to previous 1.45 (colored)

tests/lint: demonstrate missing support for __packed __aligned

Revision 1.45 / (download) - annotate - [select for diffs], Fri Apr 30 23:49:36 2021 UTC (21 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.44: +2 -1 lines
Diff to previous 1.44 (colored)

tests/lint: add very basic tests for GCC __attribute__

Revision 1.44 / (download) - annotate - [select for diffs], Thu Apr 22 22:43:26 2021 UTC (21 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.43: +2 -1 lines
Diff to previous 1.43 (colored)

tests/lint: add test for typeof after statement

Found by christos@.

Revision 1.43 / (download) - annotate - [select for diffs], Sun Apr 18 20:02:56 2021 UTC (21 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.42: +16 -3 lines
Diff to previous 1.42 (colored)

lint: test emitting of symbol information in the .ln files

Even though the new test is quite large, it didn't find any bugs in the
code.  The only thing I'm unsure about is why static functions are
exported as well, since they are supposed to be local to the translation
unit.

Revision 1.42 / (download) - annotate - [select for diffs], Sat Apr 17 20:36:17 2021 UTC (21 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.41: +3 -1 lines
Diff to previous 1.41 (colored)

tests/lint: demonstrate assertion failure in initialization

Revision 1.41 / (download) - annotate - [select for diffs], Wed Apr 14 18:27:11 2021 UTC (21 months, 3 weeks ago) by rillig
Branch: MAIN
Changes since 1.40: +2 -2 lines
Diff to previous 1.40 (colored)

lint: add test for newly added message about static array size

Revision 1.40 / (download) - annotate - [select for diffs], Thu Apr 8 22:18:27 2021 UTC (22 months ago) by rillig
Branch: MAIN
Changes since 1.39: +3 -1 lines
Diff to previous 1.39 (colored)

lint: in code from included files, print stack trace

Previously, the standard NetBSD build generated several lint warnings in
lhash.h from OpenSSL, without providing any hint as to which file
actually included that header.  In cases like these, lint now interprets
the line number information in the preprocessor output from GCC to
reconstruct the exact include path to the file in question.

The program check-expect.lua had to be rewritten almost completely since
it assumed that all diagnostics would come from the main file.  In all
existing tests, this was true, but these tests did not cover all cases
that occurred in practice.  Now it records the complete location of the
diagnostic instead of just the line number.

Revision 1.39 / (download) - annotate - [select for diffs], Mon Apr 5 02:05:47 2021 UTC (22 months ago) by rillig
Branch: MAIN
Changes since 1.38: +2 -2 lines
Diff to previous 1.38 (colored)

lint: warn about for wrong type cast in argument to ctype.h functions

The argument to most of the functions from <ctype.h> "shall either be
representable as an 'unsigned char' or shall equal the value of the
macro EOF".

When confronted with the infamous warning 'array subscript has type
char', there are enough programmers who don't know the background of
that warning and thus fix it in a wrong way.  Neither GCC nor Clang
explain its warning to target these programmers.

Both GCC and Clang warn about 'array subscript has type char', but they
ignore the other requirements of the <ctype.h> functions, even though
these are in the C standard library.

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94182
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95177
https://stackoverflow.com/a/60696378

Revision 1.38 / (download) - annotate - [select for diffs], Fri Apr 2 17:25:04 2021 UTC (22 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.37: +3 -1 lines
Diff to previous 1.37 (colored)

tests/lint: prevent typo from tree.c 1.264 from happening again

Revision 1.37 / (download) - annotate - [select for diffs], Sun Mar 28 14:01:50 2021 UTC (22 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.36: +9 -12 lines
Diff to previous 1.36 (colored)

lint: remove wrong warning about wrong initializer type

The following code is valid:

	int valid = {{{ 3 }}};

C90 3.5.7 and C99 6.7.8 both say that the "initializer for a scalar
shall be a single expression, optionally enclosed in braces".  They
don't put any upper bound on the amount of braces, not even in the
"Translation limits" section.

Revision 1.36 / (download) - annotate - [select for diffs], Sat Mar 27 13:59:18 2021 UTC (22 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.35: +23 -37 lines
Diff to previous 1.35 (colored)

tests/lint: move description of tests into the tests themselves

In most cases the descriptions didn't add much to the test name anyway.

Revision 1.35 / (download) - annotate - [select for diffs], Sat Mar 27 13:28:03 2021 UTC (22 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.34: +71 -71 lines
Diff to previous 1.34 (colored)

tests/lint: do not force tests to start with 'd_'

Using only parts of the test name files in t_integration.sh made it
unnecessarily difficult to find a test based on its filename.  The tests
for the individual messages already have a different prefix.

No functional change.

Revision 1.34 / (download) - annotate - [select for diffs], Tue Mar 23 21:19:08 2021 UTC (22 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.33: +2 -1 lines
Diff to previous 1.33 (colored)

tests/lint: test initialization using string literals

The errors in line 74 and 75 of the test are wrong.  Everything is fine
there.  The bug lies in init_array_using_string, try to see if you can
spot it, neither GCC 9.3.0 nor Clang 8.0.1 could.

Revision 1.33 / (download) - annotate - [select for diffs], Sun Mar 7 19:42:54 2021 UTC (23 months ago) by rillig
Branch: MAIN
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (colored)

lint: in strict C mode, warn about initialization with '[a ... b]'

https://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html

Revision 1.32 / (download) - annotate - [select for diffs], Sun Feb 28 22:12:16 2021 UTC (23 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.31: +2 -1 lines
Diff to previous 1.31 (colored)

lint: fix null pointer dereference on parse error

Fixes PR bin/22119.

Revision 1.31 / (download) - annotate - [select for diffs], Sun Feb 28 20:17:14 2021 UTC (23 months, 1 week ago) by rillig
Branch: MAIN
Changes since 1.30: +2 -1 lines
Diff to previous 1.30 (colored)

lint: add test to demonstrate that PR bin/20264 has been fixed

Revision 1.30 / (download) - annotate - [select for diffs], Sun Feb 21 08:05:51 2021 UTC (23 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.29: +2 -1 lines
Diff to previous 1.29 (colored)

lint: add another test for C99 initializers

Revision 1.29 / (download) - annotate - [select for diffs], Fri Feb 19 12:28:56 2021 UTC (23 months, 2 weeks ago) by rillig
Branch: MAIN
Changes since 1.28: +2 -2 lines
Diff to previous 1.28 (colored)

lint: warn about mismatch in getopt handling

Revision 1.28 / (download) - annotate - [select for diffs], Mon Jan 18 20:02:34 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.27: +3 -2 lines
Diff to previous 1.27 (colored)

lint: clean up code (mostly comments)

Revision 1.27 / (download) - annotate - [select for diffs], Sun Jan 17 23:00:41 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.26: +2 -1 lines
Diff to previous 1.26 (colored)

lint: add more tests for system headers in strict bool mode

Revision 1.26 / (download) - annotate - [select for diffs], Thu Jan 14 22:18:14 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

lint: add tests for newly added messages for strict bool mode

Revision 1.25 / (download) - annotate - [select for diffs], Sun Jan 10 21:26:12 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.24: +31 -20 lines
Diff to previous 1.24 (colored)

lint: allow custom flags to be specified in all unit tests

Previously, only the tests called msg_*.c could use this feature.  Since
it is useful for other tests as well, enable it everywhere.

Revision 1.24 / (download) - annotate - [select for diffs], Sun Jan 10 18:06:38 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.23: +2 -1 lines
Diff to previous 1.23 (colored)

lint: add test for triggering assertion failures in lint1

Revision 1.23 / (download) - annotate - [select for diffs], Sun Jan 10 17:43:46 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.22: +2 -1 lines
Diff to previous 1.22 (colored)

lint: add test for treating _Bool as non-scalar type

This strict mode is not yet implemented.  The plan is to use it for
usr.bin/make, to get rid of the many possible variants of defining the
Boolean type in make.h.  These variants did find some bugs, but not
reliably so.  Using static analysis seems more promising for this.

In an early stage of developing this test, lint1 crashed in the enum
definition in line 213, where the node for the '?:' had been NULL.  This
can happen in other situations as well, such as with syntax errors, but
these should be rare, as lint is usually only run if the compiler has
accepted the source code.  Still, there should not be any assertion
failures while running lint1.

Revision 1.22 / (download) - annotate - [select for diffs], Sun Jan 10 11:24:42 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.21: +2 -1 lines
Diff to previous 1.21 (colored)

lint: demonstrate wrong handling of conversion to _Bool

Revision 1.21 / (download) - annotate - [select for diffs], Sat Jan 9 14:33:53 2021 UTC (2 years ago) by rillig
Branch: MAIN
Changes since 1.20: +18 -3 lines
Diff to previous 1.20 (colored)

lint: allow tests to specify additional flags

Several of the tests only need to add the -p flag.  Mentioning the
(current) default flags in each of these tests is redundant.  Therefore,
allow them to specify "lint1-extra-flags: -p" instead of the current
"lint1-flags: -g -S -w -p".

Revision 1.20 / (download) - annotate - [select for diffs], Sat Jan 2 19:22:42 2021 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.19: +6 -5 lines
Diff to previous 1.19 (colored)

lint: fix integration test

The body of an ATF test must never return 1 but instead report failure
via atf_fail.  Otherwise the following error message appears:

    Failed: Test case body returned a non-ok exit code, but this is
    not allowed

The test program t_integration intentionally bypasses the official ATF
API for performance reasons.  But even then, it should stick to the API
as close as possible.

Revision 1.19 / (download) - annotate - [select for diffs], Sat Jan 2 11:12:34 2021 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.18: +6 -4 lines
Diff to previous 1.18 (colored)

lint: demonstrate that -t mode is practically unusable

Since main1.c from 2014-04-18, running lint in -t mode produces strange
warnings in lines 1 to 3 of no file at all.

This is caused by the builtins that are parsed in main().  These
builtins are incompatible with traditional mode because they use long
double, which had not been known at that time.

Revision 1.18 / (download) - annotate - [select for diffs], Sat Jan 2 10:22:44 2021 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.17: +20 -1 lines
Diff to previous 1.17 (colored)

lint: add a test for each message produced by lint1

Having a test for each message ensures that upcoming refactorings don't
break the basic functionality.  Adding the tests will also discover
previously unknown bugs in lint.

The tests ensure that every lint message can actually be triggered, and
they demonstrate how to do so.  Having a separate file for each test
leaves enough space for documenting historical anecdotes, rationale or
edge cases, keeping them away from the source code.

The interesting details of this commit are in Makefile and
t_integration.sh.  All other files are just auto-generated.

When running the tests as part of ATF, they are packed together as a
single test case.  Conceptually, it would have been better to have each
test as a separate test case, but ATF quickly becomes very slow as soon
as a test program defines too many test cases, and 50 is already too
many.  The time complexity is O(n^2), not O(n) as one would expect.
It's the same problem as in tests/usr.bin/make, which has over 300 test
cases as well.

Revision 1.17 / (download) - annotate - [select for diffs], Fri Jan 1 16:50:47 2021 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.16: +2 -1 lines
Diff to previous 1.16 (colored)

lint: demonstrate bug in handling of nested C9X struct initializers

Revision 1.16 / (download) - annotate - [select for diffs], Fri Jan 1 01:07:08 2021 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.15: +2 -1 lines
Diff to previous 1.15 (colored)

lint: fix segmentation fault when checking returned enum types (211)

Revision 1.15 / (download) - annotate - [select for diffs], Thu Dec 31 18:51:28 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.14: +2 -1 lines
Diff to previous 1.14 (colored)

lint: check that in "if (cond)", cond is scalar

Revision 1.14 / (download) - annotate - [select for diffs], Wed Dec 30 13:42:19 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.13: +5 -7 lines
Diff to previous 1.13 (colored)

lint: remove a bit of redundancy from the test suite

Revision 1.13 / (download) - annotate - [select for diffs], Wed Dec 30 13:15:07 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.12: +2 -1 lines
Diff to previous 1.12 (colored)

lint: add test for old style function arguments

Revision 1.12 / (download) - annotate - [select for diffs], Mon Dec 28 17:00:37 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.11: +16 -16 lines
Diff to previous 1.11 (colored)

lint1: remove redundant description from tests

Revision 1.11 / (download) - annotate - [select for diffs], Mon Dec 28 12:47:39 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.10: +20 -2 lines
Diff to previous 1.10 (colored)

lint1: add forgotten tests

Revision 1.10 / (download) - annotate - [select for diffs], Mon Dec 28 12:17:23 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.9: +55 -57 lines
Diff to previous 1.9 (colored)

lint1: use tabular layout for listing the test cases

Revision 1.9 / (download) - annotate - [select for diffs], Mon Dec 28 12:01:24 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.8: +54 -56 lines
Diff to previous 1.8 (colored)

lint1: remove redundancy from test definitions

Whether a test is supposed to produce lint warnings is determined by the
corresponding .exp file.  There is no need to encode this information
redundantly in the test driver.

Revision 1.8 / (download) - annotate - [select for diffs], Mon Dec 28 11:19:01 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.7: +3 -3 lines
Diff to previous 1.7 (colored)

lint1: enable test cvt_constant

This test had never been enabled.  In t_integration.sh 1.3 from
2014-04-17 it was supposed to be enabled, but due to a line continuation
backslash, the words "test_case check_valid" ended up as the description
of the previous test, cvt_in_ternary.

While here, add the expected test output for d_struct_init_nested to
FILES.

Revision 1.7 / (download) - annotate - [select for diffs], Mon Dec 28 10:22:21 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.6: +3 -1 lines
Diff to previous 1.6 (colored)

lint1: add test for initializing nested structs

Discovered in var.c 1.774 from 2020-12-28.

Revision 1.6 / (download) - annotate - [select for diffs], Mon Dec 28 09:58:56 2020 UTC (2 years, 1 month ago) by rillig
Branch: MAIN
Changes since 1.5: +6 -3 lines
Diff to previous 1.5 (colored)

lint: for tests with output, ensure that the output matches

Revision 1.5 / (download) - annotate - [select for diffs], Thu Jun 25 11:12:03 2020 UTC (2 years, 7 months ago) by jruoho
Branch: MAIN
Changes since 1.4: +2 -2 lines
Diff to previous 1.4 (colored)

Reference PRs consistently.

Revision 1.1.4.1 / (download) - annotate - [select for diffs], Wed Aug 20 00:04:53 2014 UTC (8 years, 5 months ago) by tls
Branch: tls-maxphys
Changes since 1.1: +6 -2 lines
Diff to previous 1.1 (colored) next main 1.2 (colored)

Rebase to HEAD as of a few days ago.

Revision 1.2.2.1 / (download) - annotate - [select for diffs], Sun Aug 10 06:57:37 2014 UTC (8 years, 6 months ago) by tls
Branch: tls-earlyentropy
Changes since 1.2: +5 -2 lines
Diff to previous 1.2 (colored) next main 1.3 (colored)

Rebase.

Revision 1.1.2.3 / (download) - annotate - [select for diffs], Thu May 22 11:42:24 2014 UTC (8 years, 8 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.1.2.2: +6 -2 lines
Diff to previous 1.1.2.2 (colored) to branchpoint 1.1 (colored) next main 1.2 (colored)

sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.4 / (download) - annotate - [select for diffs], Mon Apr 21 19:10:41 2014 UTC (8 years, 9 months ago) by christos
Branch: MAIN
CVS Tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, phil-wifi-base, phil-wifi-20200421, phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, phil-wifi-20190609, phil-wifi, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, perseant-stdc-iso10646-base, perseant-stdc-iso10646, netbsd-9-base, netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1, netbsd-9, netbsd-8-base, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, is-mlppp-base, is-mlppp, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan
Changes since 1.3: +3 -2 lines
Diff to previous 1.3 (colored)

disable the extension test for now.

Revision 1.3 / (download) - annotate - [select for diffs], Thu Apr 17 18:34:44 2014 UTC (8 years, 9 months ago) by christos
Branch: MAIN
Changes since 1.2: +4 -2 lines
Diff to previous 1.2 (colored)

add more tests

Revision 1.2 / (download) - annotate - [select for diffs], Tue Feb 4 08:08:59 2014 UTC (9 years ago) by njoly
Branch: MAIN
CVS Tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3
Branch point for: tls-earlyentropy
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 (colored)

Handle another declaration after statement case for lint in c99 mode.
Add the corresponding testcase.

Revision 1.1.2.2 / (download) - annotate - [select for diffs], Tue Apr 17 00:09:23 2012 UTC (10 years, 9 months ago) by yamt
Branch: yamt-pagecache
CVS Tags: yamt-pagecache-tag8
Changes since 1.1.2.1: +128 -0 lines
Diff to previous 1.1.2.1 (colored) to branchpoint 1.1 (colored)

sync with head

Revision 1.1.2.1, Sat Mar 17 16:33:16 2012 UTC (10 years, 10 months ago) by yamt
Branch: yamt-pagecache
Changes since 1.1: +0 -128 lines
FILE REMOVED

file t_integration.sh was added on branch yamt-pagecache on 2012-04-17 00:09:23 +0000

Revision 1.1 / (download) - annotate - [select for diffs], Sat Mar 17 16:33:16 2012 UTC (10 years, 10 months ago) by jruoho
Branch: MAIN
CVS Tags: yamt-pagecache-base8, yamt-pagecache-base7, yamt-pagecache-base6, yamt-pagecache-base5, yamt-pagecache-base4, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, agc-symver-base, agc-symver
Branch point for: yamt-pagecache, tls-maxphys

Deprecate tests/util.

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.




CVSweb <webmaster@jp.NetBSD.org>