summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2018-03-07 15:40:20 +0100
committerDaiki Ueno <ueno@gnu.org>2018-03-29 11:25:11 +0200
commite454338dddef9089a3b9998cc8ba33e247ee9f26 (patch)
treec16f0d172dc083582e73c6069205fb66a56cca1f
parent007023002811469ae3982a0cfcd9a73aed762ad1 (diff)
test: Add test for error messages
-rw-r--r--.travis.yml2
-rw-r--r--p11-kit/Makefile.am2
-rwxr-xr-xp11-kit/test-messages.sh110
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