# Tests Makefile.am for utun - all tests with new ll_queue library # Object directories OBJDIR = $(top_builddir)/.objs/tests SRC_OBJDIR = $(top_builddir)/.objs/src TINYCRYPT_OBJDIR = $(top_builddir)/.objs/tinycrypt # All available tests check_PROGRAMS = \ test_etcp_crypto \ test_crypto \ test_etcp_two_instances \ test_etcp_simple_traffic \ test_etcp_minimal \ test_etcp_100_packets \ test_pkt_normalizer_etcp \ test_pkt_normalizer_standalone \ test_ll_queue \ test_ecc_encrypt \ test_intensive_memory_pool \ test_memory_pool_and_config \ test_packet_dump \ test_u_async_comprehensive \ test_u_async_performance \ test_debug_categories \ test_config_debug \ bench_timeout_heap \ bench_uasync_timeouts # Basic includes AM_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source # TinyCrypt object files (in .objs directory) TINYCRYPT_OBJS = \ $(TINYCRYPT_OBJDIR)/aes_encrypt.o \ $(TINYCRYPT_OBJDIR)/aes_decrypt.o \ $(TINYCRYPT_OBJDIR)/ccm_mode.o \ $(TINYCRYPT_OBJDIR)/cmac_mode.o \ $(TINYCRYPT_OBJDIR)/ctr_mode.o \ $(TINYCRYPT_OBJDIR)/ecc.o \ $(TINYCRYPT_OBJDIR)/ecc_dh.o \ $(TINYCRYPT_OBJDIR)/ecc_dsa.o \ $(TINYCRYPT_OBJDIR)/sha256.o \ $(TINYCRYPT_OBJDIR)/ecc_platform_specific.o \ $(TINYCRYPT_OBJDIR)/utils.o # Secure channel and CRC objects SECURE_CHANNEL_OBJS = $(SRC_OBJDIR)/secure_channel.o $(SRC_OBJDIR)/crc32.o # ETCP core objects ETCP_CORE_OBJS = \ $(SRC_OBJDIR)/etcp.o \ $(SRC_OBJDIR)/etcp_connections.o \ $(SRC_OBJDIR)/etcp_loadbalancer.o \ $(SRC_OBJDIR)/pkt_normalizer.o # Full ETCP objects ETCP_FULL_OBJS = \ $(SRC_OBJDIR)/config_parser.o \ $(SRC_OBJDIR)/config_updater.o \ $(SRC_OBJDIR)/route_lib.o \ $(SRC_OBJDIR)/routing.o \ $(SRC_OBJDIR)/tun_if.o \ $(SRC_OBJDIR)/utun_instance.o \ $(ETCP_CORE_OBJS) # Common libraries COMMON_LIBS = $(top_builddir)/lib/libuasync.a -lpthread # Crypto libraries (conditional) if USE_OPENSSL CRYPTO_LIBS = -lcrypto else CRYPTO_LIBS = $(TINYCRYPT_OBJS) endif # Register tests TESTS = $(check_PROGRAMS) # Test definitions with standard automake variables test_etcp_crypto_SOURCES = test_etcp_crypto.c test_etcp_crypto_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source test_etcp_crypto_LDADD = $(SECURE_CHANNEL_OBJS) $(CRYPTO_LIBS) $(COMMON_LIBS) test_crypto_SOURCES = test_crypto.c test_crypto_CFLAGS = -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source -I$(top_srcdir)/lib test_crypto_LDADD = $(TINYCRYPT_OBJS) $(COMMON_LIBS) test_etcp_two_instances_SOURCES = test_etcp_two_instances.c test_etcp_two_instances_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source test_etcp_two_instances_LDADD = $(ETCP_FULL_OBJS) $(SECURE_CHANNEL_OBJS) $(CRYPTO_LIBS) $(COMMON_LIBS) test_etcp_simple_traffic_SOURCES = test_etcp_simple_traffic.c test_etcp_simple_traffic_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source test_etcp_simple_traffic_LDADD = $(ETCP_FULL_OBJS) $(SECURE_CHANNEL_OBJS) $(CRYPTO_LIBS) $(COMMON_LIBS) test_etcp_minimal_SOURCES = test_etcp_minimal.c test_etcp_minimal_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source test_etcp_minimal_LDADD = $(ETCP_FULL_OBJS) $(SECURE_CHANNEL_OBJS) $(CRYPTO_LIBS) $(COMMON_LIBS) test_etcp_100_packets_SOURCES = test_etcp_100_packets.c test_etcp_100_packets_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source test_etcp_100_packets_LDADD = $(ETCP_FULL_OBJS) $(SECURE_CHANNEL_OBJS) $(CRYPTO_LIBS) $(COMMON_LIBS) test_pkt_normalizer_etcp_SOURCES = test_pkt_normalizer_etcp.c test_pkt_normalizer_etcp_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source test_pkt_normalizer_etcp_LDADD = $(ETCP_FULL_OBJS) $(SECURE_CHANNEL_OBJS) $(CRYPTO_LIBS) $(COMMON_LIBS) test_pkt_normalizer_standalone_SOURCES = test_pkt_normalizer_standalone.c test_pkt_normalizer_standalone_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source test_pkt_normalizer_standalone_LDADD = $(SRC_OBJDIR)/pkt_normalizer.o $(SRC_OBJDIR)/route_lib.o $(SRC_OBJDIR)/routing.o $(TINYCRYPT_OBJS) $(COMMON_LIBS) test_ll_queue_SOURCES = test_ll_queue.c test_ll_queue_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_ll_queue_LDADD = $(COMMON_LIBS) test_ecc_encrypt_SOURCES = test_ecc_encrypt.c test_ecc_encrypt_CFLAGS = -I$(top_srcdir)/tinycrypt/lib/include -I$(top_srcdir)/tinycrypt/lib/source -I$(top_srcdir)/lib test_ecc_encrypt_LDADD = $(SECURE_CHANNEL_OBJS) $(TINYCRYPT_OBJS) $(COMMON_LIBS) -lcrypto test_intensive_memory_pool_SOURCES = test_intensive_memory_pool.c test_intensive_memory_pool_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_intensive_memory_pool_LDADD = $(COMMON_LIBS) test_memory_pool_and_config_SOURCES = test_memory_pool_and_config.c test_memory_pool_and_config_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_memory_pool_and_config_LDADD = $(COMMON_LIBS) test_packet_dump_SOURCES = test_packet_dump.c test_packet_dump_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_packet_dump_LDADD = $(COMMON_LIBS) test_u_async_comprehensive_SOURCES = test_u_async_comprehensive.c test_u_async_comprehensive_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_u_async_comprehensive_LDADD = $(COMMON_LIBS) test_u_async_performance_SOURCES = test_u_async_performance.c test_u_async_performance_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_u_async_performance_LDADD = $(COMMON_LIBS) test_debug_categories_SOURCES = test_debug_categories.c test_debug_categories_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_debug_categories_LDADD = $(COMMON_LIBS) test_config_debug_SOURCES = test_config_debug.c test_config_debug_CFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/lib test_config_debug_LDADD = $(SRC_OBJDIR)/config_parser.o $(COMMON_LIBS) bench_timeout_heap_SOURCES = bench_timeout_heap.c bench_timeout_heap_CFLAGS = -I$(top_srcdir)/lib bench_timeout_heap_LDADD = $(COMMON_LIBS) bench_uasync_timeouts_SOURCES = bench_uasync_timeouts.c bench_uasync_timeouts_CFLAGS = -I$(top_srcdir)/lib bench_uasync_timeouts_LDADD = $(COMMON_LIBS) # After building tests, move their object files to shadow directory all-local: shadow-test-objects shadow-test-objects: $(check_PROGRAMS) @$(MKDIR_P) $(OBJDIR) @for prog in $(check_PROGRAMS); do \ prog_obj=$${prog}_OBJECTS; \ eval "objs=\"\$$prog_obj\""; \ for obj in $$objs; do \ if test -f "$$obj"; then \ mv -f "$$obj" $(OBJDIR)/ 2>/dev/null || true; \ fi; \ done; \ done # Clean clean-local: -rm -f $(check_PROGRAMS) -rm -rf $(OBJDIR)