From 5eaaf6120e21b5fa4a42fbe4653309db66a574c7 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Mon, 5 Mar 2018 21:53:18 +0100 Subject: handover_test: explicitly wrap abis_rsl_sendmsg() Until now, handover_test simply defines an abis_rsl_sendmsg() function to override the one from libosmo-babis. To me this amounts to implicit linker magic (aka luck). The common pattern we're using for this scenario is to explicitly wrap an existing function by instructing the linker. Also do this for abis_rsl_sendmsg() in handover_test.c to clarify. Change-Id: I05ce33a4e42bc82b9ce5060e2f811033f5a1f8d8 --- tests/handover/Makefile.am | 4 ++++ tests/handover/handover_test.c | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/handover/Makefile.am b/tests/handover/Makefile.am index 5cdc0b073..7133fcddc 100644 --- a/tests/handover/Makefile.am +++ b/tests/handover/Makefile.am @@ -27,6 +27,10 @@ handover_test_SOURCES = \ handover_test.c \ $(NULL) +handover_test_LDFLAGS =\ + -Wl,--wrap=abis_rsl_sendmsg \ + $(NULL) + handover_test_LDADD = \ $(top_builddir)/src/libbsc/libbsc.a \ $(LIBOSMOCORE_LIBS) \ diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c index 8ba97fd8e..bf7350c62 100644 --- a/tests/handover/handover_test.c +++ b/tests/handover/handover_test.c @@ -339,8 +339,10 @@ static void send_ho_complete(struct gsm_lchan *lchan, bool success) abis_rsl_rcvmsg(msg); } -/* RSL messages from BSC */ -int abis_rsl_sendmsg(struct msgb *msg) +/* override, requires '-Wl,--wrap=abis_rsl_sendmsg'. + * Catch RSL messages sent towards the BTS. */ +int __real_abis_rsl_sendmsg(struct msgb *msg); +int __wrap_abis_rsl_sendmsg(struct msgb *msg) { struct abis_rsl_dchan_hdr *dh = (struct abis_rsl_dchan_hdr *) msg->data; struct e1inp_sign_link *sign_link = msg->dst; -- cgit v1.2.3