]> granicus.if.org Git - vnstat/commitdiff
improve test coverage
authorTeemu Toivola <git@humdi.net>
Thu, 14 Mar 2019 22:07:01 +0000 (00:07 +0200)
committerTeemu Toivola <git@humdi.net>
Thu, 14 Mar 2019 22:07:01 +0000 (00:07 +0200)
src/dbsql.c
tests/dbsql_tests.c

index 3bbeaa9b9f3e88245abbd63e2d0353d86140bbc0..91b18d435fc177f246ef018841d17f00186fd475 100644 (file)
@@ -1069,7 +1069,6 @@ int db_getdata_range(dbdatalist **dbdata, dbdatalistinfo *listinfo, const char *
 
        listinfo->count = 0;
 
-       /* TODO: tests */
        ifaceidin = db_getinterfaceidin(iface);
        if (ifaceidin == NULL) {
                return 0;
index 634269f6b945f8adcff91252920cbeb782f16d6e..e5e27ea85669c3731ed9063aa85422bd3ae16dea 100644 (file)
@@ -1691,6 +1691,55 @@ START_TEST(db_getdata_range_can_get_hours_with_range_on_same_hour)
 }
 END_TEST
 
+START_TEST(db_getdata_range_with_merged_interfaces)
+{
+       int ret, i;
+       char timestamp[64];
+       dbdatalist *datalist = NULL, *datalist_i = NULL;
+       dbdatalistinfo datainfo;
+
+       defaultcfg();
+       cfg.monthrotate = 1;
+
+       ret = db_open_rw(1);
+       ck_assert_int_eq(ret, 1);
+       ret = db_addinterface("ethtest");
+       ck_assert_int_eq(ret, 1);
+       ret = db_addinterface("ethother");
+       ck_assert_int_eq(ret, 1);
+
+       for (i=1; i<=20; i++) {
+               ret = db_addtraffic_dated("ethtest", 1, 2, get_timestamp(2000, 2, i, 0, 0));
+               ck_assert_int_eq(ret, 1);
+               ret = db_addtraffic_dated("ethother", 3, 7, get_timestamp(2000, 2, i, 0, 0));
+               ck_assert_int_eq(ret, 1);
+       }
+
+       ret = db_getdata_range(&datalist, &datainfo, "ethtest+ethother", "month", 0, "", "");
+       ck_assert_int_eq(ret, 1);
+       ck_assert_int_eq(datainfo.count, 1);
+       datalist_i = datalist;
+       i = 0;
+       while (datalist_i != NULL)
+       {
+               switch(i) {
+                       case 0:
+                               strftime(timestamp, 64, "%Y-%m-%d", localtime(&datalist_i->timestamp));
+                               ck_assert_str_eq(timestamp, "2000-02-01");
+                               ck_assert_int_eq(datalist_i->rx, 80);
+                               ck_assert_int_eq(datalist_i->tx, 180);
+                               break;
+               }
+               datalist_i = datalist_i->next;
+               i++;
+       }
+       dbdatalistfree(&datalist);
+
+       ret = db_close();
+       ck_assert_int_eq(ret, 1);
+}
+END_TEST
+
 START_TEST(db_addtraffic_without_monthrotate)
 {
        int ret, i;
@@ -2197,6 +2246,7 @@ void add_dbsql_tests(Suite *s)
        tcase_add_test(tc_dbsql, db_getdata_range_can_get_hours_with_range_limiting_end);
        tcase_add_test(tc_dbsql, db_getdata_range_can_get_hours_with_range_limiting_end_with_limit);
        tcase_add_test(tc_dbsql, db_getdata_range_can_get_hours_with_range_on_same_hour);
+       tcase_add_test(tc_dbsql, db_getdata_range_with_merged_interfaces);
        tcase_add_test(tc_dbsql, db_addtraffic_without_monthrotate);
        tcase_add_test(tc_dbsql, db_addtraffic_with_monthrotate);
        tcase_add_test(tc_dbsql, db_get_date_generator_can_generate_dates);