Blame tests/unittests/torture_push_pop_dir.c

Packit Service 31306d
#include "config.h"
Packit Service 31306d
Packit Service 31306d
#include "torture.h"
Packit Service 31306d
#define LIBSSH_STATIC
Packit Service 31306d
Packit Service 31306d
const char template[] = "temp_dir_XXXXXX";
Packit Service 31306d
Packit Service 31306d
static int setup(void **state)
Packit Service 31306d
{
Packit Service 31306d
    char *temp_dir = NULL;
Packit Service 31306d
Packit Service 31306d
    temp_dir = torture_make_temp_dir(template);
Packit Service 31306d
    assert_non_null(temp_dir);
Packit Service 31306d
Packit Service 31306d
    *state = (void *)temp_dir;
Packit Service 31306d
Packit Service 31306d
    return 0;
Packit Service 31306d
}
Packit Service 31306d
Packit Service 31306d
static int teardown(void **state)
Packit Service 31306d
{
Packit Service 31306d
    char *temp_dir = *((char **)state);
Packit Service 31306d
Packit Service 31306d
    torture_rmdirs((const char *)temp_dir);
Packit Service 31306d
Packit Service 31306d
    free(temp_dir);
Packit Service 31306d
Packit Service 31306d
    return 0;
Packit Service 31306d
}
Packit Service 31306d
Packit Service 31306d
static void torture_back_and_forth(void **state)
Packit Service 31306d
{
Packit Service 31306d
    char *temp_dir = *((char **)state);
Packit Service 31306d
    char *cwd = NULL;
Packit Service 31306d
    char *after_change = NULL;
Packit Service 31306d
    char *after_changing_back = NULL;
Packit Service 31306d
    int rc = 0;
Packit Service 31306d
Packit Service 31306d
    cwd = torture_get_current_working_dir();
Packit Service 31306d
    assert_non_null(cwd);
Packit Service 31306d
Packit Service 31306d
    printf("Current dir: %s\n", cwd);
Packit Service 31306d
Packit Service 31306d
    rc = torture_change_dir(temp_dir);
Packit Service 31306d
    assert_int_equal(rc, 0);
Packit Service 31306d
Packit Service 31306d
    after_change = torture_get_current_working_dir();
Packit Service 31306d
    assert_non_null(after_change);
Packit Service 31306d
Packit Service 31306d
    printf("Current dir after change: %s\n", after_change);
Packit Service 31306d
Packit Service 31306d
    rc = torture_change_dir(cwd);
Packit Service 31306d
    assert_int_equal(rc, 0);
Packit Service 31306d
Packit Service 31306d
    after_changing_back = torture_get_current_working_dir();
Packit Service 31306d
    assert_non_null(after_changing_back);
Packit Service 31306d
Packit Service 31306d
    printf("Back to dir: %s\n", after_changing_back);
Packit Service 31306d
Packit Service 31306d
    SAFE_FREE(cwd);
Packit Service 31306d
    SAFE_FREE(after_change);
Packit Service 31306d
    SAFE_FREE(after_changing_back);
Packit Service 31306d
}
Packit Service 31306d
Packit Service 31306d
int torture_run_tests(void)
Packit Service 31306d
{
Packit Service 31306d
    int rc;
Packit Service 31306d
    struct CMUnitTest tests[] = {
Packit Service 31306d
        cmocka_unit_test_setup_teardown(torture_back_and_forth,
Packit Service 31306d
                                        setup, teardown),
Packit Service 31306d
    };
Packit Service 31306d
Packit Service 31306d
    torture_filter_tests(tests);
Packit Service 31306d
    rc = cmocka_run_group_tests(tests, NULL, NULL);
Packit Service 31306d
Packit Service 31306d
    return rc;
Packit Service 31306d
}
Packit Service 31306d