diff options
Diffstat (limited to 'openbsc/tests/sgsn')
-rw-r--r-- | openbsc/tests/sgsn/Makefile.am | 4 | ||||
-rw-r--r-- | openbsc/tests/sgsn/sgsn_test.c | 24 |
2 files changed, 19 insertions, 9 deletions
diff --git a/openbsc/tests/sgsn/Makefile.am b/openbsc/tests/sgsn/Makefile.am index 693cf792a..3c202ddf2 100644 --- a/openbsc/tests/sgsn/Makefile.am +++ b/openbsc/tests/sgsn/Makefile.am @@ -1,5 +1,5 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include -AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) +AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBCARES_CFLAGS) EXTRA_DIST = sgsn_test.ok @@ -22,6 +22,7 @@ sgsn_test_LDADD = \ $(top_builddir)/src/gprs/sgsn_vty.o \ $(top_builddir)/src/gprs/sgsn_libgtp.o \ $(top_builddir)/src/gprs/sgsn_auth.o \ + $(top_builddir)/src/gprs/sgsn_ares.o \ $(top_builddir)/src/gprs/gprs_gsup_messages.o \ $(top_builddir)/src/gprs/gprs_gsup_client.o \ $(top_builddir)/src/gprs/gprs_utils.o \ @@ -32,5 +33,6 @@ sgsn_test_LDADD = \ $(LIBOSMOCORE_LIBS) \ $(LIBOSMOGSM_LIBS) \ $(LIBOSMOGB_LIBS) \ + $(LIBCARES_LIBS) \ -lgtp -lrt diff --git a/openbsc/tests/sgsn/sgsn_test.c b/openbsc/tests/sgsn/sgsn_test.c index 64570038e..7e5ab1a91 100644 --- a/openbsc/tests/sgsn/sgsn_test.c +++ b/openbsc/tests/sgsn/sgsn_test.c @@ -1838,6 +1838,7 @@ static void test_ggsn_selection(void) struct tlv_parsed tp; uint8_t apn_enc[GSM_APN_LENGTH + 10]; struct sgsn_subscriber_pdp_data *pdp_data; + char apn_str[GSM_APN_LENGTH]; printf("Testing GGSN selection\n"); @@ -1881,29 +1882,33 @@ static void test_ggsn_selection(void) tp.lv[GSM48_IE_GSM_APN].len = gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Test.Apn"); - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc != NULL); OSMO_ASSERT(ggc->id == 0); + OSMO_ASSERT(strcmp(apn_str, "Test.Apn") == 0); tp.lv[GSM48_IE_GSM_APN].len = gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Other.Apn"); - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc != NULL); OSMO_ASSERT(ggc->id == 1); + OSMO_ASSERT(strcmp(apn_str, "Other.Apn") == 0); tp.lv[GSM48_IE_GSM_APN].len = 0; tp.lv[GSM48_IE_GSM_APN].val = NULL; - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc != NULL); OSMO_ASSERT(ggc->id == 0); + OSMO_ASSERT(strcmp(apn_str, "") == 0); actxs[3] = sgsn_apn_ctx_find_alloc("*", "123456"); actxs[3]->ggsn = ggcs[2]; - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc != NULL); OSMO_ASSERT(ggc->id == 2); + OSMO_ASSERT(strcmp(apn_str, "") == 0); sgsn_apn_ctx_free(actxs[3]); tp.lv[GSM48_IE_GSM_APN].val = apn_enc; @@ -1911,12 +1916,13 @@ static void test_ggsn_selection(void) tp.lv[GSM48_IE_GSM_APN].len = gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Foo.Bar"); - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc == NULL); OSMO_ASSERT(gsm_cause == GSM_CAUSE_MISSING_APN); + OSMO_ASSERT(strcmp(apn_str, "Foo.Bar") == 0); tp.lv[GSM48_IE_GSM_APN].len = sizeof(apn_enc); - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc == NULL); OSMO_ASSERT(gsm_cause == GSM_CAUSE_INV_MAND_INFO); @@ -1927,16 +1933,18 @@ static void test_ggsn_selection(void) tp.lv[GSM48_IE_GSM_APN].len = gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Test.Apn"); - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc != NULL); OSMO_ASSERT(ggc->id == 0); + OSMO_ASSERT(strcmp(apn_str, "Test.Apn") == 0); tp.lv[GSM48_IE_GSM_APN].len = gprs_str_to_apn(apn_enc, sizeof(apn_enc), "Other.Apn"); - ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause); + ggc = sgsn_mm_ctx_find_ggsn_ctx(ctx, &tp, &gsm_cause, apn_str); OSMO_ASSERT(ggc == NULL); OSMO_ASSERT(gsm_cause == GSM_CAUSE_REQ_SERV_OPT_NOTSUB); + OSMO_ASSERT(strcmp(apn_str, "") == 0); /* Cleanup */ |