aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ms/MsTest.cpp20
-rw-r--r--tests/ms/MsTest.err2
-rw-r--r--tests/tbf/TbfTest.cpp14
-rw-r--r--tests/tbf/TbfTest.err2
4 files changed, 31 insertions, 7 deletions
diff --git a/tests/ms/MsTest.cpp b/tests/ms/MsTest.cpp
index 75328f48..9c8ec2c3 100644
--- a/tests/ms/MsTest.cpp
+++ b/tests/ms/MsTest.cpp
@@ -328,6 +328,9 @@ static void test_ms_change_tlli()
static void test_ms_storage()
{
uint32_t tlli = 0xffeeddbb;
+ const char *imsi1 = "001001987654321";
+ const char *imsi2 = "001001987654322";
+
gprs_rlcmac_ul_tbf *ul_tbf;
GprsMs *ms, *ms_tmp;
GprsMsStorage store;
@@ -343,19 +346,36 @@ static void test_ms_storage()
ms = store.create_ms(tlli + 0, GPRS_RLCMAC_UL_TBF);
OSMO_ASSERT(ms != NULL);
OSMO_ASSERT(ms->tlli() == tlli + 0);
+ ms->set_imsi(imsi1);
+ OSMO_ASSERT(strcmp(ms->imsi(), imsi1) == 0);
ms_tmp = store.get_ms(tlli + 0);
OSMO_ASSERT(ms == ms_tmp);
OSMO_ASSERT(ms->tlli() == tlli + 0);
+ ms_tmp = store.get_ms(0, 0, imsi1);
+ OSMO_ASSERT(ms == ms_tmp);
+ OSMO_ASSERT(strcmp(ms->imsi(), imsi1) == 0);
+ ms_tmp = store.get_ms(0, 0, imsi2);
+ OSMO_ASSERT(ms_tmp == NULL);
+
ms = store.create_ms(tlli + 1, GPRS_RLCMAC_UL_TBF);
OSMO_ASSERT(ms != NULL);
OSMO_ASSERT(ms->tlli() == tlli + 1);
+ ms->set_imsi(imsi2);
+ OSMO_ASSERT(strcmp(ms->imsi(), imsi2) == 0);
ms_tmp = store.get_ms(tlli + 1);
OSMO_ASSERT(ms == ms_tmp);
OSMO_ASSERT(ms->tlli() == tlli + 1);
+ ms_tmp = store.get_ms(0, 0, imsi1);
+ OSMO_ASSERT(ms_tmp != NULL);
+ OSMO_ASSERT(ms_tmp != ms);
+ ms_tmp = store.get_ms(0, 0, imsi2);
+ OSMO_ASSERT(ms == ms_tmp);
+ OSMO_ASSERT(strcmp(ms->imsi(), imsi2) == 0);
+
/* delete ms */
ms = store.get_ms(tlli + 0);
OSMO_ASSERT(ms != NULL);
diff --git a/tests/ms/MsTest.err b/tests/ms/MsTest.err
index 4f704cbc..86dbb5b0 100644
--- a/tests/ms/MsTest.err
+++ b/tests/ms/MsTest.err
@@ -37,8 +37,10 @@ Modifying MS object, TLLI: 0xaa000000 -> 0xff001111, already confirmed partly
Destroying MS object, TLLI = 0xff001111
Creating MS object, TLLI = 0x00000000
Modifying MS object, UL TLLI: 0x00000000 -> 0xffeeddbb, not yet confirmed
+Modifying MS object, TLLI = 0xffeeddbb, IMSI '' -> '001001987654321'
Creating MS object, TLLI = 0x00000000
Modifying MS object, UL TLLI: 0x00000000 -> 0xffeeddbc, not yet confirmed
+Modifying MS object, TLLI = 0xffeeddbc, IMSI '' -> '001001987654322'
Attaching TBF to MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL)
Detaching TBF from MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0x00000000 DIR=UL STATE=NULL)
Destroying MS object, TLLI = 0xffeeddbb
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index bc783176..b0106caf 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -327,28 +327,28 @@ static void test_tbf_imsi()
dl_tbf[0]->assign_imsi("001001000000001");
ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000001");
- /* OSMO_ASSERT(ms1 != NULL); */
+ OSMO_ASSERT(ms1 != NULL);
ms2 = the_bts.ms_store().get_ms(0xf1000001);
OSMO_ASSERT(ms2 != NULL);
OSMO_ASSERT(strcmp(ms2->imsi(), "001001000000001") == 0);
- /* OSMO_ASSERT(ms1 == ms2); */
+ OSMO_ASSERT(ms1 == ms2);
/* change the IMSI on TBF 0 */
dl_tbf[0]->assign_imsi("001001000000002");
ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000001");
OSMO_ASSERT(ms1 == NULL);
ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000002");
- /* OSMO_ASSERT(ms1 != NULL); */
+ OSMO_ASSERT(ms1 != NULL);
OSMO_ASSERT(strcmp(ms2->imsi(), "001001000000002") == 0);
- /* OSMO_ASSERT(ms1 == ms2); */
+ OSMO_ASSERT(ms1 == ms2);
/* use the same IMSI on TBF 2 */
dl_tbf[1]->assign_imsi("001001000000002");
ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000002");
- /* OSMO_ASSERT(ms1 != NULL); */
+ OSMO_ASSERT(ms1 != NULL);
OSMO_ASSERT(ms1 != ms2);
- /* OSMO_ASSERT(strcmp(ms1->imsi(), "001001000000002") == 0); */
- /* OSMO_ASSERT(strcmp(ms2->imsi(), "") == 0); */
+ OSMO_ASSERT(strcmp(ms1->imsi(), "001001000000002") == 0);
+ OSMO_ASSERT(strcmp(ms2->imsi(), "") == 0);
tbf_free(dl_tbf[1]);
ms1 = the_bts.ms_store().get_ms(0, 0, "001001000000002");
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index 7fa1283b..8c411f89 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -395,6 +395,8 @@ The MS object cannot fully confirm an unexpected TLLI: 0xf1000002, partly confir
Attaching TBF to MS object, TLLI = 0xf1000002, TBF = TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW)
Modifying MS object, TLLI = 0xf1000001, IMSI '' -> '001001000000001'
Modifying MS object, TLLI = 0xf1000001, IMSI '001001000000001' -> '001001000000002'
+TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) the IMSI '001001000000002' was already assigned to another MS object: TLLI = 0xf1000001, that IMSI will be removed
+Modifying MS object, TLLI = 0xf1000001, IMSI '001001000000002' -> ''
Modifying MS object, TLLI = 0xf1000002, IMSI '' -> '001001000000002'
TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) free
TBF(TFI=1 TLLI=0xf1000002 DIR=DL STATE=FLOW) Software error: Pending downlink assignment. This may not happen, because the assignment message never gets transmitted. Please be sure not to free in this state. PLEASE FIX!