From: Arran Cudbard-Bell Date: Thu, 30 Jan 2020 19:20:35 +0000 (-0500) Subject: Build trunk test utility as part of the standard build X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5c4d3a5fa706188dd1567b65bfad0ed37ee780f7;p=thirdparty%2Ffreeradius-server.git Build trunk test utility as part of the standard build --- diff --git a/src/lib/server/all.mk b/src/lib/server/all.mk index 362eece7b1a..992f8702763 100644 --- a/src/lib/server/all.mk +++ b/src/lib/server/all.mk @@ -1,61 +1,3 @@ -TARGET := libfreeradius-server.a - -SOURCES := \ - base.c \ - auth.c \ - cf_file.c \ - cf_parse.c \ - cf_util.c \ - client.c \ - command.c \ - cond_eval.c \ - cond_tokenize.c \ - connection.c \ - crypt.c \ - dependency.c \ - dl_module.c \ - exec.c \ - exfile.c \ - log.c \ - main_config.c \ - main_loop.c \ - map_proc.c \ - map.c \ - module.c \ - paircmp.c \ - pairmove.c \ - password.c \ - pool.c \ - rcode.c \ - regex.c \ - request_data.c \ - request.c \ - snmp.c \ - state.c \ - stats.c \ - tmpl.c \ - trigger.c \ - trunk.c \ - users_file.c \ - util.c \ - virtual_servers.c \ - xlat_builtin.c \ - xlat_eval.c \ - xlat_inst.c \ - xlat_tokenize.c - -HEADERS := $(subst src/lib/,,$(wildcard src/lib/server/*.h)) - -# This lets the linker determine which version of the SSLeay functions to use. -TGT_LDLIBS := $(LIBS) $(SYSTEMD_LIBS) $(GPERFTOOLS_LIBS) $(LCRYPT) -TGT_LDFLAGS := $(LDFLAGS) $(SYSTEMD_LDFLAGS) $(GPERFTOOLS_LDFLAGS) - -ifneq ($(OPENSSL_LIBS),) -TGT_PREREQS := libfreeradius-tls.a -endif - -TGT_PREREQS += libfreeradius-util.a - -ifneq ($(MAKECMDGOALS),scan) -SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\" -endif +SUBMAKEFILES := \ + libfreeradius-server.mk \ + trunk_tests.mk diff --git a/src/lib/server/libfreeradius-server.mk b/src/lib/server/libfreeradius-server.mk new file mode 100644 index 00000000000..362eece7b1a --- /dev/null +++ b/src/lib/server/libfreeradius-server.mk @@ -0,0 +1,61 @@ +TARGET := libfreeradius-server.a + +SOURCES := \ + base.c \ + auth.c \ + cf_file.c \ + cf_parse.c \ + cf_util.c \ + client.c \ + command.c \ + cond_eval.c \ + cond_tokenize.c \ + connection.c \ + crypt.c \ + dependency.c \ + dl_module.c \ + exec.c \ + exfile.c \ + log.c \ + main_config.c \ + main_loop.c \ + map_proc.c \ + map.c \ + module.c \ + paircmp.c \ + pairmove.c \ + password.c \ + pool.c \ + rcode.c \ + regex.c \ + request_data.c \ + request.c \ + snmp.c \ + state.c \ + stats.c \ + tmpl.c \ + trigger.c \ + trunk.c \ + users_file.c \ + util.c \ + virtual_servers.c \ + xlat_builtin.c \ + xlat_eval.c \ + xlat_inst.c \ + xlat_tokenize.c + +HEADERS := $(subst src/lib/,,$(wildcard src/lib/server/*.h)) + +# This lets the linker determine which version of the SSLeay functions to use. +TGT_LDLIBS := $(LIBS) $(SYSTEMD_LIBS) $(GPERFTOOLS_LIBS) $(LCRYPT) +TGT_LDFLAGS := $(LDFLAGS) $(SYSTEMD_LDFLAGS) $(GPERFTOOLS_LDFLAGS) + +ifneq ($(OPENSSL_LIBS),) +TGT_PREREQS := libfreeradius-tls.a +endif + +TGT_PREREQS += libfreeradius-util.a + +ifneq ($(MAKECMDGOALS),scan) +SRC_CFLAGS += -DBUILT_WITH_CPPFLAGS=\"$(CPPFLAGS)\" -DBUILT_WITH_CFLAGS=\"$(CFLAGS)\" -DBUILT_WITH_LDFLAGS=\"$(LDFLAGS)\" -DBUILT_WITH_LIBS=\"$(LIBS)\" +endif diff --git a/src/lib/server/trunk.c b/src/lib/server/trunk.c index 22ec89e9a6a..79a79ad7202 100644 --- a/src/lib/server/trunk.c +++ b/src/lib/server/trunk.c @@ -3728,10 +3728,3 @@ fr_trunk_t *fr_trunk_alloc(TALLOC_CTX *ctx, fr_event_list_t *el, return trunk; } - -/* - * cc -g3 -Wall -DHAVE_DLFCN_H -DTESTING_TRUNK -I../../../src -include freeradius-devel/build.h -L../../../build/lib/local/.libs -ltalloc -lfreeradius-unlang -lfreeradius-util -lfreeradius-server -o test_trunk trunk.c - */ -#ifdef TESTING_TRUNK -# include "trunk_tests.c" -#endif diff --git a/src/lib/server/trunk_tests.c b/src/lib/server/trunk_tests.c index 4bb003f652a..55cb3c1cce1 100644 --- a/src/lib/server/trunk_tests.c +++ b/src/lib/server/trunk_tests.c @@ -1,7 +1,9 @@ - #include #include #include + +#include "trunk.c" + //#include typedef struct { fr_trunk_request_t *treq; //!< Trunk request. @@ -22,7 +24,7 @@ typedef struct { #define DEBUG_LVL_SET if (test_verbose_level__ >= 3) fr_debug_lvl = L_DBG_LVL_4 + 1 -static void test_mux(fr_trunk_connection_t *tconn, fr_connection_t *conn, void *uctx) +static void test_mux(fr_trunk_connection_t *tconn, fr_connection_t *conn, UNUSED void *uctx) { fr_trunk_request_t *treq; void *preq; @@ -48,14 +50,14 @@ static void test_mux(fr_trunk_connection_t *tconn, fr_connection_t *conn, void * slen = write(fd, &preq, sizeof(preq)); if (slen < 0) return; if (slen == 0) return; - if (slen < sizeof(preq)) abort(); + if (slen < (ssize_t)sizeof(preq)) abort(); fr_trunk_request_signal_sent(treq); } TEST_CHECK(count > 0); } -static void test_cancel_mux(fr_trunk_connection_t *tconn, fr_connection_t *conn, void *uctx) +static void test_cancel_mux(fr_trunk_connection_t *tconn, fr_connection_t *conn, UNUSED void *uctx) { fr_trunk_request_t *treq; void *preq; @@ -87,14 +89,14 @@ static void test_cancel_mux(fr_trunk_connection_t *tconn, fr_connection_t *conn, } if (slen < 0) return; if (slen == 0) return; - if (slen < sizeof(preq)) abort(); + if (slen < (ssize_t)sizeof(preq)) abort(); fr_trunk_request_signal_cancel_sent(treq); } TEST_CHECK(count > 0); } -static void test_demux(fr_trunk_connection_t *tconn, fr_connection_t *conn, void *uctx) +static void test_demux(UNUSED fr_trunk_connection_t *tconn, fr_connection_t *conn, UNUSED void *uctx) { int fd = *(talloc_get_type_abort(fr_connection_get_handle(conn), int)); test_proto_request_t *preq; @@ -155,7 +157,7 @@ static void _conn_io_write(UNUSED fr_event_list_t *el, UNUSED int fd, UNUSED int static void _conn_notify(fr_trunk_connection_t *tconn, fr_connection_t *conn, fr_event_list_t *el, - fr_trunk_connection_event_t notify_on, void *uctx) + fr_trunk_connection_event_t notify_on, UNUSED void *uctx) { int fd = *(talloc_get_type_abort(fr_connection_get_handle(conn), int)); @@ -194,7 +196,7 @@ static void test_request_cancel(UNUSED fr_connection_t *conn, UNUSED fr_trunk_re if (stats) stats->cancelled++; } -static void test_request_complete(REQUEST *request, void *preq, void *rctx, void *uctx) +static void test_request_complete(UNUSED REQUEST *request, void *preq, UNUSED void *rctx, void *uctx) { test_proto_stats_t *stats = uctx; test_proto_request_t *our_preq; @@ -206,7 +208,7 @@ static void test_request_complete(REQUEST *request, void *preq, void *rctx, void if (stats) stats->completed++; } -static void test_request_fail(REQUEST *request, void *preq, void *rctx, void *uctx) +static void test_request_fail(UNUSED REQUEST *request, void *preq, UNUSED void *rctx, void *uctx) { test_proto_stats_t *stats = uctx; test_proto_request_t *our_preq; @@ -218,7 +220,7 @@ static void test_request_fail(REQUEST *request, void *preq, void *rctx, void *uc if (stats) stats->failed++; } -static void test_request_free(REQUEST *request, void *preq, void *uctx) +static void test_request_free(UNUSED REQUEST *request, void *preq, void *uctx) { test_proto_stats_t *stats = uctx; test_proto_request_t *our_preq; @@ -233,7 +235,7 @@ static void test_request_free(REQUEST *request, void *preq, void *uctx) /** Whenever the second socket in a socket pair is readable, read all pending data, and write it back * */ -static void _conn_io_loopback(fr_event_list_t *el, int fd, int flags, void *uctx) +static void _conn_io_loopback(UNUSED fr_event_list_t *el, int fd, UNUSED int flags, void *uctx) { int *our_h = talloc_get_type_abort(uctx, int); static uint8_t buff[1024]; @@ -252,7 +254,7 @@ static void _conn_io_loopback(fr_event_list_t *el, int fd, int flags, void *uctx slen = write(our_h[1], buff, (size_t)to_write); if (slen < 0) return; - if (slen < to_write) { + if (slen < (ssize_t)to_write) { to_write -= slen; if (test_verbose_level__ >= 3) { printf("%s - Partial write %zu bytes left\n", __FUNCTION__, to_write); @@ -279,7 +281,7 @@ static void _conn_close(UNUSED fr_event_list_t *el, void *h, UNUSED void *uctx) /** Insert I/O handlers that loop any data back round * */ -static fr_connection_state_t _conn_open(fr_event_list_t *el, void *h, void *uctx) +static fr_connection_state_t _conn_open(fr_event_list_t *el, void *h, UNUSED void *uctx) { int *our_h = talloc_get_type_abort(h, int); @@ -312,7 +314,7 @@ static fr_connection_state_t _conn_init(void **h_out, fr_connection_t *conn, UNU static fr_connection_t *test_setup_socket_pair_connection_alloc(fr_trunk_connection_t *tconn, fr_event_list_t *el, fr_connection_conf_t const *conn_conf, - char const *log_prefix, void *uctx) + char const *log_prefix, UNUSED void *uctx) { fr_connection_conf_t cstat; @@ -448,7 +450,7 @@ static void test_socket_pair_alloc_then_reconnect_then_free(void) talloc_free(ctx); } -static fr_connection_state_t _conn_init_no_signal(void **h_out, fr_connection_t *conn, void *uctx) +static fr_connection_state_t _conn_init_no_signal(void **h_out, fr_connection_t *conn, UNUSED void *uctx) { int *h; diff --git a/src/lib/server/trunk_tests.mk b/src/lib/server/trunk_tests.mk new file mode 100644 index 00000000000..fde63bb178d --- /dev/null +++ b/src/lib/server/trunk_tests.mk @@ -0,0 +1,13 @@ +TARGET := trunk_tests + +SOURCES := trunk_tests.c + +TGT_LDLIBS := $(LIBS) $(GPERFTOOLS_LIBS) +TGT_LDFLAGS := $(LDFLAGS) $(GPERFTOOLS_LDFLAGS) + +ifneq ($(OPENSSL_LIBS),) +TGT_PREREQS := libfreeradius-tls.a +endif + +TGT_PREREQS += libfreeradius-util.a libfreeradius-server.a libfreeradius-unlang.a +SRC_CFLAGS += -DTESTING_TRUNK