mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-07-06 22:05:22 +02:00
tools: separate out shared radix-tree components
The core components contained within the radix-tree tests which provide shims for kernel headers and access to the maple tree are useful for testing other things, so separate them out and make the radix tree tests dependent on the shared components. This lays the groundwork for us to add VMA tests of the newly introduced vma.c file. Link: https://lkml.kernel.org/r/1ee720c265808168e0d75608e687607d77c36719.1722251717.git.lorenzo.stoakes@oracle.com Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Reviewed-by: Liam R. Howlett <Liam.Howlett@oracle.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: Brendan Higgins <brendanhiggins@google.com> Cc: Christian Brauner <brauner@kernel.org> Cc: David Gow <davidgow@google.com> Cc: Eric W. Biederman <ebiederm@xmission.com> Cc: Jan Kara <jack@suse.cz> Cc: Kees Cook <kees@kernel.org> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Rae Moar <rmoar@google.com> Cc: SeongJae Park <sj@kernel.org> Cc: Shuah Khan <shuah@kernel.org> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Pengfei Xu <pengfei.xu@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
802443a44d
commit
74579d8dab
1
tools/testing/radix-tree/.gitignore
vendored
1
tools/testing/radix-tree/.gitignore
vendored
|
@ -1,4 +1,5 @@
|
|||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
generated/autoconf.h
|
||||
generated/bit-length.h
|
||||
generated/map-shift.h
|
||||
idr.c
|
||||
|
|
|
@ -1,77 +1,29 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
CFLAGS += -I. -I../../include -I../../../lib -g -Og -Wall \
|
||||
-D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined
|
||||
LDFLAGS += -fsanitize=address -fsanitize=undefined
|
||||
LDLIBS+= -lpthread -lurcu
|
||||
.PHONY: clean
|
||||
|
||||
TARGETS = main idr-test multiorder xarray maple
|
||||
LIBS := slab.o find_bit.o bitmap.o hweight.o vsprintf.o
|
||||
CORE_OFILES := xarray.o radix-tree.o idr.o linux.o test.o maple.o $(LIBS)
|
||||
OFILES = main.o $(CORE_OFILES) regression1.o regression2.o regression3.o \
|
||||
regression4.o tag_check.o multiorder.o idr-test.o iteration_check.o \
|
||||
iteration_check_2.o benchmark.o
|
||||
|
||||
ifndef SHIFT
|
||||
SHIFT=3
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD), 32)
|
||||
CFLAGS += -m32
|
||||
LDFLAGS += -m32
|
||||
LONG_BIT := 32
|
||||
endif
|
||||
|
||||
ifndef LONG_BIT
|
||||
LONG_BIT := $(shell getconf LONG_BIT)
|
||||
endif
|
||||
CORE_OFILES = $(SHARED_OFILES) xarray.o maple.o test.o
|
||||
OFILES = main.o $(CORE_OFILES) regression1.o regression2.o \
|
||||
regression3.o regression4.o tag_check.o multiorder.o idr-test.o \
|
||||
iteration_check.o iteration_check_2.o benchmark.o
|
||||
|
||||
targets: generated/map-shift.h generated/bit-length.h $(TARGETS)
|
||||
|
||||
include ../shared/shared.mk
|
||||
|
||||
main: $(OFILES)
|
||||
|
||||
idr-test.o: ../../../lib/test_ida.c
|
||||
idr-test: idr-test.o $(CORE_OFILES)
|
||||
|
||||
xarray: $(CORE_OFILES)
|
||||
xarray: $(CORE_OFILES) xarray.o
|
||||
|
||||
maple: $(CORE_OFILES)
|
||||
maple: $(CORE_OFILES) maple.o
|
||||
|
||||
multiorder: multiorder.o $(CORE_OFILES)
|
||||
|
||||
clean:
|
||||
$(RM) $(TARGETS) *.o radix-tree.c idr.c generated/map-shift.h generated/bit-length.h
|
||||
$(RM) $(TARGETS) *.o radix-tree.c idr.c generated/*
|
||||
|
||||
vpath %.c ../../lib
|
||||
|
||||
$(OFILES): Makefile *.h */*.h generated/map-shift.h generated/bit-length.h \
|
||||
../../include/linux/*.h \
|
||||
../../include/asm/*.h \
|
||||
../../../include/linux/xarray.h \
|
||||
../../../include/linux/maple_tree.h \
|
||||
../../../include/linux/radix-tree.h \
|
||||
../../../lib/radix-tree.h \
|
||||
../../../include/linux/idr.h
|
||||
|
||||
radix-tree.c: ../../../lib/radix-tree.c
|
||||
sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
|
||||
|
||||
idr.c: ../../../lib/idr.c
|
||||
sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
|
||||
|
||||
xarray.o: ../../../lib/xarray.c ../../../lib/test_xarray.c
|
||||
|
||||
maple.o: ../../../lib/maple_tree.c ../../../lib/test_maple_tree.c
|
||||
|
||||
generated/map-shift.h:
|
||||
@if ! grep -qws $(SHIFT) generated/map-shift.h; then \
|
||||
echo "#define XA_CHUNK_SHIFT $(SHIFT)" > \
|
||||
generated/map-shift.h; \
|
||||
fi
|
||||
|
||||
generated/bit-length.h: FORCE
|
||||
@if ! grep -qws CONFIG_$(LONG_BIT)BIT generated/bit-length.h; then \
|
||||
echo "Generating $@"; \
|
||||
echo "#define CONFIG_$(LONG_BIT)BIT 1" > $@; \
|
||||
fi
|
||||
|
||||
FORCE: ;
|
||||
$(OFILES): $(SHARED_DEPS) *.h
|
||||
|
|
|
@ -4,17 +4,9 @@
|
|||
* Copyright (c) 2018 Matthew Wilcox <willy@infradead.org>
|
||||
*/
|
||||
|
||||
#define XA_DEBUG
|
||||
#include "xarray-shared.h"
|
||||
#include "test.h"
|
||||
|
||||
#define module_init(x)
|
||||
#define module_exit(x)
|
||||
#define MODULE_AUTHOR(x)
|
||||
#define MODULE_DESCRIPTION(X)
|
||||
#define MODULE_LICENSE(x)
|
||||
#define dump_stack() assert(0)
|
||||
|
||||
#include "../../../lib/xarray.c"
|
||||
#undef XA_DEBUG
|
||||
#include "../../../lib/test_xarray.c"
|
||||
|
||||
|
|
9
tools/testing/shared/maple-shared.h
Normal file
9
tools/testing/shared/maple-shared.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
|
||||
#define CONFIG_DEBUG_MAPLE_TREE
|
||||
#define CONFIG_MAPLE_SEARCH
|
||||
#define MAPLE_32BIT (MAPLE_NODE_SLOTS > 31)
|
||||
#include "shared.h"
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
#include "linux/init.h"
|
7
tools/testing/shared/maple-shim.c
Normal file
7
tools/testing/shared/maple-shim.c
Normal file
|
@ -0,0 +1,7 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/* Very simple shim around the maple tree. */
|
||||
|
||||
#include "maple-shared.h"
|
||||
|
||||
#include "../../../lib/maple_tree.c"
|
33
tools/testing/shared/shared.h
Normal file
33
tools/testing/shared/shared.h
Normal file
|
@ -0,0 +1,33 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
|
||||
#include <linux/types.h>
|
||||
#include <linux/bug.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/bitops.h>
|
||||
|
||||
#include <linux/gfp.h>
|
||||
#include <linux/rcupdate.h>
|
||||
|
||||
#ifndef module_init
|
||||
#define module_init(x)
|
||||
#endif
|
||||
|
||||
#ifndef module_exit
|
||||
#define module_exit(x)
|
||||
#endif
|
||||
|
||||
#ifndef MODULE_AUTHOR
|
||||
#define MODULE_AUTHOR(x)
|
||||
#endif
|
||||
|
||||
#ifndef MODULE_LICENSE
|
||||
#define MODULE_LICENSE(x)
|
||||
#endif
|
||||
|
||||
#ifndef MODULE_DESCRIPTION
|
||||
#define MODULE_DESCRIPTION(x)
|
||||
#endif
|
||||
|
||||
#ifndef dump_stack
|
||||
#define dump_stack() assert(0)
|
||||
#endif
|
72
tools/testing/shared/shared.mk
Normal file
72
tools/testing/shared/shared.mk
Normal file
|
@ -0,0 +1,72 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
|
||||
CFLAGS += -I../shared -I. -I../../include -I../../../lib -g -Og -Wall \
|
||||
-D_LGPL_SOURCE -fsanitize=address -fsanitize=undefined
|
||||
LDFLAGS += -fsanitize=address -fsanitize=undefined
|
||||
LDLIBS += -lpthread -lurcu
|
||||
LIBS := slab.o find_bit.o bitmap.o hweight.o vsprintf.o
|
||||
SHARED_OFILES = xarray-shared.o radix-tree.o idr.o linux.o $(LIBS)
|
||||
|
||||
SHARED_DEPS = Makefile ../shared/shared.mk ../shared/*.h generated/map-shift.h \
|
||||
generated/bit-length.h generated/autoconf.h \
|
||||
../../include/linux/*.h \
|
||||
../../include/asm/*.h \
|
||||
../../../include/linux/xarray.h \
|
||||
../../../include/linux/maple_tree.h \
|
||||
../../../include/linux/radix-tree.h \
|
||||
../../../lib/radix-tree.h \
|
||||
../../../include/linux/idr.h
|
||||
|
||||
ifndef SHIFT
|
||||
SHIFT=3
|
||||
endif
|
||||
|
||||
ifeq ($(BUILD), 32)
|
||||
CFLAGS += -m32
|
||||
LDFLAGS += -m32
|
||||
LONG_BIT := 32
|
||||
endif
|
||||
|
||||
ifndef LONG_BIT
|
||||
LONG_BIT := $(shell getconf LONG_BIT)
|
||||
endif
|
||||
|
||||
%.o: ../shared/%.c
|
||||
$(CC) -c $(CFLAGS) $< -o $@
|
||||
|
||||
vpath %.c ../../lib
|
||||
|
||||
$(SHARED_OFILES): $(SHARED_DEPS)
|
||||
|
||||
radix-tree.c: ../../../lib/radix-tree.c
|
||||
sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
|
||||
|
||||
idr.c: ../../../lib/idr.c
|
||||
sed -e 's/^static //' -e 's/__always_inline //' -e 's/inline //' < $< > $@
|
||||
|
||||
xarray-shared.o: ../shared/xarray-shared.c ../../../lib/xarray.c \
|
||||
../../../lib/test_xarray.c
|
||||
|
||||
maple-shared.o: ../shared/maple-shared.c ../../../lib/maple_tree.c \
|
||||
../../../lib/test_maple_tree.c
|
||||
|
||||
generated/autoconf.h:
|
||||
@mkdir -p generated
|
||||
cp ../shared/autoconf.h generated/autoconf.h
|
||||
|
||||
generated/map-shift.h:
|
||||
@mkdir -p generated
|
||||
@if ! grep -qws $(SHIFT) generated/map-shift.h; then \
|
||||
echo "Generating $@"; \
|
||||
echo "#define XA_CHUNK_SHIFT $(SHIFT)" > \
|
||||
generated/map-shift.h; \
|
||||
fi
|
||||
|
||||
generated/bit-length.h: FORCE
|
||||
@mkdir -p generated
|
||||
@if ! grep -qws CONFIG_$(LONG_BIT)BIT generated/bit-length.h; then \
|
||||
echo "Generating $@"; \
|
||||
echo "#define CONFIG_$(LONG_BIT)BIT 1" > $@; \
|
||||
fi
|
||||
|
||||
FORCE: ;
|
5
tools/testing/shared/xarray-shared.c
Normal file
5
tools/testing/shared/xarray-shared.c
Normal file
|
@ -0,0 +1,5 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "xarray-shared.h"
|
||||
|
||||
#include "../../../lib/xarray.c"
|
4
tools/testing/shared/xarray-shared.h
Normal file
4
tools/testing/shared/xarray-shared.h
Normal file
|
@ -0,0 +1,4 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0+ */
|
||||
|
||||
#define XA_DEBUG
|
||||
#include "shared.h"
|
Loading…
Reference in New Issue
Block a user