NetBSD/tests
rillig 58ad84b7ab lint: add new check for strict bool mode
In strict bool mode, bool is considered incompatible with all other
scalar types, just as in Java, C#, Pascal.

The controlling expressions in if statements, while loops, for loops and
the '?:' operator must be of type bool.  The logical operators work on
bool instead of int, the bitwise operators accept both integer and bool.
The arithmetic operators don't accept bool.

Since <stdbool.h> implements bool using C preprocessor macros instead of
predefining the identifiers "true" and "false", the integer constants 0
and 1 may be used in all contexts that require a bool expression.
Except from these, no implicit conversion between bool and scalar types
is allowed.

See usr.bin/tests/xlint/lint1/d_c99_bool_strict.c for more details.

The command line option -T has been chosen because all obvious choices
(-b or -B for bool, -s or -S for strict) are already in use.  The -T may
stand for "types are checked strictly".

The default behavior of lint doesn't change.  The strict bool check is
purely optional.

An example program for strict bool mode is usr.bin/make, which has been
using explicit comparisons such as p != NULL, ch != '\0' or n > 0 in
most places for a long time now, even before the refactoring in 2020.
2021-01-12 20:42:00 +00:00
..
bin Update the test a little so that is possible to pass 2020-10-30 22:03:35 +00:00
crypto Double the timeout for the bn test case; 360 seconds is no longer 2020-04-11 16:55:33 +00:00
dev s/ we we / we / 2020-11-30 05:30:56 +00:00
fs remove GCC_NO_ADDR_OF_PACKED_MEMBER for several subdir builds 2020-09-07 03:09:53 +00:00
games simplify: use two arguments again, suggested by kre@ 2020-10-11 18:43:50 +00:00
include Mask NULL + 0 LLVM UBSan reports in the ATF test: t_pslist.c 2020-05-31 16:36:07 +00:00
ipf Remove the "expected failure" from test n12, and change it not to use 2015-12-26 08:01:58 +00:00
kernel Avoid hard-coding names and limits so this will not break again. 2020-10-31 14:57:02 +00:00
lib Only try to create up-to NAME_MAX filenames. 2021-01-11 20:31:34 +00:00
libexec Whitespace 2020-09-29 16:35:42 +00:00
modules KMODULEDIR is no longer absolute (${DESTDIR} is added to it by the system 2020-05-01 22:24:18 +00:00
net Use a state of IPCP and IPv6CP to wait for connection established 2020-11-25 10:35:07 +00:00
rump the busypage test is buggy, expect it to fail. 2020-12-08 17:52:11 +00:00
sbin apply this change to a a couple more tests: 2020-12-10 08:16:59 +00:00
share Fix C++ file suffix (.cpp -> .cc) 2020-08-14 06:23:49 +00:00
sys Add tests for process_xmm_to_s87() and process_s87_to_xmm() 2020-10-15 17:44:44 +00:00
usr.bin lint: add new check for strict bool mode 2021-01-12 20:42:00 +00:00
usr.sbin Fix a few copy + pastos, simplify shell arithmetic 2020-08-14 05:22:25 +00:00
Makefile Remove MKCRYPTO option. 2017-05-21 15:28:36 +00:00
Makefile.inc Fix sun2 build. Still there are some duplicate symbols in the rump libraries 2020-05-17 18:52:43 +00:00
README Clarify this a little. 2012-05-18 15:36:21 +00:00
h_macros.h provide an RL variant that prints an extra argument 2016-08-20 15:49:08 +00:00

README

$NetBSD: README,v 1.4 2012/05/18 15:36:21 jruoho Exp $

When adding new tests, please try to follow the following conventions.

1. For library routines, including system calls, the directory structure of
   the tests should follow the directory structure of the real source tree.
   For instance, interfaces available via the C library should follow:

	src/lib/libc/gen -> src/tests/lib/libc/gen
	src/lib/libc/sys -> src/tests/lib/libc/sys
	...

2. Equivalently, all tests for userland utilities should try to follow their
   location in the source tree. If this can not be satisfied, the tests for
   a utility should be located under the directory to which the utility is
   installed. Thus, a test for env(1) should go to src/tests/usr.bin/env.
   Likewise, a test for tcpdump(8) should be in src/tests/usr.sbin/tcpdump,
   even though the source code for the program is located under src/external.

3. Otherwise use your own discretion.