From: Holger Hans Peter Freyther holger@moiji-mobile.com
--- openbsc/src/libmsc/db.c | 2 ++ openbsc/tests/db/Makefile.am | 2 +- openbsc/tests/db/db_test.c | 34 ++++++++++++++++++++++++++++++++++ openbsc/tests/db/db_test.err | 2 ++ openbsc/tests/db/hlr.sqlite3 | Bin 0 -> 29696 bytes openbsc/tests/testsuite.at | 4 +++- 6 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 openbsc/tests/db/db_test.err create mode 100644 openbsc/tests/db/hlr.sqlite3
diff --git a/openbsc/src/libmsc/db.c b/openbsc/src/libmsc/db.c index 7746e44..1580acd 100644 --- a/openbsc/src/libmsc/db.c +++ b/openbsc/src/libmsc/db.c @@ -271,6 +271,8 @@ static int update_db_revision_3(void) dbi_result result; struct gsm_sms *sms;
+ LOGP(DDB, LOGL_NOTICE, "Going to migrate from revision 3\n"); + result = dbi_conn_query(conn, "BEGIN EXCLUSIVE TRANSACTION"); if (!result) { LOGP(DDB, LOGL_ERROR, diff --git a/openbsc/tests/db/Makefile.am b/openbsc/tests/db/Makefile.am index 26ea703..647b519 100644 --- a/openbsc/tests/db/Makefile.am +++ b/openbsc/tests/db/Makefile.am @@ -2,7 +2,7 @@ AM_CPPFLAGS = $(all_includes) -I$(top_srcdir)/include AM_CFLAGS=-Wall -ggdb3 $(LIBOSMOCORE_CFLAGS) $(LIBOSMOGSM_CFLAGS) $(LIBOSMOABIS_CFLAGS) $(LIBSMPP34_CFLAGS) $(COVERAGE_CFLAGS) AM_LDFLAGS = $(COVERAGE_LDFLAGS)
-EXTRA_DIST = db_test.ok +EXTRA_DIST = db_test.ok db_test.err hlr.sqlite3
noinst_PROGRAMS = db_test
diff --git a/openbsc/tests/db/db_test.c b/openbsc/tests/db/db_test.c index ee2fee7..1494e77 100644 --- a/openbsc/tests/db/db_test.c +++ b/openbsc/tests/db/db_test.c @@ -118,6 +118,39 @@ static void test_sms(void) subscr_put(subscr); }
+static void test_sms_migrate(void) +{ + struct gsm_subscriber *rcv_subscr; + struct gsm_sms *sms; + static const uint8_t user_data_1[] = { + 0x41, 0xf1, 0xd8, 0x05, 0x22, 0x96, 0xcd, 0x2e, + 0x90, 0xf1, 0xfd, 0x06, 0x00 }; + static const uint8_t user_data_2[] = { + 0x41, 0xf1, 0xd8, 0x05, 0x22, 0x96, 0xcd, 0x2e, + 0xd0, 0xf1, 0xfd, 0x06, 0x00 }; + + rcv_subscr = db_get_subscriber(GSM_SUBSCRIBER_IMSI, "901010000001111"); + rcv_subscr->net = &dummy_net; + + sms = db_sms_get(&dummy_net, 1); + OSMO_ASSERT(sms->id == 1); + OSMO_ASSERT(sms->receiver == rcv_subscr); + OSMO_ASSERT(strcmp(sms->text, "Abc. Def. Foo") == 0); + OSMO_ASSERT(sms->user_data_len == ARRAY_SIZE(user_data_1)); + OSMO_ASSERT(memcmp(sms->user_data, user_data_1, ARRAY_SIZE(user_data_1)) == 0); + sms_free(sms); + + sms = db_sms_get(&dummy_net, 2); + OSMO_ASSERT(sms->id == 2); + OSMO_ASSERT(sms->receiver == rcv_subscr); + OSMO_ASSERT(strcmp(sms->text, "Abc. Def. Goo") == 0); + OSMO_ASSERT(sms->user_data_len == ARRAY_SIZE(user_data_2)); + OSMO_ASSERT(memcmp(sms->user_data, user_data_2, ARRAY_SIZE(user_data_2)) == 0); + sms_free(sms); + + subscr_put(rcv_subscr); +} + int main() { char scratch_str[256]; @@ -202,6 +235,7 @@ int main() SUBSCR_PUT(alice);
test_sms(); + test_sms_migrate();
db_fini();
diff --git a/openbsc/tests/db/db_test.err b/openbsc/tests/db/db_test.err new file mode 100644 index 0000000..0a0f2f3 --- /dev/null +++ b/openbsc/tests/db/db_test.err @@ -0,0 +1,2 @@ +<000d> db.c:274 Going to migrate from revision 3 +[0;m \ No newline at end of file diff --git a/openbsc/tests/db/hlr.sqlite3 b/openbsc/tests/db/hlr.sqlite3 new file mode 100644 index 0000000000000000000000000000000000000000..e59dcdca361bb0bdeb097662dbf3e4e3515d6e82 GIT binary patch literal 29696 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 GiTOV&I7qty
literal 0 HcmV?d00001
diff --git a/openbsc/tests/testsuite.at b/openbsc/tests/testsuite.at index b2c5518..4465b25 100644 --- a/openbsc/tests/testsuite.at +++ b/openbsc/tests/testsuite.at @@ -10,7 +10,9 @@ AT_CLEANUP AT_SETUP([db]) AT_KEYWORDS([db]) cat $abs_srcdir/db/db_test.ok > expout -AT_CHECK([$abs_top_builddir/tests/db/db_test], [], [expout], [ignore]) +cat $abs_srcdir/db/db_test.err > experr +cat $abs_srcdir/db/hlr.sqlite3 > hlr.sqlite3 +AT_CHECK([$abs_top_builddir/tests/db/db_test], [], [expout], [experr]) AT_CLEANUP
AT_SETUP([channel])