aboutsummaryrefslogtreecommitdiffstats
path: root/tests/sms_storage
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sms_storage')
-rw-r--r--tests/sms_storage/Makefile.am54
-rw-r--r--tests/sms_storage/sms_storage_test.c49
2 files changed, 103 insertions, 0 deletions
diff --git a/tests/sms_storage/Makefile.am b/tests/sms_storage/Makefile.am
new file mode 100644
index 000000000..9befdb619
--- /dev/null
+++ b/tests/sms_storage/Makefile.am
@@ -0,0 +1,54 @@
+AM_CPPFLAGS = \
+ $(all_includes) \
+ -I$(top_srcdir)/include \
+ $(NULL)
+
+AM_CFLAGS = \
+ -Wall \
+ -ggdb3 \
+ $(LIBOSMOCORE_CFLAGS) \
+ $(LIBOSMOGSM_CFLAGS) \
+ $(LIBOSMOVTY_CFLAGS) \
+ $(LIBOSMOABIS_CFLAGS) \
+ $(LIBOSMONETIF_CFLAGS) \
+ $(LIBOSMOSIGTRAN_CFLAGS) \
+ $(LIBOSMORANAP_CFLAGS) \
+ $(LIBASN1C_CFLAGS) \
+ $(LIBOSMOMGCPCLIENT_CFLAGS) \
+ $(LIBOSMOGSUPCLIENT_CFLAGS) \
+ $(NULL)
+
+EXTRA_DIST = \
+ sms_storage_test.ok \
+ sms_storage_test.err \
+ $(NULL)
+
+check_PROGRAMS = \
+ sms_storage_test \
+ $(NULL)
+
+sms_storage_test_SOURCES = \
+ sms_storage_test.c \
+ $(NULL)
+
+sms_storage_test_LDADD = \
+ -lsctp \
+ $(top_builddir)/src/libmsc/libmsc.a \
+ $(top_builddir)/src/libvlr/libvlr.a \
+ $(LIBSMPP34_LIBS) \
+ $(LIBOSMOCORE_LIBS) \
+ $(LIBOSMOGSM_LIBS) \
+ $(LIBOSMOVTY_LIBS) \
+ $(LIBOSMOABIS_LIBS) \
+ $(LIBOSMONETIF_LIBS) \
+ $(LIBOSMOSIGTRAN_LIBS) \
+ $(LIBOSMORANAP_LIBS) \
+ $(LIBASN1C_LIBS) \
+ $(LIBOSMOMGCPCLIENT_LIBS) \
+ $(LIBOSMOGSUPCLIENT_LIBS) \
+ $(LIBRARY_GSM) \
+ $(NULL)
+
+sms_storage_test_LDFLAGS = \
+ -Wl,--wrap=db_sms_get_next_unsent_rr_msisdn \
+ $(NULL)
diff --git a/tests/sms_storage/sms_storage_test.c b/tests/sms_storage/sms_storage_test.c
new file mode 100644
index 000000000..d545dc13c
--- /dev/null
+++ b/tests/sms_storage/sms_storage_test.c
@@ -0,0 +1,49 @@
+#include <unistd.h>
+
+#include <osmocom/core/utils.h>
+
+#include <osmocom/msc/gsm_data.h>
+#include <osmocom/msc/gsm_04_11.h>
+#include <osmocom/msc/sms_storage.h>
+
+static const struct sms_storage_cfg scfg = {
+ .storage_dir = "/tmp/sms_storage",
+ .unlink_delivered = false,
+ .unlink_expired = false,
+};
+static struct sms_storage_inst *g_ssi;
+
+static struct gsm_sms *generate_sms(unsigned long long id, const char *src, const char *dst,
+ uint8_t pid, uint8_t dcs, uint8_t msg_ref)
+{
+ struct gsm_sms *sms = sms_alloc();
+ OSMO_ASSERT(sms);
+
+ sms->id = id;
+ OSMO_STRLCPY_ARRAY(sms->src.addr, src);
+ OSMO_STRLCPY_ARRAY(sms->dst.addr, dst);
+ sms->protocol_id = pid;
+ sms->data_coding_scheme = dcs;
+ sms->msg_ref = msg_ref;
+
+ return sms;
+}
+
+static void to_storage(void)
+{
+ struct gsm_sms *sms = generate_sms(1234, "1111", "2222", 1, 2, 3);
+ sms_storage_to_disk_req(g_ssi, sms);
+ sms_storage_delete_from_disk_req(g_ssi, sms->id, SMSS_DELETE_CAUSE_DELIVERED);
+}
+
+int main(int argc, char **argv)
+{
+ void *ctx = NULL;
+
+ g_ssi = sms_storage_init(ctx, &scfg);
+
+ to_storage();
+
+ usleep(10000000);
+}
+