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; }
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); }
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); }
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; }
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; }
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); }