Prevents them from interfering with each other.
Fixes #148.
EXTRA_DIST += tal/lacnic.tal
EXTRA_DIST += xml/notification.xml
+clean-local:
+ rm -rf tmp/ # test sandboxes
+
endif
/* Mocks */
+#define CACHEDIR "tmp/cache"
#define TAL_FILE "test.tal"
static struct rpki_cache *cache;
return error;
}
+MOCK(config_get_local_repository, char const *, CACHEDIR, void)
MOCK_ABORT_INT(rrdp_update, struct rpki_uri *uri)
/* Helpers */
static void
setup_test(void)
{
- ck_assert_int_eq(0, system("rm -rf tmp/"));
+ ck_assert_int_eq(0, system("rm -rf " CACHEDIR));
dl_error = false;
cache = cache_create(TAL_FILE);
NODE("rsync://a.b.c/e/", 0, 1, true),
NODE("rsync://a.b.c/f/", 0, 1, true),
NULL);
- ck_assert_int_eq(0, file_rm_rf("tmp/" TAL_FILE "/rsync/a.b.c/f"));
+ ck_assert_int_eq(0, file_rm_rf(CACHEDIR "/" TAL_FILE "/rsync/a.b.c/f"));
cache_cleanup(cache);
validate_cache(0, NODE("rsync://a.b.c/e/", 0, 1, true), NULL);
NODE("https://a.b.c/e", 0, 1, 1),
NODE("https://a.b.c/f/g/h", 0, 1, 1),
NULL);
- ck_assert_int_eq(0, file_rm_rf("tmp/" TAL_FILE "/https/a.b.c/f/g/h"));
+ ck_assert_int_eq(0, file_rm_rf(CACHEDIR "/" TAL_FILE "/https/a.b.c/f/g/h"));
cache_cleanup(cache);
validate_cache(0, NODE("https://a.b.c/e", 0, 1, 1), NULL);
setup_test();
- ck_assert_int_eq(0, system("rm -rf tmp/"));
- ck_assert_int_eq(0, system("mkdir -p tmp/" TAL_FILE));
+ ck_assert_int_eq(0, system("mkdir -p " CACHEDIR "/" TAL_FILE));
add_node(cache, NODE("rsync://a.b.c/d", 0, 1, 0));
add_node(cache, NODE("rsync://a.b.c/e", 1, 0, 0));
add_node(cache, node("https://a/c", 0, 0, 1, 0, 1));
json = build_tal_json(cache);
- ck_assert_int_eq(0, json_dump_file(json, "tmp/" TAL_FILE "/" TAL_METAFILE, JSON_COMPACT));
+ ck_assert_int_eq(0, json_dump_file(json, CACHEDIR "/" TAL_FILE "/" TAL_METAFILE, JSON_COMPACT));
str = json_dumps(json, /* JSON_INDENT(4) */ JSON_COMPACT);
json_decref(json);
#include "mock.c"
#include "data_structure/path_builder.c"
+__MOCK_ABORT(config_get_local_repository, char const *, "tmp/pb", void)
+
#define CHECK_PB(_string, _capacity) \
ck_assert_str_eq(_string, pb.string); \
ck_assert_uint_eq(strlen(_string), pb.len); \
MOCK_NULL(config_get_slurm, char const *, void)
MOCK(config_get_tal, char const *, "tal/", void)
-MOCK(config_get_local_repository, char const *, "tmp", void)
MOCK(config_get_mode, enum mode, STANDALONE, void)
MOCK_TRUE(config_get_rsync_enabled, void)
MOCK_UINT(config_get_rsync_priority, 50, void)
/* Mocks */
+#define CACHEDIR "tmp/rsync"
+
+__MOCK_ABORT(config_get_local_repository, char const *, CACHEDIR, void)
MOCK(config_get_rsync_program, char *, "rsync", void)
MOCK_UINT(config_get_rsync_retry_count, 0, void)
MOCK_UINT(config_get_rsync_retry_interval, 10, void)
static void
init_tmp(void)
{
- int res = mkdir("tmp/", 0700);
- if (res && errno != EEXIST)
- pr_crit("Could not create tmp/: %s", strerror(errno));
+ int error;
+
+ error = system("rm -rf " CACHEDIR);
+ if (error)
+ pr_crit("system(rm): %d", error);
+ error = system("mkdir -p " CACHEDIR);
+ if (error)
+ pr_crit("system(mkdir): %d", error);
}
static void *
START_TEST(full_rsync_timeout_test_1kb)
{
printf("1kb\n");
- create_file("tmp/1kb", 1);
- ensure_file_deleted("tmp/1kb-copy");
- ck_assert_int_eq(0, rsync_download("tmp/1kb", "tmp/1kb-copy", false));
+ create_file(CACHEDIR "/1kb", 1);
+ ensure_file_deleted(CACHEDIR "/1kb-copy");
+ ck_assert_int_eq(0, rsync_download(CACHEDIR "/1kb", CACHEDIR "/1kb-copy", false));
}
END_TEST
START_TEST(full_rsync_timeout_test_3kb)
{
printf("3kb\n");
- create_file("tmp/3kb", 3);
- ensure_file_deleted("tmp/3kb-copy");
- ck_assert_int_eq(0, rsync_download("tmp/3kb", "tmp/3kb-copy", false));
+ create_file(CACHEDIR "/3kb", 3);
+ ensure_file_deleted(CACHEDIR"/3kb-copy");
+ ck_assert_int_eq(0, rsync_download(CACHEDIR "/3kb", CACHEDIR "/3kb-copy", false));
}
END_TEST
START_TEST(full_rsync_timeout_test_5kb)
{
printf("5kb\n");
- create_file("tmp/5kb", 5);
- ensure_file_deleted("tmp/5kb-copy");
+ create_file(CACHEDIR "/5kb", 5);
+ ensure_file_deleted(CACHEDIR "/5kb-copy");
/* Max speed is 1kbps, timeout is 4 seconds */
- ck_assert_int_eq(EIO, rsync_download("tmp/5kb", "tmp/5kb-copy", false));
+ ck_assert_int_eq(EIO, rsync_download(CACHEDIR "/5kb", CACHEDIR "/5kb-copy", false));
}
END_TEST
static bool roas_found[TOTAL_ROAS];
static unsigned int total_found;
+__MOCK_ABORT(config_get_local_repository, char const *, "tmp/dbt", void)
+
static bool
vrp_equals_v4(struct vrp const *vrp, uint8_t as, uint32_t addr,
uint8_t prefix_len, uint8_t max_prefix_len)
MOCK_ABORT_ENUM(config_get_output_format, output_format, void)
MOCK_ABORT_INT(hash_local_file, char const *uri, unsigned char *result,
unsigned int *result_len)
+__MOCK_ABORT(config_get_local_repository, char const *, "tmp/vrps", void)
/* Test functions */
MOCK_INT(slurm_apply, 0, struct db_table *base, struct db_slurm **slurm)
MOCK_ABORT_VOID(db_slurm_destroy, struct db_slurm *db)
-
MOCK_VOID(output_print_data, struct db_table const *db)
+__MOCK_ABORT(config_get_local_repository, char const *, "tmp/pdu", void)
/* Mocks end */
/* Mocks */
+MOCK(config_get_local_repository, char const *, "tmp/tal", void)
MOCK_ABORT_VOID(cache_setup, void)
MOCK(cache_create, struct rpki_cache *, NULL, char const *tal)
MOCK_VOID(cache_destroy, struct rpki_cache *cache)
#include "mock.c"
#include "thread/thread_pool.c"
+__MOCK_ABORT(config_get_local_repository, char const *, "tmp/thread", void)
+
static void
thread_work(void *arg)
{
#include "mock.c"
#include "types/address.c"
-/* Tests */
+__MOCK_ABORT(config_get_local_repository, char const *, "tmp/address", void)
static void
test_range4(uint32_t min, uint32_t max, bool valid)
/* Mocks */
+#define CACHEDIR "tmp/uri"
+
static struct rpki_uri *notif;
+MOCK(config_get_local_repository, char const *, CACHEDIR, void)
MOCK(state_retrieve, struct validation *, NULL, void)
MOCK(validation_tal, struct tal *, NULL, struct validation *state)
MOCK(tal_get_file_name, char const *, "test.tal", struct tal *tal)
-
MOCK_ABORT_INT(rrdp_update, struct rpki_uri *uri)
/* Tests */
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c"));
ck_assert_str_eq("https://a.b.c", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c/"));
ck_assert_str_eq("https://a.b.c/", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c/d"));
ck_assert_str_eq("https://a.b.c/d", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c/d", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c/d", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c/d/e"));
ck_assert_str_eq("https://a.b.c/d/e", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c/d/e", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c/d/e", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c/d/.."));
ck_assert_str_eq("https://a.b.c/d/..", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c/."));
ck_assert_str_eq("https://a.b.c/.", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c/././d/././e/./."));
ck_assert_str_eq("https://a.b.c/././d/././e/./.", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c/d/e", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c/d/e", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(0, URI_CREATE_HTTP(uri, "https://a.b.c/a/b/.././.."));
ck_assert_str_eq("https://a.b.c/a/b/.././..", uri_get_global(uri));
- ck_assert_str_eq("tmp/test.tal/https/a.b.c", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/https/a.b.c", uri_get_local(uri));
uri_refput(uri);
ck_assert_int_eq(-EINVAL, URI_CREATE_HTTP(uri, "https://a.b.c/.."));
ck_assert_int_eq(0, uri_create(¬if, "test.tal", UT_HTTPS, true, NULL, "https://a.b.c/d/e.xml"));
ck_assert_int_eq(0, uri_create(&uri, "test.tal", UT_CAGED, false, notif, "rsync://x.y.z/v/w.cer"));
- ck_assert_str_eq("tmp/test.tal/rrdp/a.b.c/d/e.xml/x.y.z/v/w.cer", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/rrdp/a.b.c/d/e.xml/x.y.z/v/w.cer", uri_get_local(uri));
uri_refput(uri);
uri_refput(notif);
ck_assert_int_eq(0, uri_create(¬if, "test.tal", UT_HTTPS, true, NULL, "https://a.b.c"));
ck_assert_int_eq(0, uri_create(&uri, "test.tal", UT_CAGED, false, notif, "rsync://w"));
- ck_assert_str_eq("tmp/test.tal/rrdp/a.b.c/w", uri_get_local(uri));
+ ck_assert_str_eq(CACHEDIR "/test.tal/rrdp/a.b.c/w", uri_get_local(uri));
uri_refput(uri);
uri_refput(notif);
}