efl/eet_suite: fix handling of certificate.

- do not chdir() during test, that's bad!
 - try exhaustively to find the pem.



SVN revision: 81486
This commit is contained in:
Gustavo Sverzut Barbieri 2012-12-20 21:30:25 +00:00
parent 55845c5a3e
commit 6f816da47f
2 changed files with 58 additions and 17 deletions

View File

@ -87,7 +87,8 @@ tests_eet_eet_suite_CPPFLAGS = \
-I$(top_srcdir)/src/lib/eina \
-I$(top_builddir)/src/lib/eina \
-I$(top_srcdir)/src/lib/eet \
-DTESTS_SRC_DIR=\"`pwd`/$(top_srcdir)\" \
-DTESTS_WD=\"`pwd`\" \
-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/eet\" \
@CHECK_CFLAGS@ \
@EET_CFLAGS@

View File

@ -24,7 +24,11 @@
#include "eet_suite.h"
#define CERT_DIR ((*TESTS_SRC_DIR == '/') ? TESTS_SRC_DIR"/src/tests/eet/" : "src/tests/eet/")
static char _key_pem[PATH_MAX] = "";
static char _cert_pem[PATH_MAX] = "";
static char _key_enc[PATH_MAX] = "";
static char _key_enc_pem[PATH_MAX] = "";
static char _key_enc_none_pem[PATH_MAX] = "";
START_TEST(eet_test_init)
{
@ -1642,7 +1646,6 @@ START_TEST(eet_identity_simple)
eet_init();
fail_if(!(file = tmpnam(file)));
fail_if(chdir(CERT_DIR));
fail_if(!(noread = fopen("/dev/null", "w")));
/* Sign an eet file. */
@ -1651,7 +1654,7 @@ START_TEST(eet_identity_simple)
fail_if(!eet_write(ef, "keys/tests", buffer, strlen(buffer) + 1, 0));
k = eet_identity_open("cert.pem", "key.pem", NULL);
k = eet_identity_open(_cert_pem, _key_pem, NULL);
fail_if(!k);
fail_if(eet_identity_set(ef, k) != EET_ERROR_NONE);
@ -1709,9 +1712,7 @@ START_TEST(eet_identity_open_simple)
eet_init();
fail_if(chdir(CERT_DIR));
k = eet_identity_open("cert.pem", "key.pem", NULL);
k = eet_identity_open(_cert_pem, _key_pem, NULL);
fail_if(!k);
if (k)
@ -1727,9 +1728,7 @@ START_TEST(eet_identity_open_pkcs8)
eet_init();
fail_if(chdir(CERT_DIR));
k = eet_identity_open("cert.pem", "key_enc_none.pem", NULL);
k = eet_identity_open(_cert_pem, _key_enc_none_pem, NULL);
fail_if(!k);
if (k)
@ -1776,21 +1775,19 @@ START_TEST(eet_identity_open_pkcs8_enc)
eet_init();
fail_if(chdir(CERT_DIR));
k = eet_identity_open("cert.pem", "key_enc.pem", NULL);
k = eet_identity_open(_cert_pem, _key_enc_pem, NULL);
fail_if(k);
if (k)
eet_identity_close(k);
k = eet_identity_open("cert.pem", "key_enc.pem", &badpass_get);
k = eet_identity_open(_cert_pem, _key_enc_pem, &badpass_get);
fail_if(k);
if (k)
eet_identity_close(k);
k = eet_identity_open("cert.pem", "key_enc.pem", &pass_get);
k = eet_identity_open(_cert_pem, _key_enc_pem, &pass_get);
fail_if(!k);
if (k)
@ -1812,7 +1809,6 @@ START_TEST(eet_cipher_decipher_simple)
eet_init();
fail_if(!(file = tmpnam(file)));
fail_if(chdir(CERT_DIR));
/* Crypt an eet file. */
ef = eet_open(file, EET_FILE_MODE_WRITE);
@ -2761,12 +2757,56 @@ eet_suite(void)
return s;
} /* eet_suite */
static const char *_cert_dir_find(const char *argv0)
{
static char base[PATH_MAX] = "";
char path[PATH_MAX];
struct stat st;
eina_strlcpy(base, TESTS_SRC_DIR, sizeof(base));
eina_str_join(path, sizeof(path), '/', base, "key.pem");
if (stat(path, &st) == 0)
return base;
if (base[0] != '/')
{
snprintf(base, sizeof(base), "%s/%s", TESTS_WD, TESTS_SRC_DIR);
eina_str_join(path, sizeof(path), '/', base, "key.pem");
if (stat(path, &st) == 0)
return base;
}
eina_strlcpy(base, argv0, sizeof(base));
do
{
char *p = strrchr(base, '/');
if (!p)
{
base[0] = '\0';
break;
}
*p = '\0';
eina_str_join(path, sizeof(path), '/', base, "key.pem");
}
while (stat(path, &st) != 0);
return base;
}
int
main(void)
main(int argc EINA_UNUSED, char *argv[])
{
Suite *s;
SRunner *sr;
int failed_count;
const char *base = _cert_dir_find(argv[0]);
eina_str_join(_key_pem, sizeof(_key_pem), '/', base, "key.pem");
eina_str_join(_cert_pem, sizeof(_cert_pem), '/', base,"cert.pem");
eina_str_join(_key_enc, sizeof(_key_enc), '/', base, "key.enc");
eina_str_join(_key_enc_pem, sizeof(_key_enc_pem), '/', base, "key_enc.pem");
eina_str_join(_key_enc_none_pem, sizeof(_key_enc_none_pem), '/',
base, "key_enc_none.pem");
s = eet_suite();
sr = srunner_create(s);