selftests/bpf: set BPF_F_TEST_SANITY_SCRIPT by default
authorAndrii Nakryiko <andrii@kernel.org>
Sun, 12 Nov 2023 01:06:07 +0000 (17:06 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 15 Nov 2023 20:03:42 +0000 (12:03 -0800)
commit8c5677f8b31e92b57be7d5d0fbb1ac66eedf4f91
tree411aa72cc5b0e5744fc11a1b7dee8b7bcc2f8d21
parentdab16659c50e8c9c7c5d9584beacec28c769dcca
selftests/bpf: set BPF_F_TEST_SANITY_SCRIPT by default

Make sure to set BPF_F_TEST_SANITY_STRICT program flag by default across
most verifier tests (and a bunch of others that set custom prog flags).

There are currently two tests that do fail validation, if enforced
strictly: verifier_bounds/crossing_64_bit_signed_boundary_2 and
verifier_bounds/crossing_32_bit_signed_boundary_2. To accommodate them,
we teach test_loader a flag negation:

__flag(!<flagname>) will *clear* specified flag, allowing easy opt-out.

We apply __flag(!BPF_F_TEST_SANITY_STRICT) to these to tests.

Also sprinkle BPF_F_TEST_SANITY_STRICT everywhere where we already set
test-only BPF_F_TEST_RND_HI32 flag, for completeness.

Acked-by: Eduard Zingerman <eddyz87@gmail.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20231112010609.848406-12-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/testing/selftests/bpf/prog_tests/bpf_verif_scale.c
tools/testing/selftests/bpf/progs/verifier_bounds.c
tools/testing/selftests/bpf/test_loader.c
tools/testing/selftests/bpf/test_sock_addr.c
tools/testing/selftests/bpf/test_verifier.c
tools/testing/selftests/bpf/testing_helpers.c