From 5e9c7e7c66166fb926859a279f1c2db5169ba6a0 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Thu, 29 Aug 2024 16:58:09 -0400 Subject: [PATCH] Skip addrinfo tests when libc is statically linked Signed-off-by: Cole Miller --- Makefile.am | 5 +++- test/raft/integration/test_uv_tcp_connect.c | 6 ++-- test/raft/integration/test_uv_tcp_listen.c | 12 ++++---- test/raft/lib/addrinfo.h | 32 +++++++++++++++++++-- 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/Makefile.am b/Makefile.am index 4ffed0fdb..0a2d0d7cb 100644 --- a/Makefile.am +++ b/Makefile.am @@ -212,7 +212,6 @@ check_PROGRAMS += \ raft-core-fuzzy-test libtest_la_SOURCES += \ - test/raft/lib/addrinfo.c \ test/raft/lib/fault.c \ test/raft/lib/fsm.c \ test/raft/lib/heap.c \ @@ -224,6 +223,10 @@ libtest_la_SOURCES += \ test/raft/lib/tcp.c \ test/raft/lib/loop.c +if !WITH_STATIC_DEPS +libtest_la_SOURCES += test/raft/lib/addrinfo.c +endif + libraft_la_CFLAGS = $(AM_CFLAGS) libraft_la_LDFLAGS = $(static) $(UV_LIBS) diff --git a/test/raft/integration/test_uv_tcp_connect.c b/test/raft/integration/test_uv_tcp_connect.c index 7efc68c60..9fc578903 100644 --- a/test/raft/integration/test_uv_tcp_connect.c +++ b/test/raft/integration/test_uv_tcp_connect.c @@ -192,7 +192,7 @@ TEST(tcp_connect, connectByName, setUp, tearDown, 0, NULL) } /* Successfully connect to the peer by first IP */ -TEST(tcp_connect, firstIP, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_connect, firstIP, setUp, tearDown, 0, NULL) { struct fixture *f = data; const struct AddrinfoResult results[] = {{"127.0.0.1", TCP_SERVER_PORT}, @@ -203,7 +203,7 @@ TEST(tcp_connect, firstIP, setUp, tearDown, 0, NULL) } /* Successfully connect to the peer by second IP */ -TEST(tcp_connect, secondIP, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_connect, secondIP, setUp, tearDown, 0, NULL) { struct fixture *f = data; const struct AddrinfoResult results[] = {{"127.0.0.1", .6666}, @@ -332,7 +332,7 @@ TEST(tcp_connect, closeDuringConnectAbort, setUp, tearDownDeps, 0, NULL) /* The transport gets closed right after the first connection attempt failed, * while doing a second connection attempt. */ -TEST(tcp_connect, closeDuringSecondConnect, setUp, tearDownDeps, 0, NULL) +ADDRINFO_TEST(tcp_connect, closeDuringSecondConnect, setUp, tearDownDeps, 0, NULL) { struct fixture *f = data; struct uv_check_s check; diff --git a/test/raft/integration/test_uv_tcp_listen.c b/test/raft/integration/test_uv_tcp_listen.c index b239cfa87..e4ec757bc 100644 --- a/test/raft/integration/test_uv_tcp_listen.c +++ b/test/raft/integration/test_uv_tcp_listen.c @@ -237,7 +237,7 @@ TEST(tcp_listen, invalidAddress, setUp, tearDown, 0, invalidTcpListenParams) /* Check success with addrinfo resolve to mutiple IP and first one is used to * connect */ -TEST(tcp_listen, firstOfTwo, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_listen, firstOfTwo, setUp, tearDown, 0, NULL) { const struct AddrinfoResult results[] = {{"127.0.0.1", 9000}, {"127.0.0.2", 9000}}; @@ -252,7 +252,7 @@ TEST(tcp_listen, firstOfTwo, setUp, tearDown, 0, NULL) /* Check success with addrinfo resolve to mutiple IP and second one is used to * connect */ -TEST(tcp_listen, secondOfTwo, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_listen, secondOfTwo, setUp, tearDown, 0, NULL) { const struct AddrinfoResult results[] = {{"127.0.0.2", 9000}, {"127.0.0.1", 9000}}; @@ -268,7 +268,7 @@ TEST(tcp_listen, secondOfTwo, setUp, tearDown, 0, NULL) /* Simulate port already in use error by addrinfo response contain the same IP * twice */ -TEST(tcp_listen, alreadyBound, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_listen, alreadyBound, setUp, tearDown, 0, NULL) { /* We need to use the same endpoint three times as a simple duplicate will * be skipped due to a glib strange behavior @@ -282,7 +282,7 @@ TEST(tcp_listen, alreadyBound, setUp, tearDown, 0, NULL) } /* Error in bind first IP address */ -TEST(tcp_listen, cannotBindFirst, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_listen, cannotBindFirst, setUp, tearDown, 0, NULL) { const struct AddrinfoResult results[] = {{"192.0.2.0", 9000}, {"127.0.0.1", 9000}}; @@ -293,7 +293,7 @@ TEST(tcp_listen, cannotBindFirst, setUp, tearDown, 0, NULL) } /* Error in bind of second IP address */ -TEST(tcp_listen, cannotBindSecond, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_listen, cannotBindSecond, setUp, tearDown, 0, NULL) { const struct AddrinfoResult results[] = {{"127.0.0.1", 9000}, {"192.0.2.0", 9000}}; @@ -304,7 +304,7 @@ TEST(tcp_listen, cannotBindSecond, setUp, tearDown, 0, NULL) } /* Check error on general dns server failure */ -TEST(tcp_listen, resolveFailure, setUp, tearDown, 0, NULL) +ADDRINFO_TEST(tcp_listen, resolveFailure, setUp, tearDown, 0, NULL) { struct fixture *f = data; AddrinfoInjectSetResponse(EAI_FAIL, 0, NULL); diff --git a/test/raft/lib/addrinfo.h b/test/raft/lib/addrinfo.h index cc29d5864..7921412a9 100644 --- a/test/raft/lib/addrinfo.h +++ b/test/raft/lib/addrinfo.h @@ -16,15 +16,39 @@ #include "munit.h" -#define SET_UP_ADDRINFO AddrinfoInjectSetUp(params) -#define TEAR_DOWN_ADDRINFO AddrinfoInjectTearDown() - typedef struct AddrinfoResult { const char *ip; const int port; } AddrinfoResult_t; +#ifdef DQLITE_STATIC_LIBC + +#define ADDRINFO_TEST(S, C, SETUP, TEAR_DOWN, OPTIONS, PARAMS) \ + TEST(S, C, SETUP, TEAR_DOWN, OPTIONS, PARAMS) \ + { \ + return MUNIT_SKIP; \ + } \ + static MUNIT_UNUSED MunitResult test_unused_##S##_##C( \ + MUNIT_UNUSED const MunitParameter params[], MUNIT_UNUSED void *data) + +#define SET_UP_ADDRINFO +#define TEAR_DOWN_ADDRINFO +#define AddrinfoInjectSetResponse(a, b, c) \ + do { \ + (void)a; \ + (void)b; \ + (void)c; \ + } while (0) + +#else /* ifndef DQLITE_STATIC_LIBC */ + +#define ADDRINFO_TEST(S, C, SETUP, TEAR_DOWN, OPTIONS, PARAMS) \ + TEST(S, C, SETUP, TEAR_DOWN, OPTIONS, PARAMS) + +#define SET_UP_ADDRINFO AddrinfoInjectSetUp(params) +#define TEAR_DOWN_ADDRINFO AddrinfoInjectTearDown() + void AddrinfoInjectSetResponse(int rv, int num_results, const struct AddrinfoResult *results); @@ -32,4 +56,6 @@ void AddrinfoInjectSetResponse(int rv, void AddrinfoInjectSetUp(const MunitParameter params[]); void AddrinfoInjectTearDown(void); +#endif /* ifdef DQLITE_STATIC_LIBC ... else */ + #endif // #ifndef TEST_ADDRINFO_H