diff options
author | Denis Kenzior <denis.kenzior@intel.com> | 2009-09-09 14:29:00 -0500 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2009-09-10 16:13:15 -0500 |
commit | ac4c183a019eb7b0f6f3882bcafe8726b7dc8dfb (patch) | |
tree | e2fb532c5e4b749fd4b6943f69199a114f03c24d /unit/test-sms.c | |
parent | 52d3c235d5233ca67bbc0c8c621102905f60c379 (diff) | |
download | ofono-ac4c183a019eb7b0f6f3882bcafe8726b7dc8dfb.tar.bz2 |
Add unit test for CBS topic range functions
Diffstat (limited to 'unit/test-sms.c')
-rw-r--r-- | unit/test-sms.c | 41 |
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(); } |