diff options
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | p11-kit/Makefile.am | 2 | ||||
-rwxr-xr-x | p11-kit/test-messages.sh | 110 |
3 files changed, 113 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml index 51fab88..d7d4cb3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -51,4 +51,4 @@ after_failure: - docker exec $CONTAINER su - user sh -c "cd $BUILDDIR && cat test-suite.log" after_success: - - if test x"$COVERAGE" = xyes; then docker exec $CONTAINER pip install cpp-coveralls; docker exec -e TRAVIS_JOB_ID="$TRAVIS_JOB_ID" -e TRAVIS_BRANCH="$TRAVIS_BRANCH" $CONTAINER sh -c "cd $BUILDDIR && coveralls -b $BUILDDIR -E '(^|.*/)(frob|mock|test)-.*|(^|.*/)(virtual-fixed\.c|print-messages\.c)' --gcov-options '\-lp'"; fi + - if test x"$COVERAGE" = xyes; then docker exec $CONTAINER pip install cpp-coveralls; docker exec -e TRAVIS_JOB_ID="$TRAVIS_JOB_ID" -e TRAVIS_BRANCH="$TRAVIS_BRANCH" $CONTAINER sh -c "cd $BUILDDIR && coveralls -b $BUILDDIR -E '(^|.*/)(frob|mock|test)-.*|(^|.*/)(virtual-fixed\.c)' --gcov-options '\-lp'"; fi diff --git a/p11-kit/Makefile.am b/p11-kit/Makefile.am index f4e9069..e02a1eb 100644 --- a/p11-kit/Makefile.am +++ b/p11-kit/Makefile.am @@ -293,6 +293,8 @@ check_PROGRAMS += \ print_messages_SOURCES = p11-kit/print-messages.c print_messages_LDADD = $(p11_kit_LIBS) +sh_tests += p11-kit/test-messages.sh + frob_setuid_SOURCES = p11-kit/frob-setuid.c frob_setuid_LDADD = $(p11_kit_LIBS) diff --git a/p11-kit/test-messages.sh b/p11-kit/test-messages.sh new file mode 100755 index 0000000..16c8544 --- /dev/null +++ b/p11-kit/test-messages.sh @@ -0,0 +1,110 @@ +#!/bin/sh + +set -e + +testdir=$PWD/test-messages-$$ +test -d "$testdir" || mkdir "$testdir" + +cleanup () { + rm -rf "$testdir" +} +trap cleanup 0 + +cd "$testdir" + +cat > messages.exp <<EOF +CKR_CANCEL: The operation was cancelled +CKR_FUNCTION_CANCELED: The operation was cancelled +CKR_HOST_MEMORY: Insufficient memory available +CKR_SLOT_ID_INVALID: The specified slot ID is not valid +CKR_GENERAL_ERROR: Internal error +CKR_FUNCTION_FAILED: The operation failed +CKR_ARGUMENTS_BAD: Invalid arguments +CKR_NEED_TO_CREATE_THREADS: The module cannot create needed threads +CKR_CANT_LOCK: The module cannot lock data properly +CKR_ATTRIBUTE_READ_ONLY: The field is read-only +CKR_ATTRIBUTE_SENSITIVE: The field is sensitive and cannot be revealed +CKR_ATTRIBUTE_TYPE_INVALID: The field is invalid or does not exist +CKR_ATTRIBUTE_VALUE_INVALID: Invalid value for field +CKR_DATA_INVALID: The data is not valid or unrecognized +CKR_DATA_LEN_RANGE: The data is too long +CKR_DEVICE_ERROR: An error occurred on the device +CKR_DEVICE_MEMORY: Insufficient memory available on the device +CKR_DEVICE_REMOVED: The device was removed or unplugged +CKR_ENCRYPTED_DATA_INVALID: The encrypted data is not valid or unrecognized +CKR_ENCRYPTED_DATA_LEN_RANGE: The encrypted data is too long +CKR_FUNCTION_NOT_SUPPORTED: This operation is not supported +CKR_KEY_HANDLE_INVALID: The key is missing or invalid +CKR_KEY_SIZE_RANGE: The key is the wrong size +CKR_KEY_TYPE_INCONSISTENT: The key is of the wrong type +CKR_KEY_NOT_NEEDED: No key is needed +CKR_KEY_CHANGED: The key is different than before +CKR_KEY_NEEDED: A key is needed +CKR_KEY_INDIGESTIBLE: Cannot include the key in the digest +CKR_KEY_FUNCTION_NOT_PERMITTED: This operation cannot be done with this key +CKR_KEY_NOT_WRAPPABLE: The key cannot be wrapped +CKR_KEY_UNEXTRACTABLE: Cannot export this key +CKR_MECHANISM_INVALID: The crypto mechanism is invalid or unrecognized +CKR_MECHANISM_PARAM_INVALID: The crypto mechanism has an invalid argument +CKR_OBJECT_HANDLE_INVALID: The object is missing or invalid +CKR_OPERATION_ACTIVE: Another operation is already taking place +CKR_OPERATION_NOT_INITIALIZED: No operation is taking place +CKR_PIN_INCORRECT: The password or PIN is incorrect +CKR_PIN_INVALID: The password or PIN is invalid +CKR_PIN_LEN_RANGE: The password or PIN is of an invalid length +CKR_PIN_EXPIRED: The password or PIN has expired +CKR_PIN_LOCKED: The password or PIN is locked +CKR_SESSION_CLOSED: The session is closed +CKR_SESSION_COUNT: Too many sessions are active +CKR_SESSION_HANDLE_INVALID: The session is invalid +CKR_SESSION_READ_ONLY: The session is read-only +CKR_SESSION_EXISTS: An open session exists +CKR_SESSION_READ_ONLY_EXISTS: A read-only session exists +CKR_SESSION_READ_WRITE_SO_EXISTS: An administrator session exists +CKR_SIGNATURE_INVALID: The signature is bad or corrupted +CKR_SIGNATURE_LEN_RANGE: The signature is unrecognized or corrupted +CKR_TEMPLATE_INCOMPLETE: Certain required fields are missing +CKR_TEMPLATE_INCONSISTENT: Certain fields have invalid values +CKR_TOKEN_NOT_PRESENT: The device is not present or unplugged +CKR_TOKEN_NOT_RECOGNIZED: The device is invalid or unrecognizable +CKR_TOKEN_WRITE_PROTECTED: The device is write protected +CKR_UNWRAPPING_KEY_HANDLE_INVALID: Cannot import because the key is invalid +CKR_UNWRAPPING_KEY_SIZE_RANGE: Cannot import because the key is of the wrong size +CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT: Cannot import because the key is of the wrong type +CKR_USER_ALREADY_LOGGED_IN: You are already logged in +CKR_USER_NOT_LOGGED_IN: No user has logged in +CKR_USER_PIN_NOT_INITIALIZED: The user's password or PIN is not set +CKR_USER_TYPE_INVALID: The user is of an invalid type +CKR_USER_ANOTHER_ALREADY_LOGGED_IN: Another user is already logged in +CKR_USER_TOO_MANY_TYPES: Too many users of different types are logged in +CKR_WRAPPED_KEY_INVALID: Cannot import an invalid key +CKR_WRAPPED_KEY_LEN_RANGE: Cannot import a key of the wrong size +CKR_WRAPPING_KEY_HANDLE_INVALID: Cannot export because the key is invalid +CKR_WRAPPING_KEY_SIZE_RANGE: Cannot export because the key is of the wrong size +CKR_WRAPPING_KEY_TYPE_INCONSISTENT: Cannot export because the key is of the wrong type +CKR_RANDOM_SEED_NOT_SUPPORTED: Unable to initialize the random number generator +CKR_RANDOM_NO_RNG: No random number generator available +CKR_DOMAIN_PARAMS_INVALID: The crypto mechanism has an invalid parameter +CKR_BUFFER_TOO_SMALL: Not enough space to store the result +CKR_SAVED_STATE_INVALID: The saved state is invalid +CKR_INFORMATION_SENSITIVE: The information is sensitive and cannot be revealed +CKR_STATE_UNSAVEABLE: The state cannot be saved +CKR_CRYPTOKI_NOT_INITIALIZED: The module has not been initialized +CKR_CRYPTOKI_ALREADY_INITIALIZED: The module has already been initialized +CKR_MUTEX_BAD: Cannot lock data +CKR_MUTEX_NOT_LOCKED: The data cannot be locked +CKR_FUNCTION_REJECTED: The request was rejected by the user +EOF + +"$abs_top_builddir"/print-messages > messages.out + +echo 1..1 + +: ${DIFF=diff} +if ${DIFF} messages.exp messages.out > messages.diff; then + echo "ok 1 /messages/return-code" +else + echo "not ok 1 /messages/return-code" + sed 's/^/# /' messages.diff + exit 1 +fi |