Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
END_TEST

START_TEST(cacheflush_flushes_cache)
{
	initdb();
	disable_logprints();
	ck_assert_int_eq(clean_testdbdir(), 1);
	ck_assert_int_eq(create_zerosize_dbfile("name1"), 1);
	ck_assert_int_eq(create_zerosize_dbfile("name2"), 1);
	ck_assert_int_eq(check_dbfile_exists("name1", 0), 1);
	ck_assert_int_eq(check_dbfile_exists(".name1", 0), 0);
	ck_assert_int_eq(check_dbfile_exists("name2", 0), 1);
	ck_assert_int_eq(check_dbfile_exists(".name2", 0), 0);

	ck_assert_int_eq(cachecount(), 0);
	strcpy(data.interface, "name1");
	ck_assert_int_eq(cacheupdate(), 1);
	strcpy(data.interface, "name2");
	ck_assert_int_eq(cacheupdate(), 1);
	ck_assert_int_eq(cacheadd("notfilled", 0), 1);
	ck_assert_int_eq(cachecount(), 3);
	ck_assert_int_eq(cacheactivecount(), 3);

	cacheflush(TESTDBDIR);

	ck_assert_int_eq(cachecount(), 0);
	ck_assert_int_eq(cacheactivecount(), 0);
	ck_assert_int_eq(check_dbfile_exists("name1", sizeof(DATA)), 1);
	ck_assert_int_eq(check_dbfile_exists(".name1", 0), 1);
	ck_assert_int_eq(check_dbfile_exists("name2", sizeof(DATA)), 1);
	ck_assert_int_eq(check_dbfile_exists(".name2", 0), 1);
	ck_assert_int_eq(check_dbfile_exists("notfilled", 0), 0);
	ck_assert_int_eq(check_dbfile_exists(".notfilled", 0), 0);
}
Ejemplo n.º 3
0
int datalist_timevalidation(DSTATE *s)
{
	if (s->current >= data.lastupdated) {
		data.lastupdated = s->current;
		cacheupdate();
		return 1;
	}

	/* skip update if previous update is less than a day in the future */
	/* otherwise exit with error message since the clock is problably messed */
	if (data.lastupdated > (s->current+86400)) {
		snprintf(errorstring, 512, "Interface \"%s\" has previous update date too much in the future, exiting. (%d / %d)", data.interface, (unsigned int)data.lastupdated, (unsigned int)s->current);
		printe(PT_Error);

		/* clean daemon stuff before exit */
		if (s->rundaemon && !debug) {
			close(pidfile);
			unlink(cfg.pidfile);
		}
		ibwflush();
		exit(EXIT_FAILURE);
	}

	return 0;
}
Ejemplo n.º 4
0
END_TEST

START_TEST(cacheupdate_when_empty)
{
	initdb();
	strcpy(data.interface, "name1");
	ck_assert_int_eq(cacheupdate(), 1);
	ck_assert_int_eq(cachecount(), 1);
	ck_assert_int_eq(cacheactivecount(), 1);
}
Ejemplo n.º 5
0
END_TEST

START_TEST(cacheupdate_when_filled)
{
	initdb();
	strcpy(data.interface, "name1");
	ck_assert_int_eq(cacheupdate(), 1);
	ck_assert_int_eq(cachecount(), 1);
	ck_assert_int_eq(cacheactivecount(), 1);

	strcpy(data.interface, "name2");
	ck_assert_int_eq(cacheupdate(), 1);
	ck_assert_int_eq(cachecount(), 2);
	ck_assert_int_eq(cacheactivecount(), 2);

	strcpy(data.interface, "name1");
	data.active = 0;
	ck_assert_int_eq(cacheupdate(), 1);
	ck_assert_int_eq(cachecount(), 2);
	ck_assert_int_eq(cacheactivecount(), 1);
}
Ejemplo n.º 6
0
END_TEST

START_TEST(cacheget_when_filled)
{
	initdb();
	ck_assert_int_eq(cachecount(), 0);
	strcpy(data.interface, "name1");
	ck_assert_int_eq(cacheupdate(), 1);
	ck_assert_int_eq(cachecount(), 1);
	strcpy(data.interface, "empty");
	ck_assert_int_eq(cacheget(dataptr), 1);
	ck_assert_str_eq(data.interface, "name1");
}