Esempio n. 1
0
int main(POSSIBLY_UNUSED(int argc), char **argv)
{
	char tdir[PATH_MAX];
	struct fast_log_buf *fb;
	timer_t timer;
	time_t t;

	EXPECT_ZERO(utility_ctx_init(argv[0])); /* for g_fast_log_mgr */
	t = mt_time() + 600;
	EXPECT_ZERO(mt_set_alarm(t, "ostor_unit timed out", &timer));
	fb = fast_log_create(g_fast_log_mgr, "main");
	EXPECT_NOT_ERRPTR(fb);

	EXPECT_ZERO(get_tempdir(tdir, sizeof(tdir), 0755));
	EXPECT_ZERO(register_tempdir_for_cleanup(tdir));
	EXPECT_ZERO(ostoru_test_open_close(tdir));

	EXPECT_ZERO(get_tempdir(tdir, sizeof(tdir), 0755));
	EXPECT_ZERO(register_tempdir_for_cleanup(tdir));
	EXPECT_ZERO(ostoru_simple_test(tdir, fb, 100));

	EXPECT_ZERO(get_tempdir(tdir, sizeof(tdir), 0755));
	EXPECT_ZERO(register_tempdir_for_cleanup(tdir));
	EXPECT_ZERO(ostoru_simple_test(tdir, fb, 1));

	EXPECT_ZERO(get_tempdir(tdir, sizeof(tdir), 0755));
	EXPECT_ZERO(register_tempdir_for_cleanup(tdir));
	EXPECT_ZERO(ostoru_threaded_test(tdir, 10));

	EXPECT_ZERO(mt_deactivate_alarm(timer));
	fast_log_free(fb);
	process_ctx_shutdown();

	return EXIT_SUCCESS;
}
Esempio n. 2
0
static void stest_parse_argv(int argc, char **argv, const char **test_usage)
{
	int ret, c;
	while ((c = getopt(argc, argv, "d:fh")) != -1) {
		switch (c) {
		case 'd':
			snprintf(g_test_dir, sizeof(g_test_dir), "%s", optarg);
			break;
		case 'f':
			g_daemonize = 0;
			break;
		case 'h':
			stest_usage(argv[0], test_usage, EXIT_SUCCESS);
			break;
		case '?':
			stest_usage(argv[0], test_usage, EXIT_FAILURE);
			break;
		}
	}
	if (!g_test_dir[0]) {
		ret = get_tempdir(g_test_dir, sizeof(g_test_dir), 0775);
		if (ret) {
			fprintf(stderr, "get_tempdir failed with error %d!\n",
				ret);
			exit(EXIT_FAILURE);
		}
		register_tempdir_for_cleanup(g_test_dir);
	}
}
static int local_file_rcv_test(struct rtest *rt)
{
    char err[512];
    size_t err_len = sizeof(err);
    char *local_path, *tdir, *conf_str = NULL;
    struct span_table *st;

    st = span_table_alloc();
    tdir = create_tempdir("local_file_rcv-unit", 0777, err, err_len);
    EXPECT_STR_EQ("", err);
    register_tempdir_for_cleanup(tdir);
    EXPECT_INT_GE(0, asprintf(&local_path, "%s/%s", tdir, "spans.json"));
    EXPECT_INT_GE(0, asprintf(&conf_str, "%s=%s;%s=%s",
                HTRACE_SPAN_RECEIVER_KEY, "local.file",
                HTRACE_LOCAL_FILE_RCV_PATH_KEY, local_path));
    EXPECT_INT_ZERO(rt->run(rt, conf_str));
    EXPECT_INT_GE(0, load_trace_span_file(local_path, st));
    EXPECT_INT_ZERO(rt->verify(rt, st));
    free(conf_str);
    free(local_path);
    free(tdir);
    span_table_free(st);

    return EXIT_SUCCESS;
}
Esempio n. 4
0
int main(void)
{
	char dir_src[PATH_MAX];
	char dir_dst[PATH_MAX];

	EXPECT_ZERO(get_tempdir(dir_src, PATH_MAX, 0755));
	EXPECT_ZERO(register_tempdir_for_cleanup(dir_src));
	EXPECT_ZERO(get_tempdir(dir_dst, PATH_MAX, 0755));
	EXPECT_ZERO(register_tempdir_for_cleanup(dir_dst));

	/* test rename /src/a -> /dst/m, a as file, m as file */
	EXPECT_ZERO(do_touch2(dir_src, "a"));
	EXPECT_ZERO(do_touch2(dir_dst, "m"));
	EXPECT_ZERO(do_rename(dir_src, "a", dir_dst, "m"));

	/* test rename /src/b -> /dst/n, b as file, n as dir */
	EXPECT_ZERO(do_touch2(dir_src, "b"));
	EXPECT_ZERO(do_test_mkdir(dir_dst, "n"));
	EXPECT_EQ(do_rename(dir_src, "b", dir_dst, "n"), -EISDIR);

	/* test rename /src/c -> /dst/o, c as dir, o as file */
	EXPECT_ZERO(do_test_mkdir(dir_src, "c"));
	EXPECT_ZERO(do_touch2(dir_dst, "o"));
	EXPECT_EQ(do_rename(dir_src, "c", dir_dst, "o"), -ENOTDIR);

	/* test rename /src/d -> /dst/p, d as dir, p as dir */
	EXPECT_ZERO(do_test_mkdir(dir_src, "d"));
	EXPECT_ZERO(do_test_mkdir(dir_dst, "p"));
	EXPECT_ZERO(do_rename(dir_src, "d", dir_dst, "p"));

	/* test rename /src/e -> /dst/q, e as file, q as nonexistent */
	EXPECT_ZERO(do_touch2(dir_src, "e"));
	EXPECT_ZERO(do_rename(dir_src, "e", dir_dst, "q"));

	/* test rename /src/f -> /dst/r, f as dir, r as nonexistent */
	EXPECT_ZERO(do_test_mkdir(dir_src, "f"));
	EXPECT_ZERO(do_rename(dir_src, "f", dir_dst, "r"));

	return 0;
}
Esempio n. 5
0
int main(POSSIBLY_UNUSED(int argc), char **argv)
{
	char tempdir[PATH_MAX];
	srand(time(NULL));
	EXPECT_ZERO(get_tempdir(tempdir, sizeof(tempdir), 0770));
	EXPECT_ZERO(register_tempdir_for_cleanup(tempdir));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGSEGV));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGBUS));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGILL));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGFPE));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGABRT));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGINT));
	return EXIT_SUCCESS;
}
Esempio n. 6
0
int main(void)
{
	char tempdir[PATH_MAX];
	char glitch_log_path[PATH_MAX];
	struct logc lc;

	EXPECT_ZERO(get_tempdir(tempdir, PATH_MAX, 0700));
	EXPECT_ZERO(register_tempdir_for_cleanup(tempdir));
	snprintf(glitch_log_path, sizeof(glitch_log_path),
			"%s/glitch_log.txt", tempdir);
	memset(&lc, 0, sizeof(struct logc));
	lc.glitch_log_path = glitch_log_path;
	EXPECT_ZERO(test_stderr_output(tempdir));
	configure_glitch_log(&lc);
	EXPECT_ZERO(test_log_output(lc.glitch_log_path));
	return EXIT_SUCCESS;
}
Esempio n. 7
0
int main(POSSIBLY_UNUSED(int argc), char **argv)
{
	char tempdir[PATH_MAX];
	srand(time(NULL));

	g_fast_log_mgr = fast_log_mgr_init(g_fast_log_dumpers);
	EXPECT_NOT_EQ(g_fast_log_mgr, NULL);
	EXPECT_ZERO(get_tempdir(tempdir, sizeof(tempdir), 0770));
	EXPECT_ZERO(register_tempdir_for_cleanup(tempdir));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGSEGV));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGBUS));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGILL));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGFPE));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGABRT));
	EXPECT_ZERO(test_signal_handler(argv[0], tempdir, SIGINT));
	fast_log_mgr_release(g_fast_log_mgr);
	return EXIT_SUCCESS;
}
Esempio n. 8
0
static void open_temp_glitch_log(void)
{
	int ret;
	char tempdir[PATH_MAX];
	ret = get_tempdir(tempdir, PATH_MAX, 0755);
	if (ret)
		return;
	snprintf(g_glitch_log_fname, PATH_MAX, "%s/glitch_log.tmp.txt",
		 tempdir);
        RETRY_ON_EINTR(g_glitch_log_fd, open(g_glitch_log_fname,
			O_CREAT | O_RDWR, 0644));
	if (g_glitch_log_fd == -1) {
		g_glitch_log_fname[0] = '\0';
		remove_tempdir(tempdir);
		return;
	}
	register_tempdir_for_cleanup(tempdir);
}
int main(void)
{
	char *bigbuf, tempdir[PATH_MAX];
	int next_id = 0;
	EXPECT_ZERO(get_tempdir(tempdir, sizeof(tempdir), 0700));
	EXPECT_ZERO(register_tempdir_for_cleanup(tempdir));

	EXPECT_ZERO(read_then_write_file(tempdir, &next_id, "", 0));
	EXPECT_ZERO(read_then_write_file(tempdir, &next_id, "abc", 123));
	EXPECT_ZERO(read_then_write_file(tempdir, &next_id,
					 "abracadabra", 5));
	EXPECT_ZERO(test_copy_fd_to_fd(tempdir, &next_id, ""));
	EXPECT_ZERO(test_copy_fd_to_fd(tempdir, &next_id, "foo bar"));
	bigbuf = malloc(BIGBUF_SZ);
	memset(bigbuf, 'm', BIGBUF_SZ - 1);
	bigbuf[BIGBUF_SZ - 1] = '\0';
	EXPECT_NOT_EQUAL(bigbuf, NULL);
	EXPECT_ZERO(test_copy_fd_to_fd(tempdir, &next_id, bigbuf));
	free(bigbuf);
	return EXIT_SUCCESS;
}