From: Teemu Toivola Date: Sun, 15 Sep 2019 15:26:24 +0000 (+0300) Subject: improve test coverage X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cf21423f99dea48a620e414609fe0637358eb711;p=vnstat improve test coverage --- diff --git a/src/traffic.c b/src/traffic.c index 0efcfb3..d867b11 100644 --- a/src/traffic.c +++ b/src/traffic.c @@ -174,8 +174,10 @@ void livetrafficmeter(const char *iface, const int mode) timeslept = (uint64_t)time(NULL); +#ifndef CHECK_VNSTAT /* wait 2 seconds for more traffic */ sleep(LIVETIME); +#endif timeslept = (uint64_t)time(NULL) - timeslept; @@ -281,10 +283,17 @@ void livetrafficmeter(const char *iface, const int mode) printf("}}\n"); index++; } +#ifdef CHECK_VNSTAT + break; +#endif } timespent = (uint64_t)time(NULL) - timespent - timeslept; +#ifdef CHECK_VNSTAT + timespent = 10; +#endif + if (!json) { cursorshow(); printf("\n\n"); diff --git a/tests/cli_tests.c b/tests/cli_tests.c index 6285ebd..c03c5f7 100644 --- a/tests/cli_tests.c +++ b/tests/cli_tests.c @@ -541,6 +541,45 @@ START_TEST(vnstat_handletrafficmeters_can_calculate_traffic_and_output_json) } END_TEST +START_TEST(vnstat_handletrafficmeters_livetraffic_does_not_crash) +{ + PARAMS p; + defaultcfg(); + initparams(&p); + p.livetraffic = 1; + p.defaultiface = 0; + cfg.qmode = 1; + cfg.ostyle = 0; + cfg.sampletime = 0; + strncpy_nt(p.interface, "someiface", 32); + + ck_assert_int_eq(remove_directory(TESTDIR), 1); + fake_proc_net_dev("w", "someiface", 0, 0, 0, 0); + + suppress_output(); + handletrafficmeters(&p); +} +END_TEST + +START_TEST(vnstat_handletrafficmeters_livetraffic_does_not_crash_with_json) +{ + PARAMS p; + defaultcfg(); + initparams(&p); + p.livetraffic = 1; + p.defaultiface = 0; + cfg.qmode = 10; + cfg.sampletime = 0; + strncpy_nt(p.interface, "someiface", 32); + + ck_assert_int_eq(remove_directory(TESTDIR), 1); + fake_proc_net_dev("w", "someiface", 0, 0, 0, 0); + + suppress_output(); + handletrafficmeters(&p); +} +END_TEST + START_TEST(handleifselection_does_nothing_when_interface_has_already_been_selected) { PARAMS p; @@ -837,6 +876,8 @@ void add_cli_tests(Suite *s) tcase_add_exit_test(tc_cli, vnstat_handletrafficmeters_exits_when_specific_interface_is_not_available, 1); tcase_add_test(tc_cli, vnstat_handletrafficmeters_can_calculate_traffic); tcase_add_test(tc_cli, vnstat_handletrafficmeters_can_calculate_traffic_and_output_json); + tcase_add_test(tc_cli, vnstat_handletrafficmeters_livetraffic_does_not_crash); + tcase_add_test(tc_cli, vnstat_handletrafficmeters_livetraffic_does_not_crash_with_json); tcase_add_test(tc_cli, handleifselection_does_nothing_when_interface_has_already_been_selected); tcase_add_test(tc_cli, handleifselection_selects_default_interface_if_field_is_filled); tcase_add_exit_test(tc_cli, handleifselection_exits_when_no_suitable_interface_is_available_for_query, 1);