diff options
author | Anderson Toshiyuki Sasaki <ansasaki@redhat.com> | 2018-11-20 14:47:04 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-11-28 15:51:06 +0100 |
commit | ac1377148fc1cca93fceff09e2f0d355edde3a86 (patch) | |
tree | be4a0a79a2cb6fa5533a4fc86e541887333adaba | |
parent | f38c6fcc6ee31ea76dd086f5f7b8e4d6f3c647a7 (diff) | |
download | libssh-ac1377148fc1cca93fceff09e2f0d355edde3a86.tar.gz libssh-ac1377148fc1cca93fceff09e2f0d355edde3a86.tar.xz libssh-ac1377148fc1cca93fceff09e2f0d355edde3a86.zip |
tests: Use temporary directories in torture_threads_pki_rsa.c
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
-rw-r--r-- | tests/unittests/torture_threads_pki_rsa.c | 61 |
1 files changed, 47 insertions, 14 deletions
diff --git a/tests/unittests/torture_threads_pki_rsa.c b/tests/unittests/torture_threads_pki_rsa.c index 1313f566..8dd14bfa 100644 --- a/tests/unittests/torture_threads_pki_rsa.c +++ b/tests/unittests/torture_threads_pki_rsa.c @@ -38,8 +38,14 @@ #define NUM_THREADS 10 +const char template[] = "temp_dir_XXXXXX"; const unsigned char RSA_HASH[] = "12345678901234567890"; +struct pki_st { + char *cwd; + char *temp_dir; +}; + static int run_on_threads(void *(*func)(void *)) { pthread_t threads[NUM_THREADS]; @@ -67,12 +73,29 @@ static int run_on_threads(void *(*func)(void *)) static int setup_rsa_key(void **state) { - (void) state; /* unused */ + struct pki_st *test_state = NULL; + char *cwd = NULL; + char *tmp_dir = NULL; + int rc = 0; + + test_state = (struct pki_st *)malloc(sizeof(struct pki_st)); + assert_non_null(test_state); + + cwd = torture_get_current_working_dir(); + assert_non_null(cwd); + + tmp_dir = torture_make_temp_dir(template); + assert_non_null(tmp_dir); + + test_state->cwd = cwd; + test_state->temp_dir = tmp_dir; - unlink(LIBSSH_RSA_TESTKEY); - unlink(LIBSSH_RSA_TESTKEY_PASSPHRASE); - unlink(LIBSSH_RSA_TESTKEY ".pub"); - unlink(LIBSSH_RSA_TESTKEY "-cert.pub"); + *state = test_state; + + rc = torture_change_dir(tmp_dir); + assert_int_equal(rc, 0); + + printf("Changed directory to: %s\n", tmp_dir); torture_write_file(LIBSSH_RSA_TESTKEY, torture_get_testkey(SSH_KEYTYPE_RSA, 0, 0)); @@ -80,22 +103,32 @@ static int setup_rsa_key(void **state) torture_get_testkey(SSH_KEYTYPE_RSA, 0, 1)); torture_write_file(LIBSSH_RSA_TESTKEY ".pub", torture_get_testkey_pub(SSH_KEYTYPE_RSA, 0)); - torture_write_file(LIBSSH_RSA_TESTKEY ".pub", - torture_get_testkey_pub(SSH_KEYTYPE_RSA, 0)); torture_write_file(LIBSSH_RSA_TESTKEY "-cert.pub", torture_get_testkey_pub(SSH_KEYTYPE_RSA_CERT01, 0)); return 0; } -static int teardown(void **state) -{ - (void) state; /* unused */ +static int teardown(void **state) { + + struct pki_st *test_state = NULL; + int rc = 0; + + test_state = *((struct pki_st **)state); + + assert_non_null(test_state); + assert_non_null(test_state->cwd); + assert_non_null(test_state->temp_dir); + + rc = torture_change_dir(test_state->cwd); + assert_int_equal(rc, 0); + + rc = torture_rmdirs(test_state->temp_dir); + assert_int_equal(rc, 0); - unlink(LIBSSH_RSA_TESTKEY); - unlink(LIBSSH_RSA_TESTKEY_PASSPHRASE); - unlink(LIBSSH_RSA_TESTKEY ".pub"); - unlink(LIBSSH_RSA_TESTKEY "-cert.pub"); + SAFE_FREE(test_state->temp_dir); + SAFE_FREE(test_state->cwd); + SAFE_FREE(test_state); return 0; } |