[PATCH liburing 2/2] test/Makefile: Refactor the Makefile

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The Makefile for test is not efficient and reads bad. We have to
specify the name for each test 2 times (filename and name without
the ext) while we could have just elided the extension from the
source filename.

Let's make it simpler and easier to manage.

Changes summary:
 - Clean up and reorder things.
 - Sort the `test_srcs` alphabetically.
 - Remove `test_objs` (it turned out unused).
 - Generate `test_targets` variable from `test_srcs` by simply
   removing the `.c` and `.cc` file extension.

Signed-off-by: Ammar Faizi <ammar.faizi@xxxxxxxxxxxxxxxxxxxxx>
---
 test/Makefile | 263 ++++++++++++++++----------------------------------
 1 file changed, 83 insertions(+), 180 deletions(-)

diff --git a/test/Makefile b/test/Makefile
index 1a10a24..f7eafad 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -8,177 +8,32 @@ include ../config-host.mak
 endif
 
 CPPFLAGS ?=
-override CPPFLAGS += -D_GNU_SOURCE -D__SANE_USERSPACE_TYPES__ \
-	-I../src/include/ -include ../config-host.h
-CFLAGS ?= -g -O2 -Wall -Wextra
 
+override CPPFLAGS += \
+	-D_GNU_SOURCE \
+	-D__SANE_USERSPACE_TYPES__ \
+	-I../src/include/ \
+	-include ../config-host.h
+
+CFLAGS ?= -g -O2 -Wall -Wextra
 XCFLAGS = -Wno-unused-parameter -Wno-sign-compare
+
 ifdef CONFIG_HAVE_STRINGOP_OVERFLOW
-  XCFLAGS += -Wstringop-overflow=0
+	XCFLAGS += -Wstringop-overflow=0
 endif
+
 ifdef CONFIG_HAVE_ARRAY_BOUNDS
-  XCFLAGS += -Warray-bounds=0
+	XCFLAGS += -Warray-bounds=0
 endif
 
 CXXFLAGS ?= $(CFLAGS)
 override CFLAGS += $(XCFLAGS) -DLIBURING_BUILD_TEST
 override CXXFLAGS += $(XCFLAGS) -std=c++11 -DLIBURING_BUILD_TEST
+
 LDFLAGS ?=
 override LDFLAGS += -L../src/ -luring
 
