summaryrefslogtreecommitdiffstats
path: root/unit/test-sms.c
diff options
context:
space:
mode:
authorDenis Kenzior <denis.kenzior@intel.com>2009-09-09 14:29:00 -0500
committerDenis Kenzior <denkenz@gmail.com>2009-09-10 16:13:15 -0500
commitac4c183a019eb7b0f6f3882bcafe8726b7dc8dfb (patch)
treee2fb532c5e4b749fd4b6943f69199a114f03c24d /unit/test-sms.c
parent52d3c235d5233ca67bbc0c8c621102905f60c379 (diff)
downloadofono-ac4c183a019eb7b0f6f3882bcafe8726b7dc8dfb.tar.bz2
Add unit test for CBS topic range functions
Diffstat (limited to 'unit/test-sms.c')
-rw-r--r--unit/test-sms.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/unit/test-sms.c b/unit/test-sms.c
index fa989e4c..fc748c69 100644
--- a/unit/test-sms.c
+++ b/unit/test-sms.c
@@ -1059,6 +1059,45 @@ static void test_serialize_assembly()
sms_assembly_free(assembly);
}
+static const char *ranges[] = { "1-5, 2, 3, 600, 569-900, 999",
+ "0-20, 33, 44, 50-60, 20-50, 1-5, 5, 3, 5",
+ NULL };
+static const char *inv_ranges[] = { "1-5, 3333", "1-5, afbcd", "1-5, 3-5,,",
+ "1-5, 3-5, c", NULL };
+
+static void test_range_minimizer()
+{
+ int i = 0;
+
+ while (inv_ranges[i]) {
+ GSList *l = cbs_extract_topic_ranges(inv_ranges[i]);
+
+ g_assert(l == NULL);
+ i++;
+ }
+
+ i = 0;
+
+ while (ranges[i]) {
+ GSList *r = cbs_extract_topic_ranges(ranges[i]);
+ char *rangestr;
+
+ g_assert(r != NULL);
+ i++;
+
+ rangestr = cbs_topic_ranges_to_string(r);
+
+ g_assert(rangestr);
+
+ if (g_test_verbose())
+ g_print("range: %s\n", rangestr);
+
+ g_free(rangestr);
+ g_slist_foreach(r, (GFunc)g_free, NULL);
+ g_slist_free(r);
+ }
+}
+
int main(int argc, char **argv)
{
g_test_init(&argc, &argv, NULL);
@@ -1080,5 +1119,7 @@ int main(int argc, char **argv)
g_test_add_func("/testsms/Test SMS Assembly Serialize",
test_serialize_assembly);
+ g_test_add_func("/testsms/Range minimizer", test_range_minimizer);
+
return g_test_run();
}