END_TEST START_TEST(dbcheck_with_filled_cache) { int forcesave = 0; linuxonly; initdb(); defaultcfg(); disable_logprints(); ck_assert_int_eq(remove_directory(TESTDIR), 1); ck_assert_int_eq(cachecount(), 0); strcpy(data.interface, "ethbasic"); ck_assert_int_eq(cacheupdate(), 1); strcpy(data.interface, "ethactive"); ck_assert_int_eq(cacheupdate(), 1); strcpy(data.interface, "ethnotactive"); data.active = 0; ck_assert_int_eq(cacheupdate(), 1); ck_assert_int_eq(cachecount(), 3); ck_assert_int_eq(cacheactivecount(), 2); fake_proc_net_dev("w", "ethbasic", 1, 2, 3, 4); fake_proc_net_dev("a", "ethnotactive", 5, 6, 7, 8); ck_assert_int_ne(dbcheck(0, &forcesave), 0); ck_assert_int_eq(forcesave, 1); }
END_TEST START_TEST(dbcheck_with_empty_cache) { int forcesave = 0; linuxonly; ck_assert_int_eq(remove_directory(TESTDIR), 1); fake_proc_net_dev("w", "ethsomething", 1, 2, 3, 4); fake_proc_net_dev("a", "ethelse", 5, 6, 7, 8); ck_assert_int_ne(dbcheck(0, &forcesave), 0); ck_assert_int_eq(forcesave, 0); }
END_TEST START_TEST(readproc_success) { linuxonly; ck_assert_int_eq(remove_directory(TESTDIR), 1); fake_proc_net_dev("w", "ethwrong", 10, 20, 30, 40); fake_proc_net_dev("a", "ethunusual", 1, 2, 3, 4); ck_assert_int_eq(readproc("ethunusual"), 1); ck_assert_str_eq(ifinfo.name, "ethunusual"); ck_assert_int_eq(ifinfo.filled, 1); ck_assert_int_eq(ifinfo.rx, 1); ck_assert_int_eq(ifinfo.tx, 2); ck_assert_int_eq(ifinfo.rxp, 3); ck_assert_int_eq(ifinfo.txp, 4); }
END_TEST START_TEST(dbcheck_with_no_changes_in_iflist) { int forcesave = 0; uint32_t ifhash; char *ifacelist; linuxonly; ck_assert_int_eq(remove_directory(TESTDIR), 1); fake_proc_net_dev("w", "ethsomething", 1, 2, 3, 4); fake_proc_net_dev("a", "ethelse", 5, 6, 7, 8); ck_assert_int_ne(getiflist(&ifacelist, 0), 0); ifhash = simplehash(ifacelist, (int)strlen(ifacelist)); ck_assert_int_eq(dbcheck(ifhash, &forcesave), ifhash); ck_assert_int_eq(forcesave, 0); }
END_TEST START_TEST(readproc_not_found) { linuxonly; ck_assert_int_eq(remove_directory(TESTDIR), 1); fake_proc_net_dev("w", "ethwrong", 10, 20, 30, 40); ck_assert_int_eq(readproc("ethunusual"), 0); }
END_TEST START_TEST(getiflist_proc_multiple_interfaces) { char *ifacelist; linuxonly; ck_assert_int_eq(remove_directory(TESTDIR), 1); fake_proc_net_dev("w", "random", 0, 0, 0, 0); fake_proc_net_dev("a", "interfaces", 0, 0, 0, 0); fake_proc_net_dev("a", "having", 0, 0, 0, 0); fake_proc_net_dev("a", "fun", 0, 0, 0, 0); fake_proc_net_dev("a", "i", 0, 0, 0, 0); ck_assert_int_eq(getiflist(&ifacelist, 0), 1); ck_assert_str_eq(ifacelist, "lo random interfaces having fun i "); free(ifacelist); }
END_TEST START_TEST(getifinfo_not_found) { linuxonly; suppress_output(); ck_assert_int_eq(remove_directory(TESTDIR), 1); fake_proc_net_dev("w", "ethwrong", 10, 20, 30, 40); ck_assert_int_eq(getifinfo("ethunusual"), 0); }
END_TEST START_TEST(getiflist_proc_one_interface) { char *ifacelist; linuxonly; ck_assert_int_eq(remove_directory(TESTDIR), 1); fake_proc_net_dev("w", "ethunusual", 0, 0, 0, 0); ck_assert_int_eq(getiflist(&ifacelist, 1), 1); ck_assert_str_eq(ifacelist, "lo ethunusual "); free(ifacelist); }