[glib-networking] tls: fix installed tests
- From: Dan Winship <danw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib-networking] tls: fix installed tests
- Date: Tue, 8 Oct 2013 20:29:47 +0000 (UTC)
commit 9cd6bfcacb05acc0405d34238e215f5162a23820
Author: Dan Winship <danw gnome org>
Date: Tue Oct 8 16:28:28 2013 -0400
tls: fix installed tests
The support files weren't being installed, but rather were still being
read out of the source tree. Fix that.
https://bugzilla.gnome.org/show_bug.cgi?id=709628
tls/tests/Makefile.am | 21 ++++++++++-
tls/tests/certificate.c | 77 +++++++++++++++++++++++++++++------------
tls/tests/connection.c | 31 ++++++++++++----
tls/tests/file-database.c | 84 +++++++++++++++++++++++++++++++++------------
4 files changed, 158 insertions(+), 55 deletions(-)
---
diff --git a/tls/tests/Makefile.am b/tls/tests/Makefile.am
index ef91554..e8c19c3 100644
--- a/tls/tests/Makefile.am
+++ b/tls/tests/Makefile.am
@@ -35,6 +35,23 @@ pkcs11_slot_SOURCES = pkcs11-slot.c \
endif
-EXTRA_DIST += \
- files \
+testfilesdir = $(installed_testdir)/files
+testfiles_DATA = \
+ files/ca.pem \
+ files/ca-roots.pem \
+ files/ca-verisign-sha1.pem \
+ files/chain-with-verisign-md2.pem \
+ files/client-and-key.pem \
+ files/client-future.pem \
+ files/client-past.pem \
+ files/client.pem \
+ files/non-ca.pem \
+ files/server-and-key.pem \
+ files/server.der \
+ files/server-key.der \
+ files/server-key.pem \
+ files/server.pem \
+ files/server-self.pem \
$(NULL)
+
+EXTRA_DIST += $(testfiles_DATA)
diff --git a/tls/tests/certificate.c b/tls/tests/certificate.c
index 408f3e2..d1818bd 100644
--- a/tls/tests/certificate.c
+++ b/tls/tests/certificate.c
@@ -24,8 +24,6 @@
#include <sys/types.h>
#include <string.h>
-#define TEST_FILE(name) (SRCDIR "/files/" name)
-
typedef struct {
GTlsBackend *backend;
GType cert_gtype;
@@ -41,30 +39,34 @@ static void
setup_certificate (TestCertificate *test, gconstpointer data)
{
GError *error = NULL;
- gchar *contents;
+ gchar *file, *contents;
gsize length;
test->backend = g_tls_backend_get_default ();
test->cert_gtype = g_tls_backend_get_certificate_type (test->backend);
- g_file_get_contents (TEST_FILE ("server.pem"), &test->cert_pem,
- &test->cert_pem_length, &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server.pem", NULL);
+ g_file_get_contents (file, &test->cert_pem, &test->cert_pem_length, &error);
+ g_free (file);
g_assert_no_error (error);
- g_file_get_contents (TEST_FILE ("server.der"),
- &contents, &length, &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server.der", NULL);
+ g_file_get_contents (file, &contents, &length, &error);
+ g_free (file);
g_assert_no_error (error);
test->cert_der = g_byte_array_new ();
g_byte_array_append (test->cert_der, (guint8 *)contents, length);
g_free (contents);
- g_file_get_contents (TEST_FILE ("server-key.pem"), &test->key_pem,
- &test->key_pem_length, &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-key.pem", NULL);
+ g_file_get_contents (file, &test->key_pem, &test->key_pem_length, &error);
+ g_free (file);
g_assert_no_error (error);
- g_file_get_contents (TEST_FILE ("server-key.der"),
- &contents, &length, &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-key.der", NULL);
+ g_file_get_contents (file, &contents, &length, &error);
+ g_free (file);
g_assert_no_error (error);
test->key_der = g_byte_array_new ();
@@ -174,8 +176,11 @@ test_create_certificate_with_issuer (TestCertificate *test,
{
GTlsCertificate *cert, *issuer, *check;
GError *error = NULL;
+ gchar *file;
- issuer = g_tls_certificate_new_from_file (TEST_FILE ("ca.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca.pem", NULL);
+ issuer = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (issuer));
@@ -215,19 +220,24 @@ setup_verify (TestVerify *test,
gconstpointer data)
{
GError *error = NULL;
+ gchar *file;
- test->cert = g_tls_certificate_new_from_file (TEST_FILE ("server.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server.pem", NULL);
+ test->cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (test->cert));
test->identity = g_network_address_new ("server.example.com", 80);
- test->anchor = g_tls_certificate_new_from_file (TEST_FILE ("ca.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca.pem", NULL);
+ test->anchor = g_tls_certificate_new_from_file (file, &error);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (test->anchor));
- test->database = g_tls_file_database_new (TEST_FILE ("ca.pem"), &error);
+ test->database = g_tls_file_database_new (file, &error);
g_assert_no_error (error);
g_assert (G_IS_TLS_DATABASE (test->database));
+ g_free (file);
}
static void
@@ -293,9 +303,12 @@ test_verify_certificate_bad_ca (TestVerify *test,
GTlsCertificateFlags errors;
GTlsCertificate *cert;
GError *error = NULL;
+ gchar *file;
/* Use a client certificate as the CA, which is wrong */
- cert = g_tls_certificate_new_from_file (TEST_FILE ("client.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
@@ -312,9 +325,12 @@ test_verify_certificate_bad_before (TestVerify *test,
GTlsCertificateFlags errors;
GTlsCertificate *cert;
GError *error = NULL;
+ gchar *file;
/* This is a certificate in the future */
- cert = g_tls_certificate_new_from_file (TEST_FILE ("client-future.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-future.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
@@ -331,9 +347,12 @@ test_verify_certificate_bad_expired (TestVerify *test,
GTlsCertificateFlags errors;
GTlsCertificate *cert;
GError *error = NULL;
+ gchar *file;
/* This is a certificate in the future */
- cert = g_tls_certificate_new_from_file (TEST_FILE ("client-past.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-past.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
@@ -352,13 +371,18 @@ test_verify_certificate_bad_combo (TestVerify *test,
GSocketConnectable *identity;
GTlsCertificateFlags errors;
GError *error = NULL;
+ gchar *file;
- cert = g_tls_certificate_new_from_file (TEST_FILE ("client-past.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-past.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
/* Unrelated cert used as certificate authority */
- cacert = g_tls_certificate_new_from_file (TEST_FILE ("server-self.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-self.pem", NULL);
+ cacert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cacert));
@@ -386,14 +410,21 @@ test_certificate_is_same (void)
GTlsCertificate *two;
GTlsCertificate *three;
GError *error = NULL;
+ gchar *file;
- one = g_tls_certificate_new_from_file (TEST_FILE ("client.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client.pem", NULL);
+ one = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
- two = g_tls_certificate_new_from_file (TEST_FILE ("client-and-key.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-and-key.pem", NULL);
+ two = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
- three = g_tls_certificate_new_from_file (TEST_FILE ("server.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server.pem", NULL);
+ three = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (g_tls_certificate_is_same (one, two) == TRUE);
diff --git a/tls/tests/connection.c b/tls/tests/connection.c
index 6236f83..8a03519 100644
--- a/tls/tests/connection.c
+++ b/tls/tests/connection.c
@@ -24,8 +24,6 @@
#include <sys/types.h>
#include <string.h>
-#define TEST_FILE(name) (SRCDIR "/files/" name)
-
#define TEST_DATA "You win again, gravity!\n"
#define TEST_DATA_LENGTH 24
@@ -204,8 +202,11 @@ on_incoming_connection (GSocketService *service,
GOutputStream *stream;
GTlsCertificate *cert;
GError *error = NULL;
+ gchar *file;
- cert = g_tls_certificate_new_from_file (TEST_FILE ("server-and-key.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-and-key.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
test->server_connection = g_tls_server_connection_new (G_IO_STREAM (connection),
@@ -277,8 +278,11 @@ run_echo_server (GThreadedSocketService *service,
GOutputStream *ostream;
gssize nread, nwrote, total;
gchar buf[128];
+ gchar *file;
- cert = g_tls_certificate_new_from_file (TEST_FILE ("server-and-key.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-and-key.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
test->server_connection = g_tls_server_connection_new (G_IO_STREAM (connection),
@@ -435,8 +439,11 @@ test_verified_connection (TestConnection *test,
{
GIOStream *connection;
GError *error = NULL;
+ gchar *file;
- test->database = g_tls_file_database_new (TEST_FILE ("ca-roots.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca-roots.pem", NULL);
+ test->database = g_tls_file_database_new (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (test->database);
@@ -478,8 +485,11 @@ test_client_auth_connection (TestConnection *test,
GTlsCertificate *cert;
GTlsCertificate *peer;
gboolean cas_changed;
+ gchar *file;
- test->database = g_tls_file_database_new (TEST_FILE ("ca-roots.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca-roots.pem", NULL);
+ test->database = g_tls_file_database_new (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (test->database);
@@ -491,7 +501,9 @@ test_client_auth_connection (TestConnection *test,
g_tls_connection_set_database (G_TLS_CONNECTION (test->client_connection), test->database);
- cert = g_tls_certificate_new_from_file (TEST_FILE ("client-and-key.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-and-key.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_tls_connection_set_certificate (G_TLS_CONNECTION (test->client_connection), cert);
@@ -533,8 +545,11 @@ test_client_auth_failure (TestConnection *test,
GIOStream *connection;
GError *error = NULL;
gboolean accepted_changed;
+ gchar *file;
- test->database = g_tls_file_database_new (TEST_FILE ("ca-roots.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca-roots.pem", NULL);
+ test->database = g_tls_file_database_new (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (test->database);
diff --git a/tls/tests/file-database.c b/tls/tests/file-database.c
index 5b6756f..0f239b3 100644
--- a/tls/tests/file-database.c
+++ b/tls/tests/file-database.c
@@ -28,8 +28,6 @@
#include <sys/types.h>
#include <string.h>
-#define TEST_FILE(name) (SRCDIR "/files/" name)
-
/* -----------------------------------------------------------------------------
* CERTIFICATE VERIFY
*/
@@ -45,14 +43,19 @@ setup_verify (TestVerify *test,
gconstpointer data)
{
GError *error = NULL;
+ gchar *file;
- test->cert = g_tls_certificate_new_from_file (TEST_FILE ("server.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server.pem", NULL);
+ test->cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (test->cert));
test->identity = g_network_address_new ("server.example.com", 80);
- test->database = g_tls_file_database_new (TEST_FILE ("ca.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca.pem", NULL);
+ test->database = g_tls_file_database_new (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_DATABASE (test->database));
}
@@ -124,9 +127,12 @@ test_verify_database_bad_ca (TestVerify *test,
GTlsCertificateFlags errors;
GTlsCertificate *cert;
GError *error = NULL;
+ gchar *file;
/* Use another certificate which isn't in our CA list */
- cert = g_tls_certificate_new_from_file (TEST_FILE ("server-self.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-self.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
@@ -146,9 +152,12 @@ test_verify_database_bad_before (TestVerify *test,
GTlsCertificateFlags errors;
GTlsCertificate *cert;
GError *error = NULL;
+ gchar *file;
/* This is a certificate in the future */
- cert = g_tls_certificate_new_from_file (TEST_FILE ("client-future.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-future.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
@@ -168,9 +177,12 @@ test_verify_database_bad_expired (TestVerify *test,
GTlsCertificateFlags errors;
GTlsCertificate *cert;
GError *error = NULL;
+ gchar *file;
/* This is a certificate in the future */
- cert = g_tls_certificate_new_from_file (TEST_FILE ("client-past.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-past.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
@@ -191,8 +203,11 @@ test_verify_database_bad_combo (TestVerify *test,
GSocketConnectable *identity;
GTlsCertificateFlags errors;
GError *error = NULL;
+ gchar *file;
- cert = g_tls_certificate_new_from_file (TEST_FILE ("server-self.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-self.pem", NULL);
+ cert = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (cert));
@@ -267,18 +282,21 @@ test_verify_with_incorrect_root_in_chain (void)
GTlsCertificate *chain;
GSocketConnectable *identity;
GTlsCertificateFlags errors;
+ gchar *file;
/*
* This database contains a single anchor certificate of:
* C = US, O = "VeriSign, Inc.", OU = Class 3 Public Primary Certification Authority
*/
- database = g_tls_file_database_new (TEST_FILE ("ca-verisign-sha1.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca-verisign-sha1.pem", NULL);
+ database = g_tls_file_database_new (file, &error);
g_assert_no_error (error);
g_assert (G_IS_TLS_DATABASE (database));
- ca_verisign_sha1 = g_tls_certificate_new_from_file (TEST_FILE ("ca-verisign-sha1.pem"), &error);
+ ca_verisign_sha1 = g_tls_certificate_new_from_file (file, &error);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (ca_verisign_sha1));
+ g_free (file);
/*
* This certificate chain contains a root certificate with that same issuer, public key:
@@ -288,7 +306,9 @@ test_verify_with_incorrect_root_in_chain (void)
* verify this chain as valid, since the issuer fields and signatures should chain up
* to the certificate in our database.
*/
- chain = load_certificate_chain (TEST_FILE ("chain-with-verisign-md2.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/chain-with-verisign-md2.pem", NULL);
+ chain = load_certificate_chain (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (chain));
@@ -319,7 +339,7 @@ test_verify_with_incorrect_root_in_chain (void)
typedef struct {
GTlsDatabase *database;
- const gchar *path;
+ gchar *path;
} TestFileDatabase;
static void
@@ -328,7 +348,7 @@ setup_file_database (TestFileDatabase *test,
{
GError *error = NULL;
- test->path = TEST_FILE ("ca-roots.pem");
+ test->path = g_test_build_filename (G_TEST_DIST, "files/ca-roots.pem", NULL);
test->database = g_tls_file_database_new (test->path, &error);
g_assert_no_error (error);
g_assert (G_IS_TLS_DATABASE (test->database));
@@ -338,6 +358,7 @@ static void
teardown_file_database (TestFileDatabase *test,
gconstpointer data)
{
+ g_free (test->path);
g_assert (G_IS_TLS_DATABASE (test->database));
g_object_add_weak_pointer (G_OBJECT (test->database),
(gpointer *)&test->database);
@@ -353,6 +374,7 @@ test_file_database_handle (TestFileDatabase *test,
GTlsCertificate *check;
GError *error = NULL;
gchar *handle;
+ gchar *file;
/*
* ca.pem is in the ca-roots.pem that the test->database represents.
@@ -360,7 +382,9 @@ test_file_database_handle (TestFileDatabase *test,
* is 'in' the database.
*/
- certificate = g_tls_certificate_new_from_file (TEST_FILE ("ca.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca.pem", NULL);
+ certificate = g_tls_certificate_new_from_file (file, &error);
+ g_free (file);
g_assert_no_error (error);
g_assert (G_IS_TLS_CERTIFICATE (certificate));
@@ -403,15 +427,18 @@ test_anchors_property (void)
GTlsDatabase *database;
gchar *anchor_filename = NULL;
GError *error = NULL;
+ gchar *file;
- database = g_tls_file_database_new (TEST_FILE ("ca.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/ca.pem", NULL);
+ database = g_tls_file_database_new (file, &error);
g_assert_no_error (error);
g_object_get (database, "anchors", &anchor_filename, NULL);
- g_assert_cmpstr (anchor_filename, ==, TEST_FILE ("ca.pem"));
+ g_assert_cmpstr (anchor_filename, ==, file);
g_free (anchor_filename);
g_object_unref (database);
+ g_free (file);
}
static gboolean
@@ -456,8 +483,11 @@ test_lookup_certificates_issued_by (void)
GByteArray *issuer_dn;
GTlsDatabase *database;
GError *error = NULL;
+ gchar *file;
- database = g_tls_file_database_new (TEST_FILE ("non-ca.pem"), &error);
+ file = g_test_build_filename (G_TEST_DIST, "files/non-ca.pem", NULL);
+ database = g_tls_file_database_new (file, &error);
+ g_free (file);
g_assert_no_error (error);
issuer_dn = g_byte_array_new ();
@@ -472,11 +502,21 @@ test_lookup_certificates_issued_by (void)
g_assert_cmpuint (g_list_length (certificates), ==, 4);
- g_assert (certificate_is_in_list (certificates, TEST_FILE ("client.pem")));
- g_assert (certificate_is_in_list (certificates, TEST_FILE ("client-future.pem")));
- g_assert (certificate_is_in_list (certificates, TEST_FILE ("client-past.pem")));
- g_assert (certificate_is_in_list (certificates, TEST_FILE ("server.pem")));
- g_assert (!certificate_is_in_list (certificates, TEST_FILE ("server-self.pem")));
+ file = g_test_build_filename (G_TEST_DIST, "files/client.pem", NULL);
+ g_assert (certificate_is_in_list (certificates, file));
+ g_free (file);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-future.pem", NULL);
+ g_assert (certificate_is_in_list (certificates, file));
+ g_free (file);
+ file = g_test_build_filename (G_TEST_DIST, "files/client-past.pem", NULL);
+ g_assert (certificate_is_in_list (certificates, file));
+ g_free (file);
+ file = g_test_build_filename (G_TEST_DIST, "files/server.pem", NULL);
+ g_assert (certificate_is_in_list (certificates, file));
+ g_free (file);
+ file = g_test_build_filename (G_TEST_DIST, "files/server-self.pem", NULL);
+ g_assert (!certificate_is_in_list (certificates, file));
+ g_free (file);
g_list_free_full (certificates, g_object_unref);
g_object_unref (database);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]