selftests: sync: kselftest and kselftest-clean fail for make O=dir case

sync test fails to build when object directory is specified to relocate
object files. Fix it to specify the correct path. Fix clean target to
remove objects. Also include simplified logic to use TEST_CUSTOM_PROGS
in build and clean targets instead of hard-coding the test name each
time.

Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
This commit is contained in:
Shuah Khan 2017-09-11 14:14:41 -06:00
parent 38f7251852
commit b2fc6ade9f

View file

@ -2,14 +2,16 @@ CFLAGS += -O2 -g -std=gnu89 -pthread -Wall -Wextra
CFLAGS += -I../../../../usr/include/
LDFLAGS += -pthread
# lib.mk TEST_CUSTOM_PROGS var is for custome tests that need special
# build rules. lib.mk will run and install them.
TEST_CUSTOM_PROGS = sync_test
all: $(TEST_CUSTOM_PROGS)
.PHONY: all clean
include ../lib.mk
# lib.mk TEST_CUSTOM_PROGS var is for custom tests that need special
# build rules. lib.mk will run and install them.
TEST_CUSTOM_PROGS := $(OUTPUT)/sync_test
all: $(TEST_CUSTOM_PROGS)
OBJS = sync_test.o sync.o
TESTS += sync_alloc.o
@ -20,6 +22,16 @@ TESTS += sync_stress_parallelism.o
TESTS += sync_stress_consumer.o
TESTS += sync_stress_merge.o
sync_test: $(OBJS) $(TESTS)
OBJS := $(patsubst %,$(OUTPUT)/%,$(OBJS))
TESTS := $(patsubst %,$(OUTPUT)/%,$(TESTS))
EXTRA_CLEAN := sync_test $(OBJS) $(TESTS)
$(TEST_CUSTOM_PROGS): $(TESTS) $(OBJS)
$(CC) -o $(TEST_CUSTOM_PROGS) $(OBJS) $(TESTS) $(CFLAGS) $(LDFLAGS)
$(OBJS): $(OUTPUT)/%.o: %.c
$(CC) -c $^ -o $@
$(TESTS): $(OUTPUT)/%.o: %.c
$(CC) -c $^ -o $@
EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(OBJS) $(TESTS)