Ejemplo n.º 1
0
static bool test_socket_wrapper_default_iface(struct torture_context *tctx)
{
	backup_env();
	unsetenv("SOCKET_WRAPPER_DEFAULT_IFACE");
	torture_assert_int_equal(tctx, socket_wrapper_default_iface(), 1, "unset");
	setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "2", 1);
	torture_assert_int_equal(tctx, socket_wrapper_default_iface(), 2, "unset");
	setenv("SOCKET_WRAPPER_DEFAULT_IFACE", "bla", 1);
	torture_assert_int_equal(tctx, socket_wrapper_default_iface(), 1, "unset");
	restore_env();
	return true;
}
Ejemplo n.º 2
0
int TestBackupMultiDataDir(CuTest *ct) {
	DB_ENV *dbenv;
	DB *dbp;
	DBTYPE dtype;
	struct handlers *info;
	int has_callback;
	u_int32_t flag;

	dtype = DB_BTREE;
	info = ct->context;
	has_callback = 0;
	flag = DB_BACKUP_CLEAN | DB_CREATE | DB_BACKUP_FILES;

	/* Step 1: set up directories and make DB_CONFIG. */
	CuAssert(ct, "setup_dir", setup_dir(2, data_dirs) == 0);
	CuAssert(ct, "make_dbconfig",
	    make_dbconfig("set_data_dir DATA1") == 0);

	/* Step 2: open db handle. */
	CuAssert(ct,"open_dbp", open_dbp(&dbenv, &dbp,
	    dtype, 2, data_dirs, data_dirs[0], NULL, 0, NULL) == 0);
	info->dbenvp = dbenv;
	info->dbp = dbp;

	/* Step 3: store records into db. */
	CuAssert(ct, "store_records", store_records(dbp, 1) == 0);
	CuAssert(ct, "DB->sync", dbp->sync(dbp, 0) == 0);

	/* Step 4: backup the whole environment without callbacks. */
	CuAssert(ct, "backup_env",
	    backup_env(ct, dbenv, flag, has_callback) == 0);	

	/*
	 * Step 5: check backup result.
	 * 5a: verify db files are in BACKUP/DATA1.
	 */
	CuAssert(ct, "verify_db_log",
	    verify_db_log(dtype, 0, 0, data_dirs[0], data_dirs[0]) == 0);

	/* 5b: verify that data_dirs are in backupdir. */
	CuAssert(ct, "__os_exist", __os_exists(NULL, "BACKUP/DATA1", 0) == 0);
	CuAssert(ct, "__os_exist", __os_exists(NULL, "BACKUP/DATA2", 0) == 0);

	/* 5c: verify that log files are in BACKUP_DIR. */
	CuAssert(ct, "verify_db_log",
	    verify_db_log(dtype, 0, 1, NULL, NULL) == 0);

	/* 5d: verify that DB_CONFIG is in BACKUP_DIR. */
	CuAssert(ct, "verify_dbconfig", verify_dbconfig(1) == 0);

	return (0);
}
Ejemplo n.º 3
0
int TestBackupSetLogDir(CuTest *ct) {
	DB_ENV *dbenv;
	DB *dbp;
	DBTYPE dtype;
	struct handlers *info;
	char *dirs[2];
	int has_callback = 1;
	u_int32_t flag;

	dtype = DB_BTREE;
	info = ct->context;
	has_callback = 1;
	flag = DB_BACKUP_CLEAN | DB_CREATE | DB_BACKUP_FILES;
	dirs[0] = LOG_DIR;
	dirs[1] = NULL;

	/* Step 1: set up directories and make DB_CONFIG. */
	CuAssert(ct, "setup_dir", setup_dir(1, dirs) == 0);
	CuAssert(ct, "make_dbconfig", make_dbconfig("set_lg_dir LOG") == 0);

	/* Step 2: open db handle. */
	CuAssert(ct,"open_dbp", open_dbp(&dbenv, &dbp,
	    dtype, 0, NULL, NULL, LOG_DIR, 0, NULL) == 0);
	info->dbenvp = dbenv;
	info->dbp = dbp;

	/* Step 3: store records into db. */
	CuAssert(ct, "store_records", store_records(dbp, 1) == 0);
	CuAssert(ct, "DB->sync", dbp->sync(dbp, 0) == 0);

	/* Step 4: backup the whole environment with callbacks. */
	CuAssert(ct, "backup_env",
	    backup_env(ct, dbenv, flag, has_callback) == 0);

	/*
	 * Step 5: check backup result.
	 * 5a: verify the db file is in BACKUP_DIR.
	 */
	CuAssert(ct, "verify_db_log",
	    verify_db_log(dtype, 0, 0, NULL, NULL) == 0);

	/* 5b: verify that log files are in BACKUP/LOG. */
	CuAssert(ct, "verify_db_log",
	    verify_db_log(dtype, 0, 1, LOG_DIR, LOG_DIR) == 0);

	/* 5c: verify that DB_CONFIG is in BACKUP_DIR. */
	CuAssert(ct, "verify_dbconfig", verify_dbconfig(1) == 0);

	return (0);
}
Ejemplo n.º 4
0
static bool test_socket_wrapper_dir(struct torture_context *tctx)
{
	backup_env();

	setenv("SOCKET_WRAPPER_DIR", "foo", 1);
	torture_assert_str_equal(tctx, socket_wrapper_dir(), "foo", "setting failed");
	setenv("SOCKET_WRAPPER_DIR", "./foo", 1);
	torture_assert_str_equal(tctx, socket_wrapper_dir(), "foo", "setting failed");
	unsetenv("SOCKET_WRAPPER_DIR");
	torture_assert_str_equal(tctx, socket_wrapper_dir(), NULL, "resetting failed");

	restore_env();

	return true;
}
Ejemplo n.º 5
0
static bool test_swrap_socket(struct torture_context *tctx)
{
	backup_env();
	setenv("SOCKET_WRAPPER_DIR", "foo", 1);

	torture_assert_int_equal(tctx, swrap_socket(1337, 1337, 0), -1, "unknown address family fails");
	torture_assert_int_equal(tctx, errno, EAFNOSUPPORT, "correct errno set");
	torture_assert_int_equal(tctx, swrap_socket(AF_INET, 1337, 0), -1, "unknown type fails");
	torture_assert_int_equal(tctx, errno, EPROTONOSUPPORT, "correct errno set");
	torture_assert_int_equal(tctx, swrap_socket(AF_INET, SOCK_DGRAM, 10), -1, "unknown protocol fails");
	torture_assert_int_equal(tctx, errno, EPROTONOSUPPORT, "correct errno set");

	restore_env();

	return true;
}
Ejemplo n.º 6
0
int TestBackupPartitionDB(CuTest *ct) {
	DB_ENV *dbenv;
	DB *dbp;
	DBT key1, key2, keys[2];
	DBTYPE dtype;
	struct handlers *info;
	int has_callback;
	u_int32_t flag, value1, value2;

	dtype = DB_BTREE;
	info = ct->context;
	has_callback = 0;
	flag = DB_BACKUP_CLEAN | DB_CREATE | DB_BACKUP_SINGLE_DIR;

	/* Step 1: set up directories and make DB_CONFIG. */
	CuAssert(ct, "setup_dir", setup_dir(1, data_dirs) == 0);
	CuAssert(ct, "make_dbconfig",
	    make_dbconfig("set_data_dir DATA1") == 0);

	/* Make the partition keys. */
	memset(&key1, 0, sizeof(DBT));
	memset(&key2, 0, sizeof(DBT));
	value1 = 8;
	key1.data = &value1;
	key1.size = sizeof(value1);
	value2 = 16;
	key2.data = &value2;
	key2.size = sizeof(value2);
	keys[0] = key1;
	keys[1] = key2;

	/* Step 2: open db handle. */
	CuAssert(ct,"open_dbp", open_dbp(&dbenv,
	    &dbp, dtype, 1, data_dirs, data_dirs[0], NULL, 3, keys) == 0);
	info->dbenvp = dbenv;
	info->dbp = dbp;

	/* Step 3: store records into db. */
	CuAssert(ct, "store_records", store_records(dbp, 1) == 0);
	CuAssert(ct, "DB->sync", dbp->sync(dbp, 0) == 0);

	/* Step 4: backup the whole environment into a single directory. */
	CuAssert(ct, "backup_env",
	    backup_env(ct, dbenv, flag, has_callback) == 0);

	/*
	 * Step 5: check backup result.
	 * 5a: verify db files are in BACKUP/DATA1.
	 */
	CuAssert(ct, "verify_db_log",
	    verify_db_log(dtype, 1, 0, data_dirs[0], NULL) == 0);

	/* 5b: verify that creation directory is not in BACKUPD_DIR. */
	CuAssert(ct, "__os_exist", __os_exists(NULL, "BACKUP/DATA", 0) != 0);

	/* 5c: verify log files are in BACKUP_DIR. */
	CuAssert(ct, "verify_db_log",
	    verify_db_log(dtype, 0, 1, NULL, NULL) == 0);

	/* 5d: verify that DB_CONFIG is not in BACKUP_DIR. */
	CuAssert(ct, "verify_dbconfig", verify_dbconfig(0) == 0);

	return (0);
}