selftests: Remove ARRAY_SIZE duplicate defines
Subsystems (12)
Shuah Khan
maintainercover selftests: Remove ARRAY_SIZE duplicate defines
ARRAY_SIZE is defined in several selftests. There are about 25+ duplicate defines in various selftests source and header files. This patch series removes the duplicated defines.
Several tests that define ARRAY_SIZE also include kselftest.h or kselftest_harness.h. Remove ARRAY_SIZE defines from them.
Some tests that define ARRAY_SIZE don't include headers that define it. Remove ARRAY_SIZE define and include kselftest.h
The first patch in this series:
- Adds ARRAY_SIZE define to kselftest.h
- Adds ifndef guard around ARRAY_SIZE define in tools/include/linux/kernel.h and kselftest_harness.h
- Patches 2-12 do the cleanup and depend on patch 1, hence will have to go through kselftest tree.
Shuah Khan (12):
tools: fix ARRAY_SIZE defines in tools and selftests hdrs selftests/arm64: remove ARRAY_SIZE define from vec-syscfg.c selftests/cgroup: remove ARRAY_SIZE define from cgroup_util.h selftests/core: remove ARRAY_SIZE define from close_range_test.c selftests/ir: remove ARRAY_SIZE define from ir_loopback.c selftests/landlock: remove ARRAY_SIZE define from common.h selftests/net: remove ARRAY_SIZE define from individual tests selftests/rseq: remove ARRAY_SIZE define from individual tests selftests/seccomp: remove ARRAY_SIZE define from seccomp_benchmark selftests/sparc64: remove ARRAY_SIZE define from adi-test selftests/timens: remove ARRAY_SIZE define from individual tests selftests/vm: remove ARRAY_SIZE define from individual tests
tools/include/linux/kernel.h | 2 ++ tools/testing/selftests/arm64/fp/vec-syscfg.c | 2 -- tools/testing/selftests/cgroup/cgroup_util.h | 4 ++-- tools/testing/selftests/core/close_range_test.c | 4 ---- tools/testing/selftests/ir/ir_loopback.c | 1 - tools/testing/selftests/kselftest.h | 4 ++++ tools/testing/selftests/kselftest_harness.h | 2 ++ tools/testing/selftests/landlock/common.h | 4 ---- tools/testing/selftests/net/gro.c | 3 ++- tools/testing/selftests/net/ipsec.c | 1 - tools/testing/selftests/net/reuseport_bpf.c | 4 +--- tools/testing/selftests/net/rxtimestamp.c | 2 +- tools/testing/selftests/net/socket.c | 3 ++- tools/testing/selftests/net/tcp_fastopen_backup_key.c | 6 ++---- tools/testing/selftests/rseq/basic_percpu_ops_test.c | 3 +-- tools/testing/selftests/rseq/rseq.c | 3 +-- tools/testing/selftests/seccomp/seccomp_benchmark.c | 2 +- tools/testing/selftests/sparc64/drivers/adi-test.c | 4 ---- tools/testing/selftests/timens/procfs.c | 2 -- tools/testing/selftests/timens/timens.c | 2 -- tools/testing/selftests/vm/mremap_test.c | 1 - tools/testing/selftests/vm/pkey-helpers.h | 3 ++- tools/testing/selftests/vm/va_128TBswitch.c | 2 +- 23 files changed, 24 insertions(+), 40 deletions(-)
Signature · 1 line
2.32.0
Shuah Khan
maintainerPATCH 1/12 tools: fix ARRAY_SIZE defines in tools and selftests hdrs
tools/include/linux/kernel.h and kselftest_harness.h are missing ifndef guard around ARRAY_SIZE define. Fix them to avoid duplicate define errors during compile when another file defines it. This problem was found when compiling selftests that include a header with ARRAY_SIZE define.
ARRAY_SIZE is defined in several selftests. There are about 25+ duplicate defines in various selftests source and header files. Add ARRAY_SIZE to kselftest.h in preparation for removing duplicate ARRAY_SIZE defines from individual test files.
--- tools/include/linux/kernel.h | 2 ++ tools/testing/selftests/kselftest.h | 4 ++++ tools/testing/selftests/kselftest_harness.h | 2 ++ 3 files changed, 8 insertions(+)
tools/include/linux/kernel.h +2 -0
@@ -92,7 +92,9 @@ int vscnprintf(char *buf, size_t size, const char *fmt, va_list args);int scnprintf (char * buf,size_t size,const char * fmt, ...);int scnprintf_pad (char * buf,size_t size,const char * fmt, ...); +#ifndef ARRAY_SIZE #define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) +#endif #define current_gfp_context (k) 0#define synchronize_rcu ()
tools/testing/selftests/kselftest.h +4 -0
@@ -48,6 +48,10 @@#include <stdarg.h> #include <stdio.h> +#ifndef ARRAY_SIZE +#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) +#endif +/* define kselftest exit codes */ #define KSFT_PASS 0#define KSFT_FAIL 1
tools/testing/selftests/kselftest_harness.h +2 -0
@@ -671,7 +671,9 @@#define EXPECT_STRNE (expected, seen) \ __EXPECT_STR(expected, seen, !=, 0) +#ifndef ARRAY_SIZE #define ARRAY_SIZE (a) (sizeof(a) / sizeof(a[0])) +#endif /* Support an optional handler after and ASSERT_* or EXPECT_*. The approach is * not thread-safe, but it should be fine in most sane test scenarios.
Signature · 1 line
2.32.0
Re: [PATCH 01/12] tools: fix ARRAY_SIZE defines in tools and selftests hdrs
Quoted 6 lines · Shuah Khan
tools/include/linux/kernel.handkselftest_harness.hare missing ifndef guard aroundARRAY_SIZEdefine. Fix them to avoid duplicate define errors during compile when another file defines it. This problem was found when compiling selftests that include a header withARRAY_SIZEdefine.
Quoted 6 lines
ARRAY_SIZEis defined in several selftests. There are about 25+ duplicate defines in various selftests source and header files. AddARRAY_SIZEtokselftest.hin preparation for removing duplicateARRAY_SIZEdefines from individual test files.Signed-off-by Shuah Khan <[email protected]>
Signature · 1 line
Kees Cook
Shuah Khan
maintainerPATCH 2/12 selftests/arm64: remove ARRAY_SIZE define from vec-syscfg.c
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from vec-syscfg.c and pickup the one defined in kselftest.h.
--- tools/testing/selftests/arm64/fp/vec-syscfg.c | 2 -- 1 file changed, 2 deletions(-)
tools/testing/selftests/arm64/fp/vec-syscfg.c +0 -2
@@ -21,8 +21,6 @@#include "../../kselftest.h" #include "rdvl.h" -#define ARRAY_SIZE (a) (sizeof(a) / sizeof(a[0])) -#define ARCH_MIN_VL SVE_VL_MINstruct vec_data {
Signature · 1 line
2.32.0
Re: [PATCH 02/12] selftests/arm64: remove ARRAY_SIZE define from vec-syscfg.c
Quoted 18 lines · Shuah Khan
ARRAY_SIZEis defined in several selftests. Remove definitions from individual test files and include header file for the define instead.ARRAY_SIZEdefine is added in a separate patch to prepare for this change.Remove
ARRAY_SIZEfromvec-syscfg.cand pickup the one defined inkselftest.h.Signed-off-by Shuah Khan <[email protected]>--- tools/testing/selftests/arm64/fp/vec-syscfg.c | 2 -- 1 file changed, 2 deletions(-)tools/testing/selftests/arm64/fp/vec-syscfg.c +0
-0
tools/testing/selftests/arm64/fp/vec-syscfg.c line 26
Quoted 8 lines
tools/testing/selftests/arm64/fp/vec-syscfg.c +0
-2@@ -21,8 +21,6 @@#include "../../kselftest.h" #include "rdvl.h" -#define ARRAY_SIZE (a) (sizeof(a) / sizeof(a[0])) -#define ARCH_MIN_VL SVE_VL_MINstruct vec_data {
Will
Shuah Khan
maintainerPATCH 3/12 selftests/cgroup: remove ARRAY_SIZE define from cgroup_util.h
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from cgroup_util.h and pickup the one defined in kselftest.h.
--- tools/testing/selftests/cgroup/cgroup_util.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
tools/testing/selftests/cgroup/cgroup_util.h +2 -2
@@ -2,9 +2,9 @@#include <stdbool.h> #include <stdlib.h> -#define PAGE_SIZE 4096 +#include "../kselftest.h" -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) +#define PAGE_SIZE 4096#define MB (x) (x << 20)
Signature · 1 line
2.32.0
Shuah Khan
maintainerPATCH 4/12 selftests/core: remove ARRAY_SIZE define from close_range_test.c
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from close_range_test.c and pickup the one defined in kselftest.h.
--- tools/testing/selftests/core/close_range_test.c | 4 ---- 1 file changed, 4 deletions(-)
tools/testing/selftests/core/close_range_test.c +0 -4
@@ -50,10 +50,6 @@ static inline int sys_close_range(unsigned int fd, unsigned int max_fd,return syscall (__NR_close_range, fd, max_fd, flags); } -#ifndef ARRAY_SIZE -#define ARRAY_SIZE (x) (sizeof(x) / sizeof((x)[0])) -#endif -TEST (core_close_range) {int i, ret;
Signature · 1 line
2.32.0
Shuah Khan
maintainerPATCH 5/12 selftests/ir: remove ARRAY_SIZE define from ir_loopback.c
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from ir_loopback.c and pickup the one defined in kselftest.h.
--- tools/testing/selftests/ir/ir_loopback.c | 1 - 1 file changed, 1 deletion(-)
tools/testing/selftests/ir/ir_loopback.c +0 -1
@@ -26,7 +26,6 @@#include "../kselftest.h" #define TEST_SCANCODES 10 -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0]))#define SYSFS_PATH_MAX 256#define DNAME_PATH_MAX 256
Signature · 1 line
2.32.0
Shuah Khan
maintainerPATCH 6/12 selftests/landlock: remove ARRAY_SIZE define from common.h
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from common.h and pickup the one defined in kselftest.h.
--- tools/testing/selftests/landlock/common.h | 4 ---- 1 file changed, 4 deletions(-)
tools/testing/selftests/landlock/common.h +0 -4
@@ -17,10 +17,6 @@#include "../kselftest_harness.h" -#ifndef ARRAY_SIZE -#define ARRAY_SIZE (x) (sizeof(x) / sizeof((x)[0])) -#endif -/* * TEST_F_FORK() is useful when a test drop privileges but the corresponding * FIXTURE_TEARDOWN() requires them (e.g. to remove files from a directory
Signature · 1 line
2.32.0
Re: [PATCH 06/12] selftests/landlock: remove ARRAY_SIZE define from common.h
Quoted 9 lines · Shuah Khan
ARRAY_SIZEis defined in several selftests. Remove definitions from individual test files and include header file for the define instead.ARRAY_SIZEdefine is added in a separate patch to prepare for this change.Remove
ARRAY_SIZEfromcommon.hand pickup the one defined inkselftest.h.Signed-off-by Shuah Khan <[email protected]>
Quoted 20 lines
--- tools/testing/selftests/landlock/common.h | 4 ---- 1 file changed, 4 deletions(-)tools/testing/selftests/landlock/common.h +0
-4@@ -17,10 +17,6 @@#include "../kselftest_harness.h" -#ifndef ARRAY_SIZE -#define ARRAY_SIZE (x) (sizeof(x) / sizeof((x)[0])) -#endif -/* * TEST_F_FORK() is useful when a test drop privileges but the corresponding * FIXTURE_TEARDOWN() requires them (e.g. to remove files from a directory
Shuah Khan
maintainerPATCH 7/12 selftests/net: remove ARRAY_SIZE define from individual tests
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from net tests and pickup the one defined in kselftest.h.
--- tools/testing/selftests/net/gro.c | 3 ++- tools/testing/selftests/net/ipsec.c | 1 - tools/testing/selftests/net/reuseport_bpf.c | 4 +--- tools/testing/selftests/net/rxtimestamp.c | 2 +- tools/testing/selftests/net/socket.c | 3 ++- tools/testing/selftests/net/tcp_fastopen_backup_key.c | 6 ++---- 6 files changed, 8 insertions(+), 11 deletions(-)
tools/testing/selftests/net/gro.c +2 -1
@@ -57,10 +57,11 @@#include <string.h> #include <unistd.h> +#include "../kselftest.h" +#define DPORT 8000#define SPORT 1500#define PAYLOAD_LEN 100 -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0]))#define NUM_PACKETS 4#define START_SEQ 100#define START_ACK 100
tools/testing/selftests/net/ipsec.c +0 -1
@@ -41,7 +41,6 @@#define pr_err (fmt, ...) printk(fmt ": %m", ##__VA_ARGS__) -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0]))#define BUILD_BUG_ON (condition) ((void)sizeof(char[1 - 2*!!(condition)]))#define IPV4_STR_SZ 16/* xxx.xxx.xxx.xxx is longest + \0 */
tools/testing/selftests/net/reuseport_bpf.c +1 -3
@@ -24,9 +24,7 @@#include <sys/resource.h> #include <unistd.h> -#ifndef ARRAY_SIZE -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) -#endif +#include "../kselftest.h" struct test_params {int recv_family;
tools/testing/selftests/net/rxtimestamp.c +1 -1
@@ -18,7 +18,7 @@#include <linux/net_tstamp.h> #include <linux/errqueue.h> -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) +#include "../kselftest.h" struct options {int so_timestamp;
tools/testing/selftests/net/socket.c +2 -1
@@ -7,6 +7,8 @@#include <sys/socket.h> #include <netinet/in.h> +#include "../kselftest.h" +struct socket_testcase {int domain;int type;
@@ -31,7 +33,6 @@ static struct socket_testcase tests[] = { { AF_INET, SOCK_STREAM, IPPROTO_UDP, -EPROTONOSUPPORT, 1 }, }; -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0]))#define ERR_STRING_SZ 64static int run_tests (void )
tools/testing/selftests/net/tcp_fastopen_backup_key.c +2 -4
@@ -26,6 +26,8 @@#include <fcntl.h> #include <time.h> +#include "../kselftest.h" +#ifndef TCP_FASTOPEN_KEY #define TCP_FASTOPEN_KEY 33#endif
@@ -34,10 +36,6 @@#define PROC_FASTOPEN_KEY "/proc/sys/net/ipv4/tcp_fastopen_key"#define KEY_LENGTH 16 -#ifndef ARRAY_SIZE -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) -#endif -static bool do_ipv6;static bool do_sockopt;static bool do_rotate;
Signature · 1 line
2.32.0
Re: [PATCH 07/12] selftests/net: remove ARRAY_SIZE define from individual tests
Quoted 7 lines · On Fri, 10 Dec 2021 10:33:17 -0700 Shuah Khan wrote:
ARRAY_SIZEis defined in several selftests. Remove definitions from individual test files and include header file for the define instead.ARRAY_SIZEdefine is added in a separate patch to prepare for this change.Remove
ARRAY_SIZEfrom net tests and pickup the one defined inkselftest.h.
Shuah Khan
maintainerPATCH 8/12 selftests/rseq: remove ARRAY_SIZE define from individual tests
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from rseq tests and pickup the one defined in kselftest.h.
--- tools/testing/selftests/rseq/basic_percpu_ops_test.c | 3 +-- tools/testing/selftests/rseq/rseq.c | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-)
tools/testing/selftests/rseq/basic_percpu_ops_test.c +1 -2
@@ -9,10 +9,9 @@#include <string.h> #include <stddef.h> +#include "../kselftest.h" #include "rseq.h" -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) -struct percpu_lock_entry {intptr_t v; } __attribute__((aligned (128 )));
tools/testing/selftests/rseq/rseq.c +1 -2
@@ -27,10 +27,9 @@#include <signal.h> #include <limits.h> +#include "../kselftest.h" #include "rseq.h" -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) - __threadvolatile struct rseq __rseq_abi = { .cpu_id =RSEQ_CPU_ID_UNINITIALIZED , };
Signature · 1 line
2.32.0
Shuah Khan
maintainerPATCH 9/12 selftests/seccomp: remove ARRAY_SIZE define from seccomp_benchmark
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from seccomp_benchmark and pickup the one defined in kselftest.h.
--- tools/testing/selftests/seccomp/seccomp_benchmark.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
tools/testing/selftests/seccomp/seccomp_benchmark.c +1 -1
@@ -18,7 +18,7 @@#include <sys/syscall.h> #include <sys/types.h> -#define ARRAY_SIZE (a) (sizeof(a) / sizeof(a[0])) +#include "../kselftest.h" unsigned long long timing (clockid_t clk_id,unsigned long long samples) {
Signature · 1 line
2.32.0
Re: [PATCH 09/12] selftests/seccomp: remove ARRAY_SIZE define from seccomp_benchmark
Quoted 9 lines · Shuah Khan
ARRAY_SIZEis defined in several selftests. Remove definitions from individual test files and include header file for the define instead.ARRAY_SIZEdefine is added in a separate patch to prepare for this change.Remove
ARRAY_SIZEfromseccomp_benchmarkand pickup the one defined inkselftest.h.Signed-off-by Shuah Khan <[email protected]>
Good idea to clean these up; thanks!
Signature · 1 line
Kees Cook
Shuah Khan
maintainerPATCH 10/12 selftests/sparc64: remove ARRAY_SIZE define from adi-test
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definition from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from adi-test and pickup the one defined in kselftest.h.
--- tools/testing/selftests/sparc64/drivers/adi-test.c | 4 ---- 1 file changed, 4 deletions(-)
tools/testing/selftests/sparc64/drivers/adi-test.c +0 -4
@@ -24,10 +24,6 @@#define DEBUG_LEVEL_4_BIT (0x0008)#define DEBUG_TIMING_BIT (0x1000) -#ifndef ARRAY_SIZE -# define ARRAY_SIZE (x) (sizeof(x) / sizeof((x)[0])) -#endif -/* bit mask of enabled bits to print */ #define DEBUG 0x0001
Signature · 1 line
2.32.0
Shuah Khan
maintainerPATCH 11/12 selftests/timens: remove ARRAY_SIZE define from individual tests
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from timens tests and pickup the one defined in kselftest.h.
--- tools/testing/selftests/timens/procfs.c | 2 -- tools/testing/selftests/timens/timens.c | 2 -- 2 files changed, 4 deletions(-)
tools/testing/selftests/timens/procfs.c +0 -2
@@ -24,8 +24,6 @@#define DAY_IN_SEC (60*60*24)#define TEN_DAYS_IN_SEC (10*DAY_IN_SEC) -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) -static int child_ns, parent_ns;static int switch_ns (int fd)
tools/testing/selftests/timens/timens.c +0 -2
@@ -22,8 +22,6 @@#define DAY_IN_SEC (60*60*24)#define TEN_DAYS_IN_SEC (10*DAY_IN_SEC) -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) -struct test_clock {clockid_t id;char *name;
Signature · 1 line
2.32.0
Shuah Khan
maintainerPATCH 12/12 selftests/vm: remove ARRAY_SIZE define from individual tests
In reply to Shuah KhanARRAY_SIZE is defined in several selftests. Remove definitions from individual test files and include header file for the define instead. ARRAY_SIZE define is added in a separate patch to prepare for this change.
Remove ARRAY_SIZE from vm tests and pickup the one defined in kselftest.h.
--- tools/testing/selftests/vm/mremap_test.c | 1 - tools/testing/selftests/vm/pkey-helpers.h | 3 ++- tools/testing/selftests/vm/va_128TBswitch.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)
tools/testing/selftests/vm/mremap_test.c +0 -1
@@ -20,7 +20,6 @@#define VALIDATION_DEFAULT_THRESHOLD 4/* 4MB */ #define VALIDATION_NO_THRESHOLD 0/* Verify the entire region */ -#define ARRAY_SIZE (x) (sizeof(x) / sizeof((x)[0]))#define MIN (X ,Y ) ((X) < (Y) ? (X) : (Y))struct config {
tools/testing/selftests/vm/pkey-helpers.h +2 -1
@@ -13,6 +13,8 @@#include <ucontext.h> #include <sys/mman.h> +#include "../kselftest.h" +/* Define some kernel-like types */ #define u8 __u8#define u16 __u16
@@ -175,7 +177,6 @@ static inline void __pkey_write_allow(int pkey, int do_allow_write)dprintf4 ("pkey_reg now: %016llx\n" ,read_pkey_reg ()); } -#define ARRAY_SIZE (x) (sizeof(x) / sizeof(*(x)))#define ALIGN_UP (x, align_to) (((x) + ((align_to)-1)) & ~((align_to)-1))#define ALIGN_DOWN (x, align_to) ((x) & ~((align_to)-1))#define ALIGN_PTR_UP (p, ptr_align_to) \
tools/testing/selftests/vm/va_128TBswitch.c +1 -1
@@ -9,7 +9,7 @@#include <sys/mman.h> #include <string.h> -#define ARRAY_SIZE (arr) (sizeof(arr) / sizeof((arr)[0])) +#include "../kselftest.h" #ifdef __powerpc64__#define PAGE_SIZE (64 << 10)
Signature · 1 line
2.32.0