1308b7deeSHangbin Liu# SPDX-License-Identifier: GPL-2.0 2308b7deeSHangbin Liu# Makefile for YNL tests 3308b7deeSHangbin Liu 4e0aa0c61SJakub Kicinskiinclude ../Makefile.deps 5e0aa0c61SJakub Kicinski 6e0aa0c61SJakub KicinskiCC=gcc 7e0aa0c61SJakub KicinskiCFLAGS += -std=gnu11 -O2 -W -Wall -Wextra -Wno-unused-parameter -Wshadow \ 8e0aa0c61SJakub Kicinski -I../lib/ -I../generated/ -I../../../testing/selftests/ \ 9e0aa0c61SJakub Kicinski -idirafter $(UAPI_PATH) 10e0aa0c61SJakub Kicinskiifneq ("$(NDEBUG)","1") 11e0aa0c61SJakub Kicinski CFLAGS += -g -fsanitize=address -fsanitize=leak -static-libasan 12e0aa0c61SJakub Kicinskiendif 13e0aa0c61SJakub Kicinski 14e0aa0c61SJakub KicinskiLDLIBS=../lib/ynl.a ../generated/protos.a 15e0aa0c61SJakub Kicinski 16d86670b8SJakub KicinskiTEST_PROGS := \ 17db20b374SJakub Kicinski devlink.sh \ 181419fbf5SJakub Kicinski ethtool.sh \ 19e7a39b8fSJakub Kicinski rt-addr.sh \ 20aa234faaSJakub Kicinski rt-route.sh \ 21308b7deeSHangbin Liu test_ynl_cli.sh \ 22308b7deeSHangbin Liu test_ynl_ethtool.sh \ 23d86670b8SJakub Kicinski# end of TEST_PROGS 24308b7deeSHangbin Liu 25285804d6SJakub KicinskiTEST_GEN_PROGS := \ 26285804d6SJakub Kicinski netdev \ 277e3effbcSJakub Kicinski ovs \ 285c320678SJakub Kicinski rt-link \ 296cf8fb47SJakub Kicinski tc \ 30285804d6SJakub Kicinski# end of TEST_GEN_PROGS 31e0aa0c61SJakub Kicinski 32db20b374SJakub KicinskiTEST_GEN_FILES := \ 33285804d6SJakub Kicinski devlink \ 341419fbf5SJakub Kicinski ethtool \ 35e7a39b8fSJakub Kicinski rt-addr \ 36285804d6SJakub Kicinski rt-route \ 37aa234faaSJakub Kicinski# end of TEST_GEN_FILES 38285804d6SJakub Kicinski 39*22ef8a26SHangbin LiuTEST_FILES := \ 40*22ef8a26SHangbin Liu ethtool.py \ 41*22ef8a26SHangbin Liu ynl_nsim_lib.sh \ 42*22ef8a26SHangbin Liu# end of TEST_FILES 437a95e525SJakub Kicinski 44285804d6SJakub KicinskiCFLAGS_netdev:=$(CFLAGS_netdev) $(CFLAGS_rt-link) 457e3effbcSJakub KicinskiCFLAGS_ovs:=$(CFLAGS_ovs_datapath) 46e0aa0c61SJakub Kicinski 47e0aa0c61SJakub Kicinskiinclude $(wildcard *.d) 48e0aa0c61SJakub Kicinski 492bfc36f5SJakub KicinskiINSTALL_PATH ?= $(DESTDIR)/usr/share/kselftest 502bfc36f5SJakub Kicinski 51aa234faaSJakub Kicinskiall: $(TEST_GEN_PROGS) $(TEST_GEN_FILES) 52e0aa0c61SJakub Kicinski 53e0aa0c61SJakub Kicinski../lib/ynl.a: 54e0aa0c61SJakub Kicinski @$(MAKE) -C ../lib 55e0aa0c61SJakub Kicinski 56e0aa0c61SJakub Kicinski../generated/protos.a: 57e0aa0c61SJakub Kicinski @$(MAKE) -C ../generated 58e0aa0c61SJakub Kicinski 59aa234faaSJakub Kicinski$(TEST_GEN_PROGS) $(TEST_GEN_FILES): %: %.c ../lib/ynl.a ../generated/protos.a 60e0aa0c61SJakub Kicinski @echo -e '\tCC test $@' 61e0aa0c61SJakub Kicinski @$(COMPILE.c) $(CFLAGS_$@) $@.c -o $@.o 62e0aa0c61SJakub Kicinski @$(LINK.c) $@.o -o $@ $(LDLIBS) 63308b7deeSHangbin Liu 64308b7deeSHangbin Liurun_tests: 65d86670b8SJakub Kicinski @for test in $(TEST_PROGS); do \ 66308b7deeSHangbin Liu ./$$test; \ 67308b7deeSHangbin Liu done 68308b7deeSHangbin Liu 69aa234faaSJakub Kicinskiinstall: $(TEST_GEN_PROGS) $(TEST_GEN_FILES) 702bfc36f5SJakub Kicinski @mkdir -p $(INSTALL_PATH)/ynl 712bfc36f5SJakub Kicinski @cp ../../../testing/selftests/kselftest/ktap_helpers.sh $(INSTALL_PATH)/ 72d86670b8SJakub Kicinski @for test in $(TEST_PROGS); do \ 733e90e00dSJakub Kicinski name=$$(basename $$test); \ 74308b7deeSHangbin Liu sed -e 's|^ynl=.*|ynl="ynl"|' \ 75308b7deeSHangbin Liu -e 's|^ynl_ethtool=.*|ynl_ethtool="ynl-ethtool"|' \ 762bfc36f5SJakub Kicinski -e 's|KSELFTEST_KTAP_HELPERS=.*|KSELFTEST_KTAP_HELPERS="$(INSTALL_PATH)/ktap_helpers.sh"|' \ 772bfc36f5SJakub Kicinski $$test > $(INSTALL_PATH)/ynl/$$name; \ 782bfc36f5SJakub Kicinski chmod +x $(INSTALL_PATH)/ynl/$$name; \ 79308b7deeSHangbin Liu done 807a95e525SJakub Kicinski @for file in $(TEST_FILES); do \ 817a95e525SJakub Kicinski cp $$file $(INSTALL_PATH)/ynl/$$file; \ 827a95e525SJakub Kicinski done 83aa234faaSJakub Kicinski @for bin in $(TEST_GEN_PROGS) $(TEST_GEN_FILES); do \ 84e0aa0c61SJakub Kicinski cp $$bin $(INSTALL_PATH)/ynl/$$bin; \ 85e0aa0c61SJakub Kicinski done 86285804d6SJakub Kicinski @for test in $(TEST_PROGS) $(TEST_GEN_PROGS); do \ 8732d6fd58SJakub Kicinski echo "ynl:$$test"; \ 8832d6fd58SJakub Kicinski done > $(INSTALL_PATH)/kselftest-list.txt 89308b7deeSHangbin Liu 90e0aa0c61SJakub Kicinskiclean: 91e0aa0c61SJakub Kicinski rm -f *.o *.d *~ 92308b7deeSHangbin Liu 93e0aa0c61SJakub Kicinskidistclean: clean 94aa234faaSJakub Kicinski rm -f $(TEST_GEN_PROGS) $(TEST_GEN_FILES) 95e0aa0c61SJakub Kicinski 96e0aa0c61SJakub Kicinski.PHONY: all install clean distclean run_tests 97e0aa0c61SJakub Kicinski.DEFAULT_GOAL=all 98