db: Add testcase for the db migration.

This commit is contained in:
Holger Hans Peter Freyther 2014-03-08 16:41:37 +01:00
parent e7cc9aa447
commit 6114401b9b
6 changed files with 42 additions and 2 deletions

View File

@ -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,

View File

@ -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

View File

@ -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();

View File

@ -0,0 +1,2 @@
<000d> db.c:274 Going to migrate from revision 3


Binary file not shown.

View File

@ -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])