-test_targets += \
-	232c93d07b74-test \
-	35fa71a030ca-test \
-	500f9fbadef8-test \
-	7ad0e4b2f83c-test \
-	8a9973408177-test \
-	917257daa0fe-test \
-	a0908ae19763-test \
-	a4c0b3decb33-test \
-	accept \
-	accept-link \
-	accept-reuse \
-	accept-test \
-	across-fork splice \
-	b19062a56726-test \
-	b5837bd5311d-test \
-	ce593a6c480a-test \
-	close-opath \
-	connect \
-	cq-full \
-	cq-overflow \
-	cq-peek-batch \
-	cq-ready \
-	cq-size \
-	d4ae271dfaae-test \
-	d77a67ed5f27-test \
-	defer \
-	double-poll-crash \
-	eeed8b54e0df-test \
-	empty-eownerdead \
-	eventfd \
-	eventfd-disable \
-	eventfd-ring \
-	fadvise \
-	fallocate \
-	fc2a85cb02ef-test \
-	file-register \
-	file-verify \
-	file-update \
-	files-exit-hang-poll \
-	files-exit-hang-timeout \
-	fixed-link \
-	fsync \
-	hardlink \
-	io-cancel \
-	io_uring_enter \
-	io_uring_register \
-	io_uring_setup \
-	iopoll \
-	lfs-openat \
-	lfs-openat-write \
-	link \
-	link-timeout \
-	link_drain \
-	madvise \
-	mkdir \
-	multicqes_drain \
-	nop \
-	nop-all-sizes \
-	open-close \
-	openat2 \
-	personality \
-	pipe-eof \
-	pipe-reuse \
-	poll \
-	poll-cancel \
-	poll-cancel-ton \
-	poll-link \
-	poll-many \
-	poll-mshot-update \
-	poll-ring \
-	poll-v-poll \
-	probe \
-	read-write \
-	register-restrictions \
-	rename \
-	ring-leak \
-	ring-leak2 \
-	rw_merge_test \
-	self \
-	send_recv \
-	send_recvmsg \
-	shared-wq \
-	short-read \
-	shutdown \
-	sigfd-deadlock \
-	socket-rw \
-	socket-rw-eagain \
-	sq-full \
-	sq-poll-dup \
-	sq-poll-kthread \
-	sq-poll-share \
-	sqpoll-disable-exit \
-	sqpoll-exit-hang \
-	sqpoll-cancel-hang \
-	sqpoll-sleep \
-	sq-space_left \
-	stdout \
-	submit-reuse \
-	submit-link-fail \
-	symlink \
-	teardowns \
-	thread-exit \
-	timeout \
-	timeout-new \
-	timeout-overflow \
-	unlink \
-	wakeup-hang \
-	sendmsg_fs_cve \
-	rsrc_tags \
-	exec-target \
-	# EOL
-
-all_targets += $(test_targets)
-
-include ../Makefile.quiet
-
-ifdef CONFIG_HAVE_STATX
-test_targets += statx
-endif
-all_targets += statx
-
-ifdef CONFIG_HAVE_CXX
-test_targets += sq-full-cpp
-endif
-all_targets += sq-full-cpp
-
-#
-# Build ../src/syscall.c manually from test's Makefile to support
-# liburing nolibc.
-#
-# Functions in ../src/syscall.c require libc to work with, if we
-# build liburing without libc, we don't have those functions
-# in liburing.a. So build it manually here.
-#
-helpers = helpers.o ../src/syscall.o
-
-all: ${helpers} $(test_targets)
-
-../src/syscall.o: ../src/syscall.c
-	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
-
-helpers.o: helpers.c
-	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
-
-%: %.c ${helpers} helpers.h
-	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< ${helpers} $(LDFLAGS)
-
-%: %.cc ${helpers} helpers.h
-	$(QUIET_CXX)$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< ${helpers} $(LDFLAGS)
-
 test_srcs := \
-	helpers.c \
 	232c93d07b74-test.c \
 	35fa71a030ca-test.c \
 	500f9fbadef8-test.c \
@@ -187,10 +42,10 @@ test_srcs := \
 	917257daa0fe-test.c \
 	a0908ae19763-test.c \
 	a4c0b3decb33-test.c \
+	accept.c \
 	accept-link.c \
 	accept-reuse.c \
 	accept-test.c \
-	accept.c \
 	across-fork.c \
 	b19062a56726-test.c \
 	b5837bd5311d-test.c \
@@ -200,7 +55,7 @@ test_srcs := \
 	cq-full.c \
 	cq-overflow.c \
 	cq-peek-batch.c \
-	cq-ready.c\
+	cq-ready.c \
 	cq-size.c \
 	d4ae271dfaae-test.c \
 	d77a67ed5f27-test.c \
@@ -208,56 +63,60 @@ test_srcs := \
 	double-poll-crash.c \
 	eeed8b54e0df-test.c \
 	empty-eownerdead.c \
+	eventfd.c \
 	eventfd-disable.c \
 	eventfd-ring.c \
-	eventfd.c \
+	exec-target.c \
 	fadvise.c \
 	fallocate.c \
 	fc2a85cb02ef-test.c \
 	file-register.c \
-	file-verify.c \
-	file-update.c \
 	files-exit-hang-poll.c \
 	files-exit-hang-timeout.c \
+	file-update.c \
+	file-verify.c \
 	fixed-link.c \
 	fsync.c \
 	hardlink.c \
 	io-cancel.c \
+	iopoll.c \
 	io_uring_enter.c \
 	io_uring_register.c \
 	io_uring_setup.c \
-	iopoll.c \
-	lfs-openat-write.c \
 	lfs-openat.c \
-	link-timeout.c \
+	lfs-openat-write.c \
 	link.c \
 	link_drain.c \
+	link-timeout.c \
 	madvise.c \
 	mkdir.c \
 	multicqes_drain.c \
 	nop-all-sizes.c \
 	nop.c \
-	open-close.c \
 	openat2.c \
+	open-close.c \
 	personality.c \
 	pipe-eof.c \
 	pipe-reuse.c \
