diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2014-07-30 17:22:48 +0200 |
---|---|---|
committer | Stef Walter <stefw@redhat.com> | 2014-09-25 09:48:13 +0200 |
commit | 1d899f163285708a53caf7e0a8e1920c481e87a2 (patch) | |
tree | 7f03336b5772f0add33c9cf034a41caa62ae04b9 | |
parent | dec130f0ced2c9145f3f72e423023e00b1e3113f (diff) | |
download | p11-kit-1d899f163285708a53caf7e0a8e1920c481e87a2.tar.gz |
remote: updated self tests for new remote functionality
-rw-r--r-- | p11-kit/test-mock.c | 3 | ||||
-rw-r--r-- | p11-kit/test-rpc.c | 4 | ||||
-rw-r--r-- | p11-kit/test-transport.c | 44 |
3 files changed, 43 insertions, 8 deletions
diff --git a/p11-kit/test-mock.c b/p11-kit/test-mock.c index 8454f1f..13d8e06 100644 --- a/p11-kit/test-mock.c +++ b/p11-kit/test-mock.c @@ -57,7 +57,8 @@ test_get_info (void) assert_num_eq (rv, CKR_OK); assert_num_eq (MOCK_INFO.cryptokiVersion.major, info.cryptokiVersion.major); assert_num_eq (MOCK_INFO.cryptokiVersion.minor, info.cryptokiVersion.minor); - assert (memcmp (MOCK_INFO.manufacturerID, info.manufacturerID, sizeof (info.manufacturerID)) == 0); + /* in virtual modules we replace the manID */ + /*assert (memcmp (MOCK_INFO.manufacturerID, info.manufacturerID, sizeof (info.manufacturerID)) == 0);*/ assert_num_eq (MOCK_INFO.flags, info.flags); assert (memcmp (MOCK_INFO.libraryDescription, info.libraryDescription, sizeof (info.libraryDescription)) == 0); assert_num_eq (MOCK_INFO.libraryVersion.major, info.libraryVersion.major); diff --git a/p11-kit/test-rpc.c b/p11-kit/test-rpc.c index db14500..bc51f59 100644 --- a/p11-kit/test-rpc.c +++ b/p11-kit/test-rpc.c @@ -908,8 +908,8 @@ invoke_in_thread (void *arg) rv = (rpc_module->C_GetInfo) (&info); assert_num_eq (rv, CKR_OK); - assert (memcmp (info.manufacturerID, MOCK_INFO.manufacturerID, - sizeof (info.manufacturerID)) == 0); + assert (memcmp (info.libraryDescription, MOCK_INFO.libraryDescription, + sizeof (info.libraryDescription)) == 0); return NULL; } diff --git a/p11-kit/test-transport.c b/p11-kit/test-transport.c index 5fde436..5294e07 100644 --- a/p11-kit/test-transport.c +++ b/p11-kit/test-transport.c @@ -49,18 +49,26 @@ #endif #include <stdlib.h> #include <stdio.h> +#include <sys/time.h> struct { char *directory; char *user_config; char *user_modules; + pid_t pid; /*remote's pid */ } test; +static int initialized = 0; + static void setup_remote (void *unused) { - const char *data; + char *data; + char name[64+sizeof(BUILDDIR)]; + pid_t pid; + struct timeval tv; + test.pid = -1; test.directory = p11_test_directory ("p11-test-config"); test.user_modules = p11_path_build (test.directory, "modules", NULL); #ifdef OS_UNIX @@ -74,8 +82,31 @@ setup_remote (void *unused) test.user_config = p11_path_build (test.directory, "pkcs11.conf", NULL); p11_test_file_write (NULL, test.user_config, data, strlen (data)); - data = "remote: |" BUILDDIR "/p11-kit/p11-kit remote " BUILDDIR "/.libs/mock-two.so\n"; - p11_test_file_write (test.user_modules, "remote.module", data, strlen (data)); + if (initialized == 0) { + gettimeofday(&tv, NULL); + snprintf(name, sizeof(name), BUILDDIR"/sock.%u.%u", + (unsigned)tv.tv_sec, (unsigned)tv.tv_usec); + + pid = fork(); + switch(pid) { + case -1: + assert_not_reached (); + case 0: + if (execl(BUILDDIR"/../p11-kit", BUILDDIR"/../p11-kit", "remote", "-f", + BUILDDIR"/.libs/mock-two.so", "-s", name, "-t", "30", NULL) == -1) + assert_not_reached (); + exit(0); + default: + break; + } + + test.pid = pid; + if (asprintf(&data, "remote: %s", name) == -1) + assert_not_reached(); + p11_test_file_write (test.user_modules, "remote.module", data, strlen (data)); + free(data); + initialized = 1; + } p11_config_user_modules = test.user_modules; p11_config_user_file = test.user_config; @@ -152,6 +183,7 @@ test_basic_exec (void) assert_num_eq (rv, CKR_OK); p11_kit_modules_release (modules); + initialized = 0; } static void * @@ -164,8 +196,8 @@ invoke_in_thread (void *arg) rv = (rpc_module->C_GetInfo) (&info); assert_num_eq (rv, CKR_OK); - assert (memcmp (info.manufacturerID, MOCK_INFO.manufacturerID, - sizeof (info.manufacturerID)) == 0); + assert (memcmp (info.libraryDescription, MOCK_INFO.libraryDescription, + sizeof (info.libraryDescription)) == 0); return NULL; } @@ -200,6 +232,7 @@ test_simultaneous_functions (void) assert_num_eq (rv, CKR_OK); p11_kit_modules_release (modules); + initialized = 0; } #ifdef OS_UNIX @@ -254,6 +287,7 @@ test_fork_and_reinitialize (void) assert_num_eq (rv, CKR_OK); p11_kit_modules_release (modules); + initialized = 0; } #endif /* OS_UNIX */ |