diff options
author | Anderson Toshiyuki Sasaki <ansasaki@redhat.com> | 2018-11-20 14:20:44 +0100 |
---|---|---|
committer | Andreas Schneider <asn@cryptomilk.org> | 2018-11-28 15:51:06 +0100 |
commit | f38c6fcc6ee31ea76dd086f5f7b8e4d6f3c647a7 (patch) | |
tree | 680b24756e8938bb3d147db7b63a825880a05893 | |
parent | 0dd2b375c770854f73fa64b8e43c741e074de7e6 (diff) | |
download | libssh-f38c6fcc6ee31ea76dd086f5f7b8e4d6f3c647a7.tar.gz libssh-f38c6fcc6ee31ea76dd086f5f7b8e4d6f3c647a7.tar.xz libssh-f38c6fcc6ee31ea76dd086f5f7b8e4d6f3c647a7.zip |
tests: Use temporary directories in torture_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_pki_rsa.c | 87 |
1 files changed, 69 insertions, 18 deletions
diff --git a/tests/unittests/torture_pki_rsa.c b/tests/unittests/torture_pki_rsa.c index d90eceb7..979130a9 100644 --- a/tests/unittests/torture_pki_rsa.c +++ b/tests/unittests/torture_pki_rsa.c @@ -14,19 +14,42 @@ #define LIBSSH_RSA_TESTKEY "libssh_testkey.id_rsa" #define LIBSSH_RSA_TESTKEY_PASSPHRASE "libssh_testkey_passphrase.id_rsa" +const char template[] = "temp_dir_XXXXXX"; const unsigned char RSA_HASH[] = "12345678901234567890"; const unsigned char SHA256_HASH[] = "12345678901234567890123456789012"; const unsigned char SHA512_HASH[] = "1234567890123456789012345678901234567890" "123456789012345678901234"; +struct pki_st { + char *cwd; + char *temp_dir; +}; + 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; - unlink(LIBSSH_RSA_TESTKEY); - unlink(LIBSSH_RSA_TESTKEY_PASSPHRASE); - unlink(LIBSSH_RSA_TESTKEY ".pub"); - unlink(LIBSSH_RSA_TESTKEY "-cert.pub"); + 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; + + *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)); @@ -40,14 +63,29 @@ static int setup_rsa_key(void **state) return 0; } -static int setup_rsa_openssh_key(void **state) +static int setup_openssh_rsa_key(void **state) { - (void) state; /* unused */ + struct pki_st *test_state = NULL; + char *cwd = NULL; + char *tmp_dir = NULL; + int rc = 0; - unlink(LIBSSH_RSA_TESTKEY); - unlink(LIBSSH_RSA_TESTKEY_PASSPHRASE); - unlink(LIBSSH_RSA_TESTKEY ".pub"); - unlink(LIBSSH_RSA_TESTKEY "-cert.pub"); + 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; + + *state = test_state; + + rc = torture_change_dir(tmp_dir); + assert_int_equal(rc, 0); torture_write_file(LIBSSH_RSA_TESTKEY, torture_get_openssh_testkey(SSH_KEYTYPE_RSA, 0, 0)); @@ -62,12 +100,25 @@ static int setup_rsa_openssh_key(void **state) } static int teardown(void **state) { - (void) state; /* unused */ - unlink(LIBSSH_RSA_TESTKEY); - unlink(LIBSSH_RSA_TESTKEY_PASSPHRASE); - unlink(LIBSSH_RSA_TESTKEY ".pub"); - unlink(LIBSSH_RSA_TESTKEY "-cert.pub"); + 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); + + SAFE_FREE(test_state->temp_dir); + SAFE_FREE(test_state->cwd); + SAFE_FREE(test_state); return 0; } @@ -661,7 +712,7 @@ int torture_run_tests(void) { setup_rsa_key, teardown), cmocka_unit_test_setup_teardown(torture_pki_rsa_import_pubkey_from_openssh_privkey, - setup_rsa_openssh_key, + setup_openssh_rsa_key, teardown), cmocka_unit_test_setup_teardown(torture_pki_rsa_import_privkey_base64_NULL_key, setup_rsa_key, @@ -673,7 +724,7 @@ int torture_run_tests(void) { setup_rsa_key, teardown), cmocka_unit_test_setup_teardown(torture_pki_rsa_import_privkey_base64, - setup_rsa_openssh_key, + setup_openssh_rsa_key, teardown), cmocka_unit_test_setup_teardown(torture_pki_rsa_publickey_from_privatekey, setup_rsa_key, |