-	poll-cancel-ton.c \
+	poll.c \
 	poll-cancel.c \
+	poll-cancel-ton.c \
 	poll-link.c \
 	poll-many.c \
 	poll-mshot-update.c \
 	poll-ring.c \
 	poll-v-poll.c \
-	poll.c \
 	probe.c \
 	read-write.c \
 	register-restrictions.c \
 	rename.c \
-	ring-leak.c \
 	ring-leak2.c \
+	ring-leak.c \
+	rsrc_tags.c \
 	rw_merge_test.c \
 	self.c \
+	sendmsg_fs_cve.c \
+	send_recv.c \
 	send_recvmsg.c \
 	shared-wq.c \
 	short-read.c \
@@ -266,34 +125,74 @@ test_srcs := \
 	socket-rw.c \
 	socket-rw-eagain.c \
 	splice.c \
-	sq-full-cpp.cc \
 	sq-full.c \
+	sq-full-cpp.cc \
+	sqpoll-cancel-hang.c \
+	sqpoll-disable-exit.c \
 	sq-poll-dup.c \
+	sqpoll-exit-hang.c \
 	sq-poll-kthread.c \
 	sq-poll-share.c \
-	sqpoll-disable-exit.c \
-	sqpoll-exit-hang.c \
-	sqpoll-cancel-hang.c \
 	sqpoll-sleep.c \
 	sq-space_left.c \
 	statx.c \
 	stdout.c \
-	submit-reuse.c \
 	submit-link-fail.c \
+	submit-reuse.c \
 	symlink.c \
 	teardowns.c \
 	thread-exit.c \
+	timeout.c \
 	timeout-new.c \
 	timeout-overflow.c \
-	timeout.c \
 	unlink.c \
 	wakeup-hang.c \
-	sendmsg_fs_cve.c \
-	rsrc_tags.c \
-	exec-target.c \
 	# EOL
 
-test_objs := $(patsubst %.c,%.ol,$(patsubst %.cc,%.ol,$(test_srcs)))
+
+all_targets :=
+include ../Makefile.quiet
+
+
+ifdef CONFIG_HAVE_STATX
+	test_srcs += statx.c
+endif
+all_targets += statx
+
+
+ifdef CONFIG_HAVE_CXX
+	test_srcs += sq-full-cpp.cc
+endif
+all_targets += sq-full-cpp
+
+
+test_targets := $(patsubst %.c,%,$(patsubst %.cc,%,$(test_srcs)))
+all_targets += $(test_targets)
+
+#
+# Build ../src/syscall.c manually from test's Makefile to support
+# liburing nolibc.
+#
+# Functions in ../src/syscall.c require libc to work with, if we
+# build liburing without libc, we don't have those functions
+# in liburing.a. So build it manually here.
+#
+helpers = helpers.o ../src/syscall.o
+
+all: $(test_targets)
+
+../src/syscall.o: ../src/syscall.c
+	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
+
+helpers.o: helpers.c
+	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<
+
+%: %.c $(helpers) helpers.h
+	$(QUIET_CC)$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ $< $(helpers) $(LDFLAGS)
+
+%: %.cc $(helpers) helpers.h
+	$(QUIET_CXX)$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< $(helpers) $(LDFLAGS)
+
 
 35fa71a030ca-test: override LDFLAGS += -lpthread
 232c93d07b74-test: override LDFLAGS += -lpthread
@@ -317,11 +216,15 @@ install: $(test_targets) runtests.sh runtests-loop.sh
 	$(INSTALL) -D -m 755 $(test_targets) $(datadir)/liburing-test/
 	$(INSTALL) -D -m 755 runtests.sh  $(datadir)/liburing-test/
 	$(INSTALL) -D -m 755 runtests-loop.sh  $(datadir)/liburing-test/
+
 clean:
-	@rm -f $(all_targets) $(test_objs) helpers.o output/*
+	@rm -f $(all_targets) helpers.o output/*
 	@rm -rf output/
 
 runtests: all
 	@./runtests.sh $(test_targets)
+
 runtests-loop: all
 	@./runtests-loop.sh $(test_targets)
+
+.PHONY: all install clean runtests runtests-loop
-- 
2.30.2




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux