[gnome-keyring/gnome-3-0] gcr: Modernize tests. Use standard gtest type setup.
- From: Stefan Walter <stefw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-keyring/gnome-3-0] gcr: Modernize tests. Use standard gtest type setup.
- Date: Wed, 6 Apr 2011 20:56:37 +0000 (UTC)
commit e61a7b36b008541843fc7385e45d157701232ed1
Author: Stef Walter <stefw collabora co uk>
Date: Wed Apr 6 20:08:05 2011 +0200
gcr: Modernize tests. Use standard gtest type setup.
.gitignore | 9 +
gcr/gcr-parser.c | 2 +-
gcr/gcr-parser.h | 2 +-
gcr/tests/Makefile.am | 92 +++-----
.../RSA_Root_Certificate_1.pem | 0
.../{test-data => files}/RSA_Security_1024_v3.pem | 0
.../{test-data => files}/RSA_Security_2048_v3.pem | 0
.../Thawte_Personal_Basic_CA.pem | 0
.../Thawte_Personal_Freemail_CA.pem | 0
.../Thawte_Personal_Premium_CA.pem | 0
.../Thawte_Premium_Server_CA.pem | 0
.../{test-data => files}/Thawte_Server_CA.pem | 0
.../Thawte_Time_Stamping_CA.pem | 0
gcr/tests/{test-data => files}/ca-certificates.crt | 0
gcr/tests/{test-data => files}/cacert.org.pem | 0
gcr/tests/{test-data => files}/collabora-ca.cer | Bin 1536 -> 1536 bytes
.../{test-data => files}/der-certificate-dsa.cer | Bin 1639 -> 1639 bytes
gcr/tests/{test-data => files}/der-certificate.crt | Bin 747 -> 747 bytes
gcr/tests/{test-data => files}/der-dsa-1024.key | Bin 447 -> 447 bytes
.../{test-data => files}/der-pkcs8-PBE-MD5-DES.key | Bin 677 -> 677 bytes
.../der-pkcs8-PBE-SHA1-3DES.key | Bin 678 -> 678 bytes
.../der-pkcs8-PBE-SHA1-DES.key | Bin 677 -> 677 bytes
.../der-pkcs8-PBE-SHA1-RC2-40.key | Bin 678 -> 678 bytes
.../der-pkcs8-PBE-SHA1-RC4-128.key | Bin 673 -> 673 bytes
gcr/tests/{test-data => files}/der-pkcs8-dsa.key | Bin 335 -> 335 bytes
.../der-pkcs8-encrypted-pkcs5.key | Bin 677 -> 677 bytes
.../{test-data => files}/der-pkcs8-v2-des.key | Bin 711 -> 711 bytes
.../{test-data => files}/der-pkcs8-v2-des3.key | Bin 714 -> 714 bytes
gcr/tests/{test-data => files}/der-pkcs8.key | Bin 635 -> 635 bytes
gcr/tests/{test-data => files}/der-rsa-1024.key | Bin 609 -> 609 bytes
.../{test-data => files}/dhansak-collabora.cer | Bin 1200 -> 1200 bytes
gcr/tests/{test-data => files}/email.p12 | Bin 2488 -> 2488 bytes
gcr/tests/{test-data => files}/pem-dsa-1024.key | 0
gcr/tests/{test-data => files}/pem-pkcs8.key | 0
gcr/tests/{test-data => files}/pem-rsa-enc.key | 0
gcr/tests/{test-data => files}/test-x509-swiss.p7b | Bin 1002 -> 1002 bytes
gcr/tests/{test-data => files}/unclient.p12 | Bin 1476 -> 1476 bytes
.../{ui-test-certificate.c => frob-certificate.c} | 0
gcr/tests/{ui-test-key.c => frob-key.c} | 0
gcr/tests/frob-selector | 148 +++++++++++++
...test-unlock-options.c => frob-unlock-options.c} | 0
gcr/tests/test-certificate-chain.c | 227 +++++++++++++-------
gcr/tests/test-certificate.c | 197 ++++++++++++------
gcr/tests/{unit-test-parser.c => test-parser.c} | 113 ++++++----
gcr/tests/test-pkcs11-certificate.c | 130 +++++++-----
gcr/tests/test-simple-certificate.c | 63 ++++--
gcr/tests/test-trust.c | 150 ++++++++-----
47 files changed, 766 insertions(+), 367 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index e129e2b..26bff68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -104,6 +104,15 @@ run-tests
/gck/tests/test-gck-slot
/gck/tests/test-gck-uri
+/gcr/tests/frob-certificate
+/gcr/tests/frob-key
+/gcr/tests/frob-unlock-options
+/gcr/tests/test-certificate
+/gcr/tests/test-certificate-chain
+/gcr/tests/test-parser
+/gcr/tests/test-pkcs11-certificate
+/gcr/tests/test-simple-certificate
+/gcr/tests/test-trust
/daemon/dbus/tests/test-secret-util
diff --git a/gcr/gcr-parser.c b/gcr/gcr-parser.c
index 3953ffe..bc00f31 100644
--- a/gcr/gcr-parser.c
+++ b/gcr/gcr-parser.c
@@ -1535,7 +1535,7 @@ gcr_parser_add_password (GcrParser *self, const gchar *password)
}
gboolean
-gcr_parser_parse_data (GcrParser *self, const guchar *data,
+gcr_parser_parse_data (GcrParser *self, gconstpointer data,
gsize n_data, GError **err)
{
ForeachArgs args = { self, data, n_data, GCR_ERROR_UNRECOGNIZED };
diff --git a/gcr/gcr-parser.h b/gcr/gcr-parser.h
index d7ef25b..4d9bc10 100644
--- a/gcr/gcr-parser.h
+++ b/gcr/gcr-parser.h
@@ -75,7 +75,7 @@ gboolean gcr_parser_format_supported (GcrParser *self,
gint format);
gboolean gcr_parser_parse_data (GcrParser *self,
- const guchar *data,
+ gconstpointer data,
gsize n_data,
GError **err);
diff --git a/gcr/tests/Makefile.am b/gcr/tests/Makefile.am
index fab95d8..1e57e92 100644
--- a/gcr/tests/Makefile.am
+++ b/gcr/tests/Makefile.am
@@ -1,70 +1,48 @@
-# Test files should be listed in order they need to run
-TESTING_FILES = \
- test-certificate.c \
- test-certificate-chain.c \
- test-simple-certificate.c \
- test-pkcs11-certificate.c \
- test-trust.c \
- unit-test-parser.c
+INCLUDES = \
+ -I$(top_srcdir)/egg \
+ -I$(top_srcdir)/gcr \
+ -DSRCDIR=$(srcdir) \
+ -DGCR_API_SUBJECT_TO_CHANGE \
+ -DGCK_API_SUBJECT_TO_CHANGE \
+ $(GLIB_CFLAGS) \
+ $(GTK_CFLAGS) \
+ $(LIBGCRYPT_CFLAGS)
-TESTING_LIBS = \
+LDADD = \
$(top_builddir)/gcr/libgcr GCR_VERSION_SUFFIX@.la \
$(top_builddir)/egg/libegg.la \
$(top_builddir)/egg/libegg-entry-buffer.la \
- $(top_builddir)/gck/libgck.la
-
-TESTING_FLAGS = \
- -DGCR_API_SUBJECT_TO_CHANGE \
- -DGCK_API_SUBJECT_TO_CHANGE
-
-include $(top_srcdir)/testing/testing.make
-
-EXTRA_DIST += \
- test-data
-
-# ------------------------------------------------------------------
-
-noinst_PROGRAMS += \
- ui-test-certificate \
- ui-test-key \
- ui-test-unlock-options
-
-ui_test_certificate_SOURCES = \
- ui-test-certificate.c
-
-ui_test_certificate_CFLAGS = \
- -DGCR_API_SUBJECT_TO_CHANGE \
- $(GTK_CFLAGS)
-
-ui_test_certificate_LDADD = \
- $(top_builddir)/gcr/libgcr GCR_VERSION_SUFFIX@.la \
$(top_builddir)/gck/libgck.la \
$(GTK_LIBS) \
- $(LIBGCRYPT_LIBS)
+ $(GLIB_LIBS) \
+ $(LIBGCRYT_LIBS)
-ui_test_unlock_options_SOURCES = \
- ui-test-unlock-options.c
+TEST_PROGS = \
+ test-certificate \
+ test-certificate-chain \
+ test-pkcs11-certificate \
+ test-simple-certificate \
+ test-trust \
+ test-parser
-ui_test_unlock_options_CFLAGS = \
- -DGCR_API_SUBJECT_TO_CHANGE \
- $(GTK_CFLAGS)
+check_PROGRAMS = $(TEST_PROGS)
-ui_test_unlock_options_LDADD = \
- $(top_builddir)/gcr/libgcr GCR_VERSION_SUFFIX@.la \
- $(top_builddir)/gck/libgck.la \
- $(GTK_LIBS) \
- $(LIBGCRYPT_LIBS)
+test: $(TEST_PROGS)
+ SRCDIR='$(srcdir)' gtester -k --verbose ${TEST_PROGS}
-ui_test_key_SOURCES = \
- ui-test-key.c
+check-local: test
-ui_test_key_CFLAGS = \
- -DGCR_API_SUBJECT_TO_CHANGE \
- $(GTK_CFLAGS)
+if WITH_TESTS
+all-local: $(check_PROGRAMS)
+endif
-ui_test_key_LDADD = \
- $(top_builddir)/gcr/libgcr GCR_VERSION_SUFFIX@.la \
- $(top_builddir)/gck/libgck.la \
- $(GTK_LIBS) \
- $(LIBGCRYPT_LIBS)
+EXTRA_DIST = \
+ test-data
+
+# ------------------------------------------------------------------
+
+noinst_PROGRAMS = \
+ frob-certificate \
+ frob-key \
+ frob-unlock-options
diff --git a/gcr/tests/test-data/RSA_Root_Certificate_1.pem b/gcr/tests/files/RSA_Root_Certificate_1.pem
similarity index 100%
rename from gcr/tests/test-data/RSA_Root_Certificate_1.pem
rename to gcr/tests/files/RSA_Root_Certificate_1.pem
diff --git a/gcr/tests/test-data/RSA_Security_1024_v3.pem b/gcr/tests/files/RSA_Security_1024_v3.pem
similarity index 100%
rename from gcr/tests/test-data/RSA_Security_1024_v3.pem
rename to gcr/tests/files/RSA_Security_1024_v3.pem
diff --git a/gcr/tests/test-data/RSA_Security_2048_v3.pem b/gcr/tests/files/RSA_Security_2048_v3.pem
similarity index 100%
rename from gcr/tests/test-data/RSA_Security_2048_v3.pem
rename to gcr/tests/files/RSA_Security_2048_v3.pem
diff --git a/gcr/tests/test-data/Thawte_Personal_Basic_CA.pem b/gcr/tests/files/Thawte_Personal_Basic_CA.pem
similarity index 100%
rename from gcr/tests/test-data/Thawte_Personal_Basic_CA.pem
rename to gcr/tests/files/Thawte_Personal_Basic_CA.pem
diff --git a/gcr/tests/test-data/Thawte_Personal_Freemail_CA.pem b/gcr/tests/files/Thawte_Personal_Freemail_CA.pem
similarity index 100%
rename from gcr/tests/test-data/Thawte_Personal_Freemail_CA.pem
rename to gcr/tests/files/Thawte_Personal_Freemail_CA.pem
diff --git a/gcr/tests/test-data/Thawte_Personal_Premium_CA.pem b/gcr/tests/files/Thawte_Personal_Premium_CA.pem
similarity index 100%
rename from gcr/tests/test-data/Thawte_Personal_Premium_CA.pem
rename to gcr/tests/files/Thawte_Personal_Premium_CA.pem
diff --git a/gcr/tests/test-data/Thawte_Premium_Server_CA.pem b/gcr/tests/files/Thawte_Premium_Server_CA.pem
similarity index 100%
rename from gcr/tests/test-data/Thawte_Premium_Server_CA.pem
rename to gcr/tests/files/Thawte_Premium_Server_CA.pem
diff --git a/gcr/tests/test-data/Thawte_Server_CA.pem b/gcr/tests/files/Thawte_Server_CA.pem
similarity index 100%
rename from gcr/tests/test-data/Thawte_Server_CA.pem
rename to gcr/tests/files/Thawte_Server_CA.pem
diff --git a/gcr/tests/test-data/Thawte_Time_Stamping_CA.pem b/gcr/tests/files/Thawte_Time_Stamping_CA.pem
similarity index 100%
rename from gcr/tests/test-data/Thawte_Time_Stamping_CA.pem
rename to gcr/tests/files/Thawte_Time_Stamping_CA.pem
diff --git a/gcr/tests/test-data/ca-certificates.crt b/gcr/tests/files/ca-certificates.crt
similarity index 100%
rename from gcr/tests/test-data/ca-certificates.crt
rename to gcr/tests/files/ca-certificates.crt
diff --git a/gcr/tests/test-data/cacert.org.pem b/gcr/tests/files/cacert.org.pem
similarity index 100%
rename from gcr/tests/test-data/cacert.org.pem
rename to gcr/tests/files/cacert.org.pem
diff --git a/gcr/tests/test-data/collabora-ca.cer b/gcr/tests/files/collabora-ca.cer
similarity index 100%
rename from gcr/tests/test-data/collabora-ca.cer
rename to gcr/tests/files/collabora-ca.cer
diff --git a/gcr/tests/test-data/der-certificate-dsa.cer b/gcr/tests/files/der-certificate-dsa.cer
similarity index 100%
rename from gcr/tests/test-data/der-certificate-dsa.cer
rename to gcr/tests/files/der-certificate-dsa.cer
diff --git a/gcr/tests/test-data/der-certificate.crt b/gcr/tests/files/der-certificate.crt
similarity index 100%
rename from gcr/tests/test-data/der-certificate.crt
rename to gcr/tests/files/der-certificate.crt
diff --git a/gcr/tests/test-data/der-dsa-1024.key b/gcr/tests/files/der-dsa-1024.key
similarity index 100%
rename from gcr/tests/test-data/der-dsa-1024.key
rename to gcr/tests/files/der-dsa-1024.key
diff --git a/gcr/tests/test-data/der-pkcs8-PBE-MD5-DES.key b/gcr/tests/files/der-pkcs8-PBE-MD5-DES.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-PBE-MD5-DES.key
rename to gcr/tests/files/der-pkcs8-PBE-MD5-DES.key
diff --git a/gcr/tests/test-data/der-pkcs8-PBE-SHA1-3DES.key b/gcr/tests/files/der-pkcs8-PBE-SHA1-3DES.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-PBE-SHA1-3DES.key
rename to gcr/tests/files/der-pkcs8-PBE-SHA1-3DES.key
diff --git a/gcr/tests/test-data/der-pkcs8-PBE-SHA1-DES.key b/gcr/tests/files/der-pkcs8-PBE-SHA1-DES.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-PBE-SHA1-DES.key
rename to gcr/tests/files/der-pkcs8-PBE-SHA1-DES.key
diff --git a/gcr/tests/test-data/der-pkcs8-PBE-SHA1-RC2-40.key b/gcr/tests/files/der-pkcs8-PBE-SHA1-RC2-40.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-PBE-SHA1-RC2-40.key
rename to gcr/tests/files/der-pkcs8-PBE-SHA1-RC2-40.key
diff --git a/gcr/tests/test-data/der-pkcs8-PBE-SHA1-RC4-128.key b/gcr/tests/files/der-pkcs8-PBE-SHA1-RC4-128.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-PBE-SHA1-RC4-128.key
rename to gcr/tests/files/der-pkcs8-PBE-SHA1-RC4-128.key
diff --git a/gcr/tests/test-data/der-pkcs8-dsa.key b/gcr/tests/files/der-pkcs8-dsa.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-dsa.key
rename to gcr/tests/files/der-pkcs8-dsa.key
diff --git a/gcr/tests/test-data/der-pkcs8-encrypted-pkcs5.key b/gcr/tests/files/der-pkcs8-encrypted-pkcs5.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-encrypted-pkcs5.key
rename to gcr/tests/files/der-pkcs8-encrypted-pkcs5.key
diff --git a/gcr/tests/test-data/der-pkcs8-v2-des.key b/gcr/tests/files/der-pkcs8-v2-des.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-v2-des.key
rename to gcr/tests/files/der-pkcs8-v2-des.key
diff --git a/gcr/tests/test-data/der-pkcs8-v2-des3.key b/gcr/tests/files/der-pkcs8-v2-des3.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8-v2-des3.key
rename to gcr/tests/files/der-pkcs8-v2-des3.key
diff --git a/gcr/tests/test-data/der-pkcs8.key b/gcr/tests/files/der-pkcs8.key
similarity index 100%
rename from gcr/tests/test-data/der-pkcs8.key
rename to gcr/tests/files/der-pkcs8.key
diff --git a/gcr/tests/test-data/der-rsa-1024.key b/gcr/tests/files/der-rsa-1024.key
similarity index 100%
rename from gcr/tests/test-data/der-rsa-1024.key
rename to gcr/tests/files/der-rsa-1024.key
diff --git a/gcr/tests/test-data/dhansak-collabora.cer b/gcr/tests/files/dhansak-collabora.cer
similarity index 100%
rename from gcr/tests/test-data/dhansak-collabora.cer
rename to gcr/tests/files/dhansak-collabora.cer
diff --git a/gcr/tests/test-data/email.p12 b/gcr/tests/files/email.p12
similarity index 100%
rename from gcr/tests/test-data/email.p12
rename to gcr/tests/files/email.p12
diff --git a/gcr/tests/test-data/pem-dsa-1024.key b/gcr/tests/files/pem-dsa-1024.key
similarity index 100%
rename from gcr/tests/test-data/pem-dsa-1024.key
rename to gcr/tests/files/pem-dsa-1024.key
diff --git a/gcr/tests/test-data/pem-pkcs8.key b/gcr/tests/files/pem-pkcs8.key
similarity index 100%
rename from gcr/tests/test-data/pem-pkcs8.key
rename to gcr/tests/files/pem-pkcs8.key
diff --git a/gcr/tests/test-data/pem-rsa-enc.key b/gcr/tests/files/pem-rsa-enc.key
similarity index 100%
rename from gcr/tests/test-data/pem-rsa-enc.key
rename to gcr/tests/files/pem-rsa-enc.key
diff --git a/gcr/tests/test-data/test-x509-swiss.p7b b/gcr/tests/files/test-x509-swiss.p7b
similarity index 100%
rename from gcr/tests/test-data/test-x509-swiss.p7b
rename to gcr/tests/files/test-x509-swiss.p7b
diff --git a/gcr/tests/test-data/unclient.p12 b/gcr/tests/files/unclient.p12
similarity index 100%
rename from gcr/tests/test-data/unclient.p12
rename to gcr/tests/files/unclient.p12
diff --git a/gcr/tests/ui-test-certificate.c b/gcr/tests/frob-certificate.c
similarity index 100%
rename from gcr/tests/ui-test-certificate.c
rename to gcr/tests/frob-certificate.c
diff --git a/gcr/tests/ui-test-key.c b/gcr/tests/frob-key.c
similarity index 100%
rename from gcr/tests/ui-test-key.c
rename to gcr/tests/frob-key.c
diff --git a/gcr/tests/frob-selector b/gcr/tests/frob-selector
new file mode 100755
index 0000000..310a6bf
--- /dev/null
+++ b/gcr/tests/frob-selector
@@ -0,0 +1,148 @@
+#! /bin/bash
+
+# frob-selector - temporary wrapper script for .libs/frob-selector
+# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu3
+#
+# The frob-selector program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+Xsed='/bin/sed -e 1s/^X//'
+sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
+
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command="(cd /data/projects/gnome-keyring/gcr/tests; { test -z \"\${LIBRARY_PATH+set}\" || unset LIBRARY_PATH || { LIBRARY_PATH=; export LIBRARY_PATH; }; }; { test -z \"\${COMPILER_PATH+set}\" || unset COMPILER_PATH || { COMPILER_PATH=; export COMPILER_PATH; }; }; { test -z \"\${GCC_EXEC_PREFIX+set}\" || unset GCC_EXEC_PREFIX || { GCC_EXEC_PREFIX=; export GCC_EXEC_PREFIX; }; }; { test -z \"\${LD_RUN_PATH+set}\" || unset LD_RUN_PATH || { LD_RUN_PATH=; export LD_RUN_PATH; }; }; LD_LIBRARY_PATH=/usr/lib/jvm/java-6-openjdk/jre/lib/i386/client:/usr/lib/jvm/java-6-openjdk/jre/lib/i386:/usr/lib/xulrunner-devel-2.0:/usr/lib/xulrunner-devel-2.0; export LD_LIBRARY_PATH; PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games; export PATH; gcc -Wall -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -g -O2 -g -O0 -Wall -DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_
DEPRECATED -DGTK_DISABLE_DEPRECATED -Wno-strict-aliasing -Wno-sign-compare -Werror -o \$progdir/\$file frob-selector.o -pthread ../../gcr/.libs/libgcr-3.so ../../egg/.libs/libegg.a ../../egg/.libs/libegg-entry-buffer.a ../../gck/.libs/libgck.so -L/usr/lib/i386-linux-gnu /usr/lib/libgtk-3.so /usr/lib/libgdk-3.so /usr/lib/i386-linux-gnu/libatk-1.0.so /usr/lib/libcairo-gobject.so /usr/lib/i386-linux-gnu/libgio-2.0.so /usr/lib/i386-linux-gnu/libpangoft2-1.0.so /usr/lib/i386-linux-gnu/libpangocairo-1.0.so -lgdk_pixbuf-2.0 -lm /usr/lib/libcairo.so /usr/lib/i386-linux-gnu/libpango-1.0.so /usr/lib/i386-linux-gnu/libfreetype.so -lfontconfig /usr/lib/i386-linux-gnu/libgobject-2.0.so /usr/lib/i386-linux-gnu/libgmodule-2.0.so /usr/lib/i386-linux-gnu/libgthread-2.0.so -lrt /usr/lib/i386-linux-gnu/libglib-2.0.so -pthread -Wl,-rpath -Wl,/data/projects/gnome-keyring/gcr/.libs -Wl,-rpath -Wl,/data/projects/gnome-keyring/gck/.libs)"
+
+# This environment variable determines our operation mode.
+if test "$libtool_install_magic" = "%%%MAGIC variable%%%"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='2.2.6b'
+ notinst_deplibs=' ../../gcr/libgcr-3.la ../../gck/libgck.la'
+else
+ # When we are sourced in execute mode, $file and $ECHO are already set.
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ ECHO="echo"
+ file="$0"
+ # Make sure echo works.
+ if test "X$1" = X--no-reexec; then
+ # Discard the --no-reexec flag, and continue.
+ shift
+ elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t'; then
+ # Yippee, $ECHO works!
+ :
+ else
+ # Restart under the correct shell, and then maybe $ECHO will work.
+ exec /bin/bash "$0" --no-reexec ${1+"$@"}
+ fi
+ fi
+
+ # Find the directory that this script lives in.
+ thisdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+ test "x$thisdir" = "x$file" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=`ls -ld "$file" | /bin/sed -n 's/.*-> //p'`
+ while test -n "$file"; do
+ destdir=`$ECHO "X$file" | $Xsed -e 's%/[^/]*$%%'`
+
+ # If there was a directory component, then change thisdir.
+ if test "x$destdir" != "x$file"; then
+ case "$destdir" in
+ [\\/]* | [A-Za-z]:[\\/]*) thisdir="$destdir" ;;
+ *) thisdir="$thisdir/$destdir" ;;
+ esac
+ fi
+
+ file=`$ECHO "X$file" | $Xsed -e 's%^.*/%%'`
+ file=`ls -ld "$thisdir/$file" | /bin/sed -n 's/.*-> //p'`
+ done
+
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=no
+ if test "$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR" = "yes"; then
+ # special case for '.'
+ if test "$thisdir" = "."; then
+ thisdir=`pwd`
+ fi
+ # remove .libs from thisdir
+ case "$thisdir" in
+ *[\\/].libs ) thisdir=`$ECHO "X$thisdir" | $Xsed -e 's%[\\/][^\\/]*$%%'` ;;
+ .libs ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=`cd "$thisdir" && pwd`
+ test -n "$absdir" && thisdir="$absdir"
+
+ program=lt-'frob-selector'
+ progdir="$thisdir/.libs"
+
+ if test ! -f "$progdir/$program" ||
+ { file=`ls -1dt "$progdir/$program" "$progdir/../$program" 2>/dev/null | /bin/sed 1q`; \
+ test "X$file" != "X$progdir/$program"; }; then
+
+ file="$$-$program"
+
+ if test ! -d "$progdir"; then
+ mkdir "$progdir"
+ else
+ rm -f "$progdir/$file"
+ fi
+
+ # relink executable if necessary
+ if test -n "$relink_command"; then
+ if relink_command_output=`eval $relink_command 2>&1`; then :
+ else
+ echo "$relink_command_output" >&2
+ rm -f "$progdir/$file"
+ exit 1
+ fi
+ fi
+
+ mv -f "$progdir/$file" "$progdir/$program" 2>/dev/null ||
+ { rm -f "$progdir/$program";
+ mv -f "$progdir/$file" "$progdir/$program"; }
+ rm -f "$progdir/$file"
+ fi
+
+ if test -f "$progdir/$program"; then
+ if test "$libtool_execute_magic" != "%%%MAGIC variable%%%"; then
+ # Run the actual program with our arguments.
+
+ exec "$progdir/$program" ${1+"$@"}
+
+ $ECHO "$0: cannot exec $program $*" 1>&2
+ exit 1
+ fi
+ else
+ # The program doesn't exist.
+ $ECHO "$0: error: \`$progdir/$program' does not exist" 1>&2
+ $ECHO "This script is just a wrapper for $program." 1>&2
+ echo "See the libtool documentation for more information." 1>&2
+ exit 1
+ fi
+fi
diff --git a/gcr/tests/ui-test-unlock-options.c b/gcr/tests/frob-unlock-options.c
similarity index 100%
rename from gcr/tests/ui-test-unlock-options.c
rename to gcr/tests/frob-unlock-options.c
diff --git a/gcr/tests/test-certificate-chain.c b/gcr/tests/test-certificate-chain.c
index 92284ec..1656262 100644
--- a/gcr/tests/test-certificate-chain.c
+++ b/gcr/tests/test-certificate-chain.c
@@ -1,13 +1,34 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/*
+ Copyright (C) 2010 Collabora Ltd
-#include "config.h"
-#include "test-suite.h"
+ The Gnome Keyring Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
-#include "egg/egg-asn1x.h"
-#include "egg/egg-asn1-defs.h"
+ The Gnome Keyring Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Gnome Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ Author: Stef Walter <stefw collabora co uk>
+*/
+
+#include "config.h"
#include "gcr/gcr.h"
#include "gcr/gcr-internal.h"
+#include "egg/egg-asn1x.h"
+#include "egg/egg-asn1-defs.h"
+#include "egg/egg-testing.h"
+
#include "gck/gck-mock.h"
#include "gck/gck-test.h"
@@ -16,6 +37,7 @@
#include <glib.h>
+#include <errno.h>
#include <string.h>
/* ---------------------------------------------------------------------------
@@ -42,7 +64,8 @@ typedef struct _MockCertificateClass {
static void mock_certificate_iface (GcrCertificateIface *iface);
G_DEFINE_TYPE_WITH_CODE (MockCertificate, mock_certificate, G_TYPE_OBJECT,
- G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, mock_certificate_iface));
+ G_IMPLEMENT_INTERFACE (GCR_TYPE_CERTIFICATE, mock_certificate_iface);
+);
static void
mock_certificate_init (MockCertificate *self)
@@ -95,16 +118,19 @@ mock_certificate_new (gconstpointer data, gsize n_data)
* TESTS
*/
-static GcrCertificate *cert_self = NULL;
-static GcrCertificate *cert_ca = NULL;
-static GcrCertificate *cert_signed = NULL;
-static CK_FUNCTION_LIST funcs;
+typedef struct {
+ GcrCertificate *cert_self;
+ GcrCertificate *cert_ca;
+ GcrCertificate *cert_signed;
+ CK_FUNCTION_LIST funcs;
+} Test;
-TESTING_SETUP (certificate_chain)
+static void
+setup (Test *test, gconstpointer unused)
{
GList *modules = NULL;
CK_FUNCTION_LIST_PTR f;
- guchar *contents;
+ gchar *contents;
gsize n_contents;
const gchar *uris[2];
CK_RV rv;
@@ -112,14 +138,14 @@ TESTING_SETUP (certificate_chain)
rv = gck_mock_C_GetFunctionList (&f);
gck_assert_cmprv (rv, ==, CKR_OK);
- memcpy (&funcs, f, sizeof (funcs));
+ memcpy (&test->funcs, f, sizeof (test->funcs));
/* Open a session */
- rv = (funcs.C_Initialize) (NULL);
+ rv = (test->funcs.C_Initialize) (NULL);
gck_assert_cmprv (rv, ==, CKR_OK);
g_assert (!modules);
- module = gck_module_new (&funcs, 0);
+ module = gck_module_new (&test->funcs, 0);
modules = g_list_prepend (modules, module);
gcr_pkcs11_set_modules (modules);
uris[0] = GCK_MOCK_SLOT_ONE_URI;
@@ -129,18 +155,21 @@ TESTING_SETUP (certificate_chain)
gck_list_unref_free (modules);
/* A self-signed certificate */
- contents = testing_data_read ("der-certificate.crt", &n_contents);
- cert_self = gcr_simple_certificate_new (contents, n_contents);
+ if (!g_file_get_contents ("files/der-certificate.crt", &contents, &n_contents, NULL))
+ g_assert_not_reached ();
+ test->cert_self = gcr_simple_certificate_new (contents, n_contents);
g_free (contents);
/* A signed certificate */
- contents = testing_data_read ("dhansak-collabora.cer", &n_contents);
- cert_signed = mock_certificate_new (contents, n_contents);
+ if (!g_file_get_contents ("files/dhansak-collabora.cer", &contents, &n_contents, NULL))
+ g_assert_not_reached ();
+ test->cert_signed = mock_certificate_new (contents, n_contents);
g_free (contents);
/* The signer for the above certificate */
- contents = testing_data_read ("collabora-ca.cer", &n_contents);
- cert_ca = mock_certificate_new (contents, n_contents);
+ if (!g_file_get_contents ("files/collabora-ca.cer", &contents, &n_contents, NULL))
+ g_assert_not_reached ();
+ test->cert_ca = mock_certificate_new (contents, n_contents);
g_free (contents);
}
@@ -208,24 +237,21 @@ add_pinned_to_module (GcrCertificate *certificate, const gchar *purpose, const g
gck_mock_module_take_object (attrs);
}
-TESTING_TEARDOWN (certificate_chain)
+static void
+teardown (Test *test, gconstpointer unused)
{
CK_RV rv;
- g_object_unref (cert_self);
- cert_self = NULL;
-
- g_object_unref (cert_signed);
- cert_signed = NULL;
-
- g_object_unref (cert_ca);
- cert_ca = NULL;
+ g_object_unref (test->cert_self);
+ g_object_unref (test->cert_signed);
+ g_object_unref (test->cert_ca);
- rv = (funcs.C_Finalize) (NULL);
+ rv = (test->funcs.C_Finalize) (NULL);
gck_assert_cmprv (rv, ==, CKR_OK);
}
-TESTING_TEST (certificate_chain_new)
+static void
+test_new (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
@@ -240,15 +266,16 @@ TESTING_TEST (certificate_chain_new)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_new_with_cert)
+static void
+test_new_with_cert (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GcrCertificate *check;
guint status, length;
chain = gcr_certificate_chain_new ();
- gcr_certificate_chain_add (chain, cert_signed);
- gcr_certificate_chain_add (chain, cert_ca);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ gcr_certificate_chain_add (chain, test->cert_ca);
g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
GCR_CERTIFICATE_CHAIN_UNKNOWN);
@@ -261,19 +288,20 @@ TESTING_TEST (certificate_chain_new_with_cert)
g_assert_cmpuint (length, ==, 2);
check = gcr_certificate_chain_get_certificate (chain, 1);
- g_assert (check == cert_ca);
+ g_assert (check == test->cert_ca);
/* Not yet completed */
check = gcr_certificate_chain_get_anchor (chain);
g_assert (check == NULL);
check = gcr_certificate_chain_get_endpoint (chain);
- g_assert (check == cert_signed);
+ g_assert (check == test->cert_signed);
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_selfsigned)
+static void
+test_selfsigned (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -281,7 +309,7 @@ TESTING_TEST (certificate_chain_selfsigned)
chain = gcr_certificate_chain_new ();
/* Add a self-signed certificate */
- gcr_certificate_chain_add (chain, cert_self);
+ gcr_certificate_chain_add (chain, test->cert_self);
if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
NULL, 0, NULL, &error))
@@ -294,7 +322,8 @@ TESTING_TEST (certificate_chain_selfsigned)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_incomplete)
+static void
+test_incomplete (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -302,7 +331,7 @@ TESTING_TEST (certificate_chain_incomplete)
chain = gcr_certificate_chain_new ();
/* Add a signed certificate */
- gcr_certificate_chain_add (chain, cert_signed);
+ gcr_certificate_chain_add (chain, test->cert_signed);
if (!gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
NULL, 0, NULL, &error))
@@ -315,7 +344,8 @@ TESTING_TEST (certificate_chain_incomplete)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_empty)
+static void
+test_empty (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -335,7 +365,8 @@ TESTING_TEST (certificate_chain_empty)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_trim_extras)
+static void
+test_trim_extras (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -343,8 +374,8 @@ TESTING_TEST (certificate_chain_trim_extras)
chain = gcr_certificate_chain_new ();
/* Add two unrelated certificates */
- gcr_certificate_chain_add (chain, cert_self);
- gcr_certificate_chain_add (chain, cert_signed);
+ gcr_certificate_chain_add (chain, test->cert_self);
+ gcr_certificate_chain_add (chain, test->cert_signed);
g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
@@ -365,10 +396,11 @@ fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
{
*((GAsyncResult**)user_data) = result;
g_object_ref (result);
- testing_wait_stop ();
+ egg_test_wait_stop ();
}
-TESTING_TEST (certificate_chain_complete_async)
+static void
+test_complete_async (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -377,13 +409,13 @@ TESTING_TEST (certificate_chain_complete_async)
chain = gcr_certificate_chain_new ();
/* Add a whole bunch of certificates */
- gcr_certificate_chain_add (chain, cert_signed);
- gcr_certificate_chain_add (chain, cert_ca);
- gcr_certificate_chain_add (chain, cert_self);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ gcr_certificate_chain_add (chain, test->cert_ca);
+ gcr_certificate_chain_add (chain, test->cert_self);
gcr_certificate_chain_build_async (chain, GCR_PURPOSE_CLIENT_AUTH,
NULL, 0, NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ egg_test_wait_until (500);
if (!gcr_certificate_chain_build_finish (chain, result, &error))
g_assert_not_reached ();
g_assert_no_error (error);
@@ -396,7 +428,8 @@ TESTING_TEST (certificate_chain_complete_async)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_with_anchor)
+static void
+test_with_anchor (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -404,9 +437,9 @@ TESTING_TEST (certificate_chain_with_anchor)
chain = gcr_certificate_chain_new ();
/* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, cert_signed);
- gcr_certificate_chain_add (chain, cert_ca);
- add_anchor_to_module (cert_ca, GCR_PURPOSE_CLIENT_AUTH);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ gcr_certificate_chain_add (chain, test->cert_ca);
+ add_anchor_to_module (test->cert_ca, GCR_PURPOSE_CLIENT_AUTH);
g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
@@ -418,12 +451,13 @@ TESTING_TEST (certificate_chain_with_anchor)
g_assert_cmpuint (gcr_certificate_chain_get_status (chain), ==,
GCR_CERTIFICATE_CHAIN_ANCHORED);
g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
- g_assert (gcr_certificate_chain_get_anchor (chain) == cert_ca);
+ g_assert (gcr_certificate_chain_get_anchor (chain) == test->cert_ca);
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_with_anchor_and_lookup_ca)
+static void
+test_with_anchor_and_lookup_ca (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -431,9 +465,9 @@ TESTING_TEST (certificate_chain_with_anchor_and_lookup_ca)
chain = gcr_certificate_chain_new ();
/* One signed certificate, with CA in pkcs11, and trust anchor */
- gcr_certificate_chain_add (chain, cert_signed);
- add_certificate_to_module (cert_ca);
- add_anchor_to_module (cert_ca, GCR_PURPOSE_CLIENT_AUTH);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ add_certificate_to_module (test->cert_ca);
+ add_anchor_to_module (test->cert_ca, GCR_PURPOSE_CLIENT_AUTH);
g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
@@ -450,7 +484,8 @@ TESTING_TEST (certificate_chain_with_anchor_and_lookup_ca)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_with_pinned)
+static void
+test_with_pinned (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -458,9 +493,9 @@ TESTING_TEST (certificate_chain_with_pinned)
chain = gcr_certificate_chain_new ();
/* One certificate, and add CA to pkcs11 */
- gcr_certificate_chain_add (chain, cert_signed);
- gcr_certificate_chain_add (chain, cert_ca);
- add_pinned_to_module (cert_signed, GCR_PURPOSE_CLIENT_AUTH, "pinned.example.com");
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ gcr_certificate_chain_add (chain, test->cert_ca);
+ add_pinned_to_module (test->cert_signed, GCR_PURPOSE_CLIENT_AUTH, "pinned.example.com");
g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 2);
@@ -478,7 +513,8 @@ TESTING_TEST (certificate_chain_with_pinned)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_without_lookups)
+static void
+test_without_lookups (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
@@ -486,8 +522,8 @@ TESTING_TEST (certificate_chain_without_lookups)
chain = gcr_certificate_chain_new ();
/* One certificate, and add CA to pkcs11 */
- gcr_certificate_chain_add (chain, cert_signed);
- add_certificate_to_module (cert_ca);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ add_certificate_to_module (test->cert_ca);
g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
@@ -506,19 +542,20 @@ TESTING_TEST (certificate_chain_without_lookups)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_with_lookup_error)
+static void
+test_with_lookup_error (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
/* Make the lookup fail */
- funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
+ test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
chain = gcr_certificate_chain_new ();
/* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, cert_signed);
- add_certificate_to_module (cert_ca);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ add_certificate_to_module (test->cert_ca);
g_assert_cmpuint (gcr_certificate_chain_get_length (chain), ==, 1);
@@ -534,19 +571,20 @@ TESTING_TEST (certificate_chain_with_lookup_error)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_with_anchor_error)
+static void
+test_with_anchor_error (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
/* Make the lookup fail */
- funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
+ test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
chain = gcr_certificate_chain_new ();
/* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, cert_signed);
- add_certificate_to_module (cert_ca);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ add_certificate_to_module (test->cert_ca);
if (gcr_certificate_chain_build (chain, GCR_PURPOSE_CLIENT_AUTH,
NULL, 0, NULL, &error))
@@ -560,24 +598,25 @@ TESTING_TEST (certificate_chain_with_anchor_error)
g_object_unref (chain);
}
-TESTING_TEST (certificate_chain_with_anchor_error_async)
+static void
+test_with_anchor_error_async (Test *test, gconstpointer unused)
{
GcrCertificateChain *chain;
GError *error = NULL;
GAsyncResult *result;
/* Make the lookup fail */
- funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
+ test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
chain = gcr_certificate_chain_new ();
/* Two certificates in chain with ca trust anchor */
- gcr_certificate_chain_add (chain, cert_signed);
- add_certificate_to_module (cert_ca);
+ gcr_certificate_chain_add (chain, test->cert_signed);
+ add_certificate_to_module (test->cert_ca);
gcr_certificate_chain_build_async (chain, GCR_PURPOSE_CLIENT_AUTH,
NULL, 0, NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ egg_test_wait_until (500);
if (gcr_certificate_chain_build_finish (chain, result, &error))
g_assert_not_reached ();
g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
@@ -589,3 +628,33 @@ TESTING_TEST (certificate_chain_with_anchor_error_async)
g_object_unref (chain);
}
+
+int
+main (int argc, char **argv)
+{
+ const gchar *srcdir;
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ srcdir = g_getenv ("SRCDIR");
+ if (srcdir && chdir (srcdir) < 0)
+ g_error ("couldn't change directory to: %s: %s", srcdir, g_strerror (errno));
+
+ g_test_add ("/gcr/certificate-chain/new", Test, NULL, setup, test_new, teardown);
+ g_test_add ("/gcr/certificate-chain/new_with_cert", Test, NULL, setup, test_new_with_cert, teardown);
+ g_test_add ("/gcr/certificate-chain/selfsigned", Test, NULL, setup, test_selfsigned, teardown);
+ g_test_add ("/gcr/certificate-chain/incomplete", Test, NULL, setup, test_incomplete, teardown);
+ g_test_add ("/gcr/certificate-chain/empty", Test, NULL, setup, test_empty, teardown);
+ g_test_add ("/gcr/certificate-chain/trim_extras", Test, NULL, setup, test_trim_extras, teardown);
+ g_test_add ("/gcr/certificate-chain/complete_async", Test, NULL, setup, test_complete_async, teardown);
+ g_test_add ("/gcr/certificate-chain/with_anchor", Test, NULL, setup, test_with_anchor, teardown);
+ g_test_add ("/gcr/certificate-chain/with_anchor_and_lookup_ca", Test, NULL, setup, test_with_anchor_and_lookup_ca, teardown);
+ g_test_add ("/gcr/certificate-chain/with_pinned", Test, NULL, setup, test_with_pinned, teardown);
+ g_test_add ("/gcr/certificate-chain/without_lookups", Test, NULL, setup, test_without_lookups, teardown);
+ g_test_add ("/gcr/certificate-chain/with_lookup_error", Test, NULL, setup, test_with_lookup_error, teardown);
+ g_test_add ("/gcr/certificate-chain/with_anchor_error", Test, NULL, setup, test_with_anchor_error, teardown);
+ g_test_add ("/gcr/certificate-chain/with_anchor_error_async", Test, NULL, setup, test_with_anchor_error_async, teardown);
+
+ return egg_tests_run_in_thread_with_loop ();
+}
diff --git a/gcr/tests/test-certificate.c b/gcr/tests/test-certificate.c
index ec84c2f..89d1741 100644
--- a/gcr/tests/test-certificate.c
+++ b/gcr/tests/test-certificate.c
@@ -1,144 +1,180 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
+/*
+ Copyright (C) 2010 Collabora Ltd
+
+ The Gnome Keyring Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public License as
+ published by the Free Software Foundation; either version 2 of the
+ License, or (at your option) any later version.
+
+ The Gnome Keyring Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with the Gnome Library; see the file COPYING.LIB. If not,
+ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+ Author: Stef Walter <stefw collabora co uk>
+*/
#include "config.h"
-#include "test-suite.h"
#include "gcr/gcr.h"
#include "gcr/gcr-internal.h"
+#include "egg/egg-testing.h"
+
#include <glib.h>
+#include <errno.h>
#include <string.h>
-static GcrCertificate *certificate = NULL;
-static GcrCertificate *dsa_cert = NULL;
-static GcrCertificate *dhansak_cert = NULL;
+typedef struct {
+ GcrCertificate *certificate;
+ GcrCertificate *dsa_cert;
+ GcrCertificate *dhansak_cert;
+} Test;
-TESTING_SETUP(certificate)
+static void
+setup (Test *test, gconstpointer unused)
{
- guchar *contents;
+ gchar *contents;
gsize n_contents;
- contents = testing_data_read ("der-certificate.crt", &n_contents);
- certificate = gcr_simple_certificate_new (contents, n_contents);
- g_assert (certificate);
+ if (!g_file_get_contents ("files/der-certificate.crt", &contents, &n_contents, NULL))
+ g_assert_not_reached ();
+ test->certificate = gcr_simple_certificate_new (contents, n_contents);
+ g_assert (test->certificate);
g_free (contents);
- contents = testing_data_read ("der-certificate-dsa.cer", &n_contents);
- dsa_cert = gcr_simple_certificate_new (contents, n_contents);
- g_assert (dsa_cert);
+ if (!g_file_get_contents ("files/der-certificate-dsa.cer", &contents, &n_contents, NULL))
+ g_assert_not_reached ();
+ test->dsa_cert = gcr_simple_certificate_new (contents, n_contents);
+ g_assert (test->dsa_cert);
g_free (contents);
- contents = testing_data_read ("dhansak-collabora.cer", &n_contents);
- dhansak_cert = gcr_simple_certificate_new (contents, n_contents);
- g_assert (certificate);
+ if (!g_file_get_contents ("files/dhansak-collabora.cer", &contents, &n_contents, NULL))
+ g_assert_not_reached ();
+ test->dhansak_cert = gcr_simple_certificate_new (contents, n_contents);
+ g_assert (test->certificate);
g_free (contents);
}
-TESTING_TEARDOWN(certificate)
+static void
+teardown (Test *test, gconstpointer unused)
{
- g_object_unref (certificate);
- certificate = NULL;
- g_object_unref (dsa_cert);
- dsa_cert = NULL;
- g_object_unref (dhansak_cert);
- dhansak_cert = NULL;
+ g_object_unref (test->certificate);
+ g_object_unref (test->dsa_cert);
+ g_object_unref (test->dhansak_cert);
}
-TESTING_TEST(issuer_cn)
+static void
+test_issuer_cn (Test *test, gconstpointer unused)
{
- gchar *cn = gcr_certificate_get_issuer_cn (certificate);
+ gchar *cn = gcr_certificate_get_issuer_cn (test->certificate);
g_assert (cn);
g_assert_cmpstr (cn, ==, "http://www.valicert.com/");
g_free (cn);
}
-TESTING_TEST(issuer_dn)
+static void
+test_issuer_dn (Test *test, gconstpointer unused)
{
- gchar *dn = gcr_certificate_get_issuer_dn (certificate);
+ gchar *dn = gcr_certificate_get_issuer_dn (test->certificate);
g_assert (dn);
g_assert_cmpstr (dn, ==, "L=ValiCert Validation Network, O=ValiCert, Inc., OU=ValiCert Class 3 Policy Validation Authority, CN=http://www.valicert.com/, EMAIL=info valicert com");
g_free (dn);
}
-TESTING_TEST(issuer_part)
+static void
+test_issuer_part (Test *test, gconstpointer unused)
{
- gchar *part = gcr_certificate_get_issuer_part (certificate, "l");
+ gchar *part = gcr_certificate_get_issuer_part (test->certificate, "l");
g_assert (part);
g_assert_cmpstr (part, ==, "ValiCert Validation Network");
g_free (part);
}
-TESTING_TEST(issuer_raw)
+static void
+test_issuer_raw (Test *test, gconstpointer unused)
{
gpointer der;
gsize n_der;
- der = gcr_certificate_get_issuer_raw (certificate, &n_der);
+ der = gcr_certificate_get_issuer_raw (test->certificate, &n_der);
g_assert (der);
- g_assert_cmpsize (n_der, ==, 190);
+ egg_assert_cmpsize (n_der, ==, 190);
g_free (der);
}
-TESTING_TEST(subject_cn)
+static void
+test_subject_cn (Test *test, gconstpointer unused)
{
- gchar *cn = gcr_certificate_get_subject_cn (certificate);
+ gchar *cn = gcr_certificate_get_subject_cn (test->certificate);
g_assert (cn);
g_assert_cmpstr (cn, ==, "http://www.valicert.com/");
g_free (cn);
- cn = gcr_certificate_get_subject_cn (dhansak_cert);
+ cn = gcr_certificate_get_subject_cn (test->dhansak_cert);
g_assert (cn);
g_assert_cmpstr (cn, ==, "dhansak.collabora.co.uk");
g_free (cn);
}
-TESTING_TEST(subject_dn)
+static void
+test_subject_dn (Test *test, gconstpointer unused)
{
- gchar *dn = gcr_certificate_get_subject_dn (certificate);
+ gchar *dn = gcr_certificate_get_subject_dn (test->certificate);
g_assert (dn);
g_assert_cmpstr (dn, ==, "L=ValiCert Validation Network, O=ValiCert, Inc., OU=ValiCert Class 3 Policy Validation Authority, CN=http://www.valicert.com/, EMAIL=info valicert com");
g_free (dn);
- dn = gcr_certificate_get_subject_dn (dhansak_cert);
+ dn = gcr_certificate_get_subject_dn (test->dhansak_cert);
g_assert (dn);
g_assert_cmpstr (dn, ==, "CN=dhansak.collabora.co.uk, EMAIL=sysadmin collabora co uk");
g_free (dn);
}
-TESTING_TEST(subject_part)
+static void
+test_subject_part (Test *test, gconstpointer unused)
{
- gchar *part = gcr_certificate_get_subject_part (certificate, "OU");
+ gchar *part = gcr_certificate_get_subject_part (test->certificate, "OU");
g_assert (part);
g_assert_cmpstr (part, ==, "ValiCert Class 3 Policy Validation Authority");
g_free (part);
- part = gcr_certificate_get_subject_part (dhansak_cert, "EMAIL");
+ part = gcr_certificate_get_subject_part (test->dhansak_cert, "EMAIL");
g_assert (part);
g_assert_cmpstr (part, ==, "sysadmin collabora co uk");
g_free (part);
}
-TESTING_TEST(subject_raw)
+static void
+test_subject_raw (Test *test, gconstpointer unused)
{
gpointer der;
gsize n_der;
- der = gcr_certificate_get_subject_raw (certificate, &n_der);
+ der = gcr_certificate_get_subject_raw (test->certificate, &n_der);
g_assert (der);
- g_assert_cmpsize (n_der, ==, 190);
+ egg_assert_cmpsize (n_der, ==, 190);
g_free (der);
- der = gcr_certificate_get_subject_raw (dhansak_cert, &n_der);
+ der = gcr_certificate_get_subject_raw (test->dhansak_cert, &n_der);
g_assert (der);
- g_assert_cmpsize (n_der, ==, 77);
+ egg_assert_cmpsize (n_der, ==, 77);
g_free (der);
}
-TESTING_TEST(issued_date)
+static void
+test_issued_date (Test *test, gconstpointer unused)
{
- GDate *date = gcr_certificate_get_issued_date (certificate);
+ GDate *date = gcr_certificate_get_issued_date (test->certificate);
g_assert (date);
g_assert_cmpuint (g_date_get_year (date), ==, 1999);
g_assert_cmpuint (g_date_get_month (date), ==, 6);
@@ -146,9 +182,10 @@ TESTING_TEST(issued_date)
g_date_free (date);
}
-TESTING_TEST(expiry_date)
+static void
+test_expiry_date (Test *test, gconstpointer unused)
{
- GDate *date = gcr_certificate_get_expiry_date (certificate);
+ GDate *date = gcr_certificate_get_expiry_date (test->certificate);
g_assert (date);
g_assert_cmpuint (g_date_get_year (date), ==, 2019);
g_assert_cmpuint (g_date_get_month (date), ==, 6);
@@ -156,56 +193,92 @@ TESTING_TEST(expiry_date)
g_date_free (date);
}
-TESTING_TEST(serial_number)
+static void
+test_serial_number (Test *test, gconstpointer unused)
{
gsize n_serial;
guchar *serial;
gchar *hex;
- serial = gcr_certificate_get_serial_number (certificate, &n_serial);
+ serial = gcr_certificate_get_serial_number (test->certificate, &n_serial);
g_assert (serial);
g_assert_cmpuint (n_serial, ==, 1);
g_assert (memcmp (serial, "\1", n_serial) == 0);
g_free (serial);
- hex = gcr_certificate_get_serial_number_hex (certificate);
+ hex = gcr_certificate_get_serial_number_hex (test->certificate);
g_assert (hex);
g_assert_cmpstr (hex, ==, "01");
g_free (hex);
}
-TESTING_TEST(fingerprint)
+static void
+test_fingerprint (Test *test, gconstpointer unused)
{
gsize n_print;
- guchar *print = gcr_certificate_get_fingerprint (certificate, G_CHECKSUM_MD5, &n_print);
+ guchar *print = gcr_certificate_get_fingerprint (test->certificate, G_CHECKSUM_MD5, &n_print);
g_assert (print);
g_assert_cmpuint (n_print, ==, g_checksum_type_get_length (G_CHECKSUM_MD5));
g_assert (memcmp (print, "\xa2\x6f\x53\xb7\xee\x40\xdb\x4a\x68\xe7\xfa\x18\xd9\x10\x4b\x72", n_print) == 0);
g_free (print);
}
-TESTING_TEST(fingerprint_hex)
+static void
+test_fingerprint_hex (Test *test, gconstpointer unused)
{
- gchar *print = gcr_certificate_get_fingerprint_hex (certificate, G_CHECKSUM_MD5);
+ gchar *print = gcr_certificate_get_fingerprint_hex (test->certificate, G_CHECKSUM_MD5);
g_assert (print);
g_assert_cmpstr (print, ==, "A2 6F 53 B7 EE 40 DB 4A 68 E7 FA 18 D9 10 4B 72");
g_free (print);
}
-TESTING_TEST (certificate_key_size)
+static void
+test_certificate_key_size (Test *test, gconstpointer unused)
{
- guint key_size = gcr_certificate_get_key_size (certificate);
+ guint key_size = gcr_certificate_get_key_size (test->certificate);
g_assert_cmpuint (key_size, ==, 1024);
- key_size = gcr_certificate_get_key_size (dsa_cert);
+ key_size = gcr_certificate_get_key_size (test->dsa_cert);
g_assert_cmpuint (key_size, ==, 1024);
}
-TESTING_TEST (certificate_is_issuer)
+static void
+test_certificate_is_issuer (Test *test, gconstpointer unused)
{
- gboolean ret = gcr_certificate_is_issuer (certificate, certificate);
+ gboolean ret = gcr_certificate_is_issuer (test->certificate, test->certificate);
g_assert (ret == TRUE);
- ret = gcr_certificate_is_issuer (certificate, dsa_cert);
+ ret = gcr_certificate_is_issuer (test->certificate, test->dsa_cert);
g_assert (ret == FALSE);
}
+
+int
+main (int argc, char **argv)
+{
+ const gchar *srcdir;
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ srcdir = g_getenv ("SRCDIR");
+ if (srcdir && chdir (srcdir) < 0)
+ g_error ("couldn't change directory to: %s: %s", srcdir, g_strerror (errno));
+
+ g_test_add ("/gcr/certificate/issuer_cn", Test, NULL, setup, test_issuer_cn, teardown);
+ g_test_add ("/gcr/certificate/issuer_dn", Test, NULL, setup, test_issuer_dn, teardown);
+ g_test_add ("/gcr/certificate/issuer_part", Test, NULL, setup, test_issuer_part, teardown);
+ g_test_add ("/gcr/certificate/issuer_raw", Test, NULL, setup, test_issuer_raw, teardown);
+ g_test_add ("/gcr/certificate/subject_cn", Test, NULL, setup, test_subject_cn, teardown);
+ g_test_add ("/gcr/certificate/subject_dn", Test, NULL, setup, test_subject_dn, teardown);
+ g_test_add ("/gcr/certificate/subject_part", Test, NULL, setup, test_subject_part, teardown);
+ g_test_add ("/gcr/certificate/subject_raw", Test, NULL, setup, test_subject_raw, teardown);
+ g_test_add ("/gcr/certificate/issued_date", Test, NULL, setup, test_issued_date, teardown);
+ g_test_add ("/gcr/certificate/expiry_date", Test, NULL, setup, test_expiry_date, teardown);
+ g_test_add ("/gcr/certificate/serial_number", Test, NULL, setup, test_serial_number, teardown);
+ g_test_add ("/gcr/certificate/fingerprint", Test, NULL, setup, test_fingerprint, teardown);
+ g_test_add ("/gcr/certificate/fingerprint_hex", Test, NULL, setup, test_fingerprint_hex, teardown);
+ g_test_add ("/gcr/certificate/certificate_key_size", Test, NULL, setup, test_certificate_key_size, teardown);
+ g_test_add ("/gcr/certificate/certificate_is_issuer", Test, NULL, setup, test_certificate_is_issuer, teardown);
+
+ return g_test_run ();
+}
diff --git a/gcr/tests/unit-test-parser.c b/gcr/tests/test-parser.c
similarity index 54%
rename from gcr/tests/unit-test-parser.c
rename to gcr/tests/test-parser.c
index b8bfd88..ae2c466 100644
--- a/gcr/tests/unit-test-parser.c
+++ b/gcr/tests/test-parser.c
@@ -23,8 +23,6 @@
#include "config.h"
-#include "test-suite.h"
-
#include "egg/egg-error.h"
#include "egg/egg-secure-memory.h"
@@ -36,25 +34,28 @@
#include <glib.h>
#include <gcrypt.h>
+#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-/*
+/*
* Each test looks like (on one line):
* void unit_test_xxxxx (CuTest* cu)
- *
+ *
* Each setup looks like (on one line):
* void unit_setup_xxxxx (void);
- *
+ *
* Each teardown looks like (on one line):
* void unit_teardown_xxxxx (void);
- *
+ *
* Tests be run in the order specified here.
*/
-static GcrParser *parser = NULL;
-static const gchar* filedesc = NULL;
+typedef struct {
+ GcrParser *parser;
+ gchar* filedesc;
+} Test;
static void
parsed_item (GcrParser *par, gpointer user_data)
@@ -62,59 +63,62 @@ parsed_item (GcrParser *par, gpointer user_data)
GckAttributes *attrs;
const gchar *description;
const gchar *label;
-
+ Test *test = user_data;
+
g_assert (GCR_IS_PARSER (par));
- g_assert (par == parser);
- g_assert (par == user_data);
-
- attrs = gcr_parser_get_parsed_attributes (parser);
- description = gcr_parser_get_parsed_description (parser);
- label = gcr_parser_get_parsed_label (parser);
-
- g_print ("parsed %s '%s' at: %s\n", description, label, filedesc);
+ g_assert (par == test->parser);
+
+ attrs = gcr_parser_get_parsed_attributes (test->parser);
+ description = gcr_parser_get_parsed_description (test->parser);
+ label = gcr_parser_get_parsed_label (test->parser);
+
+ g_print ("parsed %s '%s' at: %s\n", description, label, test->filedesc);
}
static gboolean
-authenticate (GcrParser *par, gint state, gpointer user_data)
+authenticate (GcrParser *par, gint state, gpointer user_data)
{
+ Test *test = user_data;
+
g_assert (GCR_IS_PARSER (par));
- g_assert (par == parser);
- g_assert (par == user_data);
+ g_assert (par == test->parser);
switch (state) {
case 0:
- gcr_parser_add_password (parser, "booo");
+ gcr_parser_add_password (test->parser, "booo");
return TRUE;
default:
- g_printerr ("decryption didn't work for: %s", filedesc);
- g_assert (FALSE);
+ g_printerr ("decryption didn't work for: %s", test->filedesc);
+ g_assert_not_reached ();
return FALSE;
};
-}
+}
-TESTING_SETUP(parser)
+static void
+setup (Test *test, gconstpointer unused)
{
- parser = gcr_parser_new ();
- g_signal_connect (parser, "parsed", G_CALLBACK (parsed_item), parser);
- g_signal_connect (parser, "authenticate", G_CALLBACK (authenticate), parser);
+ test->parser = gcr_parser_new ();
+ g_signal_connect (test->parser, "parsed", G_CALLBACK (parsed_item), test);
+ g_signal_connect (test->parser, "authenticate", G_CALLBACK (authenticate), test);
}
-TESTING_TEARDOWN(parser)
+static void
+teardown (Test *test, gconstpointer unused)
{
- g_object_unref (parser);
- parser = NULL;
+ g_object_unref (test->parser);
}
-TESTING_TEST(parse_all)
+static void
+test_parse_all (Test *test, gconstpointer unused)
{
- guchar *contents;
+ gchar *contents;
GError *err = NULL;
gboolean result;
const gchar *filename;
gsize len;
GDir *dir;
-
- dir = g_dir_open (testing_data_directory (), 0, NULL);
+
+ dir = g_dir_open ("files", 0, NULL);
g_assert (dir);
for (;;) {
@@ -123,20 +127,41 @@ TESTING_TEST(parse_all)
break;
if (filename[0] == '.')
continue;
-
- filedesc = filename;
- contents = testing_data_read (filename, &len);
-
- result = gcr_parser_parse_data (parser, contents, len, &err);
+
+ test->filedesc = g_build_filename ("files", filename, NULL);
+ if (!g_file_get_contents (test->filedesc, &contents, &len, NULL))
+ g_assert_not_reached ();
+
+ result = gcr_parser_parse_data (test->parser, contents, len, &err);
g_free (contents);
- if (!result) {
- g_warning ("couldn't parse file data: %s: %s",
+ if (!result) {
+ g_warning ("couldn't parse file data: %s: %s",
filename, egg_error_message (err));
g_error_free (err);
- g_assert (FALSE);
+ g_assert_not_reached ();
}
+
+ g_free (test->filedesc);
+ test->filedesc = NULL;
}
-
+
g_dir_close (dir);
}
+
+int
+main (int argc, char **argv)
+{
+ const gchar *srcdir;
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ srcdir = g_getenv ("SRCDIR");
+ if (srcdir && chdir (srcdir) < 0)
+ g_error ("couldn't change directory to: %s: %s", srcdir, g_strerror (errno));
+
+ g_test_add ("/gcr/parser/parse_all", Test, NULL, setup, test_parse_all, teardown);
+
+ return g_test_run ();
+}
diff --git a/gcr/tests/test-pkcs11-certificate.c b/gcr/tests/test-pkcs11-certificate.c
index beb0bd4..52379aa 100644
--- a/gcr/tests/test-pkcs11-certificate.c
+++ b/gcr/tests/test-pkcs11-certificate.c
@@ -22,14 +22,14 @@
#include "config.h"
-#include "test-suite.h"
-
#include "egg/egg-asn1x.h"
#include "egg/egg-asn1-defs.h"
#include "gcr.h"
#include "gcr/gcr-internal.h"
+#include "egg/egg-testing.h"
+
#include "gck/gck-mock.h"
#include "gck/gck-test.h"
@@ -37,13 +37,18 @@
#include <glib.h>
-static gpointer cert_data = NULL;
-static gsize n_cert_data = 0;
-static gpointer cert2_data = NULL;
-static gsize n_cert2_data = 0;
-static CK_FUNCTION_LIST funcs;
+#include <errno.h>
+
+typedef struct {
+ gpointer cert_data;
+ gsize n_cert_data;
+ gpointer cert2_data;
+ gsize n_cert2_data;
+ CK_FUNCTION_LIST funcs;
+} Test;
-TESTING_SETUP (pkcs11_certificate)
+static void
+setup (Test *test, gconstpointer unused)
{
GList *modules = NULL;
GckAttributes *attrs;
@@ -54,34 +59,39 @@ TESTING_SETUP (pkcs11_certificate)
GNode *asn, *node;
CK_RV rv;
- cert_data = testing_data_read ("der-certificate.crt", &n_cert_data);
- g_assert (cert_data);
+ if (!g_file_get_contents ("files/der-certificate.crt", (gchar**)&test->cert_data,
+ &test->n_cert_data, NULL))
+ g_assert_not_reached ();
+ g_assert (test->cert_data);
- cert2_data = testing_data_read ("der-certificate-dsa.cer", &n_cert2_data);
- g_assert (cert2_data);
+ if (!g_file_get_contents ("files/der-certificate-dsa.cer", (gchar**)&test->cert2_data,
+ &test->n_cert2_data, NULL))
+ g_assert_not_reached ();
+ g_assert (test->cert2_data);
rv = gck_mock_C_GetFunctionList (&f);
gck_assert_cmprv (rv, ==, CKR_OK);
- memcpy (&funcs, f, sizeof (funcs));
+ memcpy (&test->funcs, f, sizeof (test->funcs));
/* Open a session */
- rv = (funcs.C_Initialize) (NULL);
+ rv = (test->funcs.C_Initialize) (NULL);
gck_assert_cmprv (rv, ==, CKR_OK);
g_assert (!modules);
- module = gck_module_new (&funcs, 0);
+ module = gck_module_new (&test->funcs, 0);
modules = g_list_prepend (modules, module);
gcr_pkcs11_set_modules (modules);
gck_list_unref_free (modules);
- asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate", cert_data, n_cert_data);
+ asn = egg_asn1x_create_and_decode (pkix_asn1_tab, "Certificate",
+ test->cert_data, test->n_cert_data);
g_assert (asn);
node = egg_asn1x_node (asn, "tbsCertificate", "subject", NULL);
subject = egg_asn1x_get_raw_element (node, &n_subject);
/* Add a certificate to the module */
attrs = gck_attributes_new ();
- gck_attributes_add_data (attrs, CKA_VALUE, cert_data, n_cert_data);
+ gck_attributes_add_data (attrs, CKA_VALUE, test->cert_data, test->n_cert_data);
gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_CERTIFICATE);
gck_attributes_add_ulong (attrs, CKA_CERTIFICATE_TYPE, CKC_X_509);
gck_attributes_add_data (attrs, CKA_SUBJECT, subject, n_subject);
@@ -90,23 +100,20 @@ TESTING_SETUP (pkcs11_certificate)
egg_asn1x_destroy (asn);
}
-TESTING_TEARDOWN (pkcs11_certificate)
+static void
+teardown (Test *test, gconstpointer unused)
{
CK_RV rv;
- g_free (cert_data);
- cert_data = NULL;
- n_cert_data = 0;
+ g_free (test->cert_data);
+ g_free (test->cert2_data);
- g_free (cert2_data);
- cert2_data = NULL;
- n_cert2_data = 0;
-
- rv = (funcs.C_Finalize) (NULL);
+ rv = (test->funcs.C_Finalize) (NULL);
gck_assert_cmprv (rv, ==, CKR_OK);
}
-TESTING_TEST (pkcs11_lookup_certificate_issuer)
+static void
+test_lookup_certificate_issuer (Test *test, gconstpointer unused)
{
GcrCertificate *cert, *issuer;
GError *error = NULL;
@@ -115,7 +122,7 @@ TESTING_TEST (pkcs11_lookup_certificate_issuer)
gconstpointer der;
gsize n_der;
- cert = gcr_simple_certificate_new_static (cert_data, n_cert_data);
+ cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
g_assert (cert);
/* Should be self-signed, so should find itself (added in setup) */
@@ -125,16 +132,16 @@ TESTING_TEST (pkcs11_lookup_certificate_issuer)
/* Should be the same certificate */
der = gcr_certificate_get_der_data (issuer, &n_der);
- g_assert_cmpsize (n_der, ==, n_cert_data);
- g_assert (memcmp (der, cert_data, n_cert_data) == 0);
+ egg_assert_cmpsize (n_der, ==, test->n_cert_data);
+ g_assert (memcmp (der, test->cert_data, test->n_cert_data) == 0);
/* Should return the same certificate here too */
attrs = gcr_pkcs11_certificate_get_attributes (GCR_PKCS11_CERTIFICATE (issuer));
g_assert (attrs);
attr = gck_attributes_find (attrs, CKA_VALUE);
g_assert (attr);
- g_assert_cmpsize (attr->length, ==, n_cert_data);
- g_assert (memcmp (attr->value, cert_data, n_cert_data) == 0);
+ egg_assert_cmpsize (attr->length, ==, test->n_cert_data);
+ g_assert (memcmp (attr->value, test->cert_data, test->n_cert_data) == 0);
/* Should return the same certificate here too */
attrs = NULL;
@@ -142,20 +149,21 @@ TESTING_TEST (pkcs11_lookup_certificate_issuer)
g_assert (attrs);
attr = gck_attributes_find (attrs, CKA_VALUE);
g_assert (attr);
- g_assert_cmpsize (attr->length, ==, n_cert_data);
- g_assert (memcmp (attr->value, cert_data, n_cert_data) == 0);
+ egg_assert_cmpsize (attr->length, ==, test->n_cert_data);
+ g_assert (memcmp (attr->value, test->cert_data, test->n_cert_data) == 0);
gck_attributes_unref (attrs);
g_object_unref (cert);
g_object_unref (issuer);
}
-TESTING_TEST (pkcs11_lookup_certificate_issuer_not_found)
+static void
+test_lookup_certificate_issuer_not_found (Test *test, gconstpointer unused)
{
GcrCertificate *cert, *issuer;
GError *error = NULL;
- cert = gcr_simple_certificate_new_static (cert2_data, n_cert2_data);
+ cert = gcr_simple_certificate_new_static (test->cert2_data, test->n_cert2_data);
g_assert (cert);
/* Issuer shouldn't be found */
@@ -171,10 +179,11 @@ fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
{
*((GAsyncResult**)user_data) = result;
g_object_ref (result);
- testing_wait_stop ();
+ egg_test_wait_stop ();
}
-TESTING_TEST (pkcs11_lookup_certificate_issuer_async)
+static void
+test_lookup_certificate_issuer_async (Test *test, gconstpointer unused)
{
GAsyncResult *result = NULL;
GcrCertificate *cert, *issuer;
@@ -182,12 +191,12 @@ TESTING_TEST (pkcs11_lookup_certificate_issuer_async)
gconstpointer der;
gsize n_der;
- cert = gcr_simple_certificate_new_static (cert_data, n_cert_data);
+ cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
g_assert (cert);
/* Should be self-signed, so should find itself (added in setup) */
gcr_pkcs11_certificate_lookup_issuer_async (cert, NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ egg_test_wait_until (500);
g_assert (result);
issuer = gcr_pkcs11_certificate_lookup_issuer_finish (result, &error);
g_assert (GCR_IS_PKCS11_CERTIFICATE (issuer));
@@ -197,23 +206,24 @@ TESTING_TEST (pkcs11_lookup_certificate_issuer_async)
/* Should be the same certificate */
der = gcr_certificate_get_der_data (issuer, &n_der);
- g_assert_cmpsize (n_der, ==, n_cert_data);
- g_assert (memcmp (der, cert_data, n_cert_data) == 0);
+ egg_assert_cmpsize (n_der, ==, test->n_cert_data);
+ g_assert (memcmp (der, test->cert_data, test->n_cert_data) == 0);
g_object_unref (cert);
g_object_unref (issuer);
}
-TESTING_TEST (pkcs11_lookup_certificate_issuer_failure)
+static void
+test_lookup_certificate_issuer_failure (Test *test, gconstpointer unused)
{
GcrCertificate *cert, *issuer;
GError *error = NULL;
- cert = gcr_simple_certificate_new_static (cert_data, n_cert_data);
+ cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
g_assert (cert);
/* Make the lookup fail */
- funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
+ test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
issuer = gcr_pkcs11_certificate_lookup_issuer (cert, NULL, &error);
g_assert (issuer == NULL);
@@ -224,21 +234,22 @@ TESTING_TEST (pkcs11_lookup_certificate_issuer_failure)
g_object_unref (cert);
}
-TESTING_TEST (pkcs11_lookup_certificate_issuer_fail_async)
+static void
+test_lookup_certificate_issuer_fail_async (Test *test, gconstpointer unused)
{
GAsyncResult *result = NULL;
GcrCertificate *cert, *issuer;
GError *error = NULL;
- cert = gcr_simple_certificate_new_static (cert_data, n_cert_data);
+ cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
g_assert (cert);
/* Make the lookup fail */
- funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
+ test->funcs.C_GetAttributeValue = gck_mock_fail_C_GetAttributeValue;
/* Should be self-signed, so should find itself (added in setup) */
gcr_pkcs11_certificate_lookup_issuer_async (cert, NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ egg_test_wait_until (500);
g_assert (result);
issuer = gcr_pkcs11_certificate_lookup_issuer_finish (result, &error);
g_assert (issuer == NULL);
@@ -250,3 +261,24 @@ TESTING_TEST (pkcs11_lookup_certificate_issuer_fail_async)
g_object_unref (cert);
}
+
+int
+main (int argc, char **argv)
+{
+ const gchar *srcdir;
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ srcdir = g_getenv ("SRCDIR");
+ if (srcdir && chdir (srcdir) < 0)
+ g_error ("couldn't change directory to: %s: %s", srcdir, g_strerror (errno));
+
+ g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer", Test, NULL, setup, test_lookup_certificate_issuer, teardown);
+ g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_not_found", Test, NULL, setup, test_lookup_certificate_issuer_not_found, teardown);
+ g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_async", Test, NULL, setup, test_lookup_certificate_issuer_async, teardown);
+ g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_failure", Test, NULL, setup, test_lookup_certificate_issuer_failure, teardown);
+ g_test_add ("/gcr/pkcs11-certificate/lookup_certificate_issuer_fail_async", Test, NULL, setup, test_lookup_certificate_issuer_fail_async, teardown);
+
+ return egg_tests_run_in_thread_with_loop ();
+}
diff --git a/gcr/tests/test-simple-certificate.c b/gcr/tests/test-simple-certificate.c
index 3bc18dd..8b7d416 100644
--- a/gcr/tests/test-simple-certificate.c
+++ b/gcr/tests/test-simple-certificate.c
@@ -22,8 +22,6 @@
#include "config.h"
-#include "test-suite.h"
-
#include "gcr.h"
#include "gcr/gcr-internal.h"
@@ -31,54 +29,81 @@
#include "pkcs11/pkcs11n.h"
+#include "egg/egg-testing.h"
+
#include <glib.h>
-static gpointer cert_data;
-static gsize n_cert_data;
+#include <errno.h>
+
+typedef struct {
+ gpointer cert_data;
+ gsize n_cert_data;
+} Test;
-TESTING_SETUP (simple_certificate)
+static void
+setup (Test *test, gconstpointer unused)
{
- cert_data = testing_data_read ("der-certificate.crt", &n_cert_data);
- g_assert (cert_data);
+ if (!g_file_get_contents ("files/der-certificate.crt", (gchar**)&test->cert_data,
+ &test->n_cert_data, NULL))
+ g_assert_not_reached ();
+ g_assert (test->cert_data);
}
-TESTING_TEARDOWN (simple_certificate)
+static void
+teardown (Test *test, gconstpointer unused)
{
- g_free (cert_data);
- cert_data = NULL;
- n_cert_data = 0;
+ g_free (test->cert_data);
}
-TESTING_TEST (simple_certificate_new)
+static void
+test_new (Test *test, gconstpointer unused)
{
GcrCertificate *cert;
gconstpointer der;
gsize n_der;
- cert = gcr_simple_certificate_new (cert_data, n_cert_data);
+ cert = gcr_simple_certificate_new (test->cert_data, test->n_cert_data);
g_assert (GCR_IS_SIMPLE_CERTIFICATE (cert));
der = gcr_certificate_get_der_data (cert, &n_der);
g_assert (der);
- g_assert_cmpsize (n_der, ==, n_cert_data);
- g_assert (memcmp (der, cert_data, n_der) == 0);
+ egg_assert_cmpmem (der, n_der, ==, test->cert_data, test->n_cert_data);
g_object_unref (cert);
}
-TESTING_TEST (simple_certificate_new_static)
+static void
+test_new_static (Test *test, gconstpointer unused)
{
GcrCertificate *cert;
gconstpointer der;
gsize n_der;
- cert = gcr_simple_certificate_new_static (cert_data, n_cert_data);
+ cert = gcr_simple_certificate_new_static (test->cert_data, test->n_cert_data);
g_assert (GCR_IS_SIMPLE_CERTIFICATE (cert));
der = gcr_certificate_get_der_data (cert, &n_der);
g_assert (der);
- g_assert_cmpsize (n_der, ==, n_cert_data);
- g_assert (der == cert_data); /* Must be same pointer */
+ egg_assert_cmpsize (n_der, ==, test->n_cert_data);
+ g_assert (der == test->cert_data); /* Must be same pointer */
g_object_unref (cert);
}
+
+int
+main (int argc, char **argv)
+{
+ const gchar *srcdir;
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ srcdir = g_getenv ("SRCDIR");
+ if (srcdir && chdir (srcdir) < 0)
+ g_error ("couldn't change directory to: %s: %s", srcdir, g_strerror (errno));
+
+ g_test_add ("/gcr/simple-certificate/new", Test, NULL, setup, test_new, teardown);
+ g_test_add ("/gcr/simple-certificate/new_static", Test, NULL, setup, test_new_static, teardown);
+
+ return g_test_run ();
+}
diff --git a/gcr/tests/test-trust.c b/gcr/tests/test-trust.c
index 545fce0..f21f80d 100644
--- a/gcr/tests/test-trust.c
+++ b/gcr/tests/test-trust.c
@@ -22,8 +22,6 @@
#include "config.h"
-#include "test-suite.h"
-
#include "gcr.h"
#include "gcr/gcr-internal.h"
@@ -34,37 +32,45 @@
#include "pkcs11/pkcs11n.h"
#include "pkcs11/pkcs11x.h"
+#include "egg/egg-testing.h"
+
#include <glib.h>
-static CK_FUNCTION_LIST funcs;
-static GcrCertificate *certificate = NULL;
+#include <errno.h>
+
+typedef struct {
+ CK_FUNCTION_LIST funcs;
+ GcrCertificate *certificate;
+} Test;
-TESTING_SETUP (trust_setup)
+static void
+setup (Test *test, gconstpointer unused)
{
GList *modules = NULL;
CK_FUNCTION_LIST_PTR f;
GckModule *module;
- guchar *contents;
+ gchar *contents;
const gchar *uris[2];
gsize len;
CK_RV rv;
- contents = testing_data_read ("der-certificate.crt", &len);
+ if (!g_file_get_contents ("files/der-certificate.crt", &contents, &len, NULL))
+ g_assert_not_reached ();
g_assert (contents);
- certificate = gcr_simple_certificate_new (contents, len);
+ test->certificate = gcr_simple_certificate_new (contents, len);
g_free (contents);
rv = gck_mock_C_GetFunctionList (&f);
gck_assert_cmprv (rv, ==, CKR_OK);
- memcpy (&funcs, f, sizeof (funcs));
+ memcpy (&test->funcs, f, sizeof (test->funcs));
/* Open a session */
- rv = (funcs.C_Initialize) (NULL);
+ rv = (test->funcs.C_Initialize) (NULL);
gck_assert_cmprv (rv, ==, CKR_OK);
g_assert (!modules);
- module = gck_module_new (&funcs, 0);
+ module = gck_module_new (&test->funcs, 0);
modules = g_list_prepend (modules, module);
gcr_pkcs11_set_modules (modules);
gck_list_unref_free (modules);
@@ -76,79 +82,83 @@ TESTING_SETUP (trust_setup)
gcr_pkcs11_set_trust_lookup_uris (uris);
}
-TESTING_TEARDOWN (trust_setup)
+static void
+teardown (Test *test, gconstpointer unused)
{
CK_RV rv;
- g_object_unref (certificate);
- certificate = NULL;
+ g_object_unref (test->certificate);
- rv = (funcs.C_Finalize) (NULL);
+ rv = (test->funcs.C_Finalize) (NULL);
gck_assert_cmprv (rv, ==, CKR_OK);
}
-TESTING_TEST (trust_is_pinned_none)
+static void
+test_is_pinned_none (Test *test, gconstpointer unused)
{
GError *error = NULL;
gboolean trust;
- trust = gcr_trust_is_certificate_pinned (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert_cmpint (trust, ==, FALSE);
g_assert (error == NULL);
}
-TESTING_TEST (trust_add_and_is_pinned)
+static void
+test_add_and_is_pinned (Test *test, gconstpointer unused)
{
GError *error = NULL;
gboolean trust;
gboolean ret;
- trust = gcr_trust_is_certificate_pinned (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert_cmpint (trust, ==, FALSE);
g_assert (error == NULL);
- ret = gcr_trust_add_pinned_certificate (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ ret = gcr_trust_add_pinned_certificate (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert (ret == TRUE);
g_assert (error == NULL);
- trust = gcr_trust_is_certificate_pinned (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert_cmpint (trust, ==, TRUE);
g_assert (error == NULL);
}
-TESTING_TEST (trust_add_certificate_pinned_fail)
+static void
+test_add_certificate_pinned_fail (Test *test, gconstpointer unused)
{
GError *error = NULL;
gboolean ret;
/* Make this function fail */
- funcs.C_CreateObject = gck_mock_fail_C_CreateObject;
+ test->funcs.C_CreateObject = gck_mock_fail_C_CreateObject;
- ret = gcr_trust_add_pinned_certificate (certificate, GCR_PURPOSE_CLIENT_AUTH, "peer", NULL, &error);
+ ret = gcr_trust_add_pinned_certificate (test->certificate, GCR_PURPOSE_CLIENT_AUTH, "peer", NULL, &error);
g_assert (ret == FALSE);
g_assert_error (error, GCK_ERROR, CKR_FUNCTION_FAILED);
g_clear_error (&error);
}
-TESTING_TEST (trust_add_and_remov_pinned)
+static void
+test_add_and_remov_pinned (Test *test, gconstpointer unused)
{
GError *error = NULL;
gboolean trust;
gboolean ret;
- ret = gcr_trust_add_pinned_certificate (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ ret = gcr_trust_add_pinned_certificate (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert (ret == TRUE);
g_assert (error == NULL);
- trust = gcr_trust_is_certificate_pinned (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert_cmpint (trust, ==, TRUE);
g_assert (error == NULL);
- ret = gcr_trust_remove_pinned_certificate (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ ret = gcr_trust_remove_pinned_certificate (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert (ret == TRUE);
g_assert (error == NULL);
- trust = gcr_trust_is_certificate_pinned (certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
+ trust = gcr_trust_is_certificate_pinned (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, &error);
g_assert_cmpint (trust, ==, FALSE);
g_assert (error == NULL);
}
@@ -158,18 +168,19 @@ fetch_async_result (GObject *source, GAsyncResult *result, gpointer user_data)
{
*((GAsyncResult**)user_data) = result;
g_object_ref (result);
- testing_wait_stop ();
+ egg_test_wait_stop ();
}
-TESTING_TEST (trust_add_and_is_pinned_async)
+static void
+test_add_and_is_pinned_async (Test *test, gconstpointer unused)
{
GAsyncResult *result = NULL;
GError *error = NULL;
gboolean trust;
gboolean ret;
- gcr_trust_is_certificate_pinned_async (certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
trust = gcr_trust_is_certificate_pinned_finish (result, &error);
g_assert (trust == FALSE);
@@ -177,9 +188,9 @@ TESTING_TEST (trust_add_and_is_pinned_async)
g_object_unref (result);
result = NULL;
- gcr_trust_add_pinned_certificate_async (certificate, GCR_PURPOSE_EMAIL, "host",
- NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_add_pinned_certificate_async (test->certificate, GCR_PURPOSE_EMAIL, "host",
+ NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
ret = gcr_trust_add_pinned_certificate_finish (result, &error);
g_assert (ret == TRUE);
@@ -187,8 +198,8 @@ TESTING_TEST (trust_add_and_is_pinned_async)
g_object_unref (result);
result = NULL;
- gcr_trust_is_certificate_pinned_async (certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
trust = gcr_trust_is_certificate_pinned_finish (result, &error);
g_assert (trust == TRUE);
@@ -197,15 +208,16 @@ TESTING_TEST (trust_add_and_is_pinned_async)
result = NULL;
}
-TESTING_TEST (trust_add_and_remov_pinned_async)
+static void
+test_add_and_remov_pinned_async (Test *test, gconstpointer unused)
{
GAsyncResult *result = NULL;
GError *error = NULL;
gboolean trust;
gboolean ret;
- gcr_trust_add_pinned_certificate_async (certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_add_pinned_certificate_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
ret = gcr_trust_add_pinned_certificate_finish (result, &error);
g_assert (ret == TRUE);
@@ -213,8 +225,8 @@ TESTING_TEST (trust_add_and_remov_pinned_async)
g_object_unref (result);
result = NULL;
- gcr_trust_is_certificate_pinned_async (certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
trust = gcr_trust_is_certificate_pinned_finish (result, &error);
g_assert (trust == TRUE);
@@ -222,8 +234,8 @@ TESTING_TEST (trust_add_and_remov_pinned_async)
g_object_unref (result);
result = NULL;
- gcr_trust_remove_pinned_certificate_async (certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_remove_pinned_certificate_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
ret = gcr_trust_remove_pinned_certificate_finish (result, &error);
g_assert (ret == TRUE);
@@ -231,8 +243,8 @@ TESTING_TEST (trust_add_and_remov_pinned_async)
g_object_unref (result);
result = NULL;
- gcr_trust_is_certificate_pinned_async (certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_is_certificate_pinned_async (test->certificate, GCR_PURPOSE_EMAIL, "host", NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
trust = gcr_trust_is_certificate_pinned_finish (result, &error);
g_assert (trust == FALSE);
@@ -241,17 +253,19 @@ TESTING_TEST (trust_add_and_remov_pinned_async)
result = NULL;
}
-TESTING_TEST (trust_is_certificate_anchored_not)
+static void
+test_is_certificate_anchored_not (Test *test, gconstpointer unused)
{
GError *error = NULL;
gboolean ret;
- ret = gcr_trust_is_certificate_anchored (certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, &error);
+ ret = gcr_trust_is_certificate_anchored (test->certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, &error);
g_assert (ret == FALSE);
g_assert (error == NULL);
}
-TESTING_TEST (trust_is_certificate_anchored_yes)
+static void
+test_is_certificate_anchored_yes (Test *test, gconstpointer unused)
{
GError *error = NULL;
GckAttributes *attrs;
@@ -261,7 +275,7 @@ TESTING_TEST (trust_is_certificate_anchored_yes)
/* Create a certificate root trust */
attrs = gck_attributes_new ();
- der = gcr_certificate_get_der_data (certificate, &n_der);
+ der = gcr_certificate_get_der_data (test->certificate, &n_der);
gck_attributes_add_data (attrs, CKA_X_CERTIFICATE_VALUE, der, n_der);
gck_attributes_add_ulong (attrs, CKA_CLASS, CKO_X_TRUST_ASSERTION);
gck_attributes_add_boolean (attrs, CKA_TOKEN, TRUE);
@@ -269,19 +283,20 @@ TESTING_TEST (trust_is_certificate_anchored_yes)
gck_attributes_add_ulong (attrs, CKA_X_ASSERTION_TYPE, CKT_X_ANCHORED_CERTIFICATE);
gck_mock_module_take_object (attrs);
- ret = gcr_trust_is_certificate_anchored (certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, &error);
+ ret = gcr_trust_is_certificate_anchored (test->certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, &error);
g_assert (ret == TRUE);
g_assert (error == NULL);
}
-TESTING_TEST (trust_is_certificate_anchored_async)
+static void
+test_is_certificate_anchored_async (Test *test, gconstpointer unused)
{
GAsyncResult *result = NULL;
GError *error = NULL;
gboolean ret;
- gcr_trust_is_certificate_anchored_async (certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, fetch_async_result, &result);
- testing_wait_until (500);
+ gcr_trust_is_certificate_anchored_async (test->certificate, GCR_PURPOSE_CLIENT_AUTH, NULL, fetch_async_result, &result);
+ egg_test_wait_until (500);
g_assert (result);
ret = gcr_trust_is_certificate_anchored_finish (result, &error);
@@ -290,3 +305,28 @@ TESTING_TEST (trust_is_certificate_anchored_async)
g_object_unref (result);
}
+
+int
+main (int argc, char **argv)
+{
+ const gchar *srcdir;
+
+ g_type_init ();
+ g_test_init (&argc, &argv, NULL);
+
+ srcdir = g_getenv ("SRCDIR");
+ if (srcdir && chdir (srcdir) < 0)
+ g_error ("couldn't change directory to: %s: %s", srcdir, g_strerror (errno));
+
+ g_test_add ("/gcr/trust/is_pinned_none", Test, NULL, setup, test_is_pinned_none, teardown);
+ g_test_add ("/gcr/trust/add_and_is_pinned", Test, NULL, setup, test_add_and_is_pinned, teardown);
+ g_test_add ("/gcr/trust/add_certificate_pinned_fail", Test, NULL, setup, test_add_certificate_pinned_fail, teardown);
+ g_test_add ("/gcr/trust/add_and_remov_pinned", Test, NULL, setup, test_add_and_remov_pinned, teardown);
+ g_test_add ("/gcr/trust/add_and_is_pinned_async", Test, NULL, setup, test_add_and_is_pinned_async, teardown);
+ g_test_add ("/gcr/trust/add_and_remov_pinned_async", Test, NULL, setup, test_add_and_remov_pinned_async, teardown);
+ g_test_add ("/gcr/trust/is_certificate_anchored_not", Test, NULL, setup, test_is_certificate_anchored_not, teardown);
+ g_test_add ("/gcr/trust/is_certificate_anchored_yes", Test, NULL, setup, test_is_certificate_anchored_yes, teardown);
+ g_test_add ("/gcr/trust/is_certificate_anchored_async", Test, NULL, setup, test_is_certificate_anchored_async, teardown);
+
+ return egg_tests_run_in_thread_with_loop ();
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]