summary refs log tree commit diff
path: root/libnm-util/tests/test-secrets.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-util/tests/test-secrets.c')
-rw-r--r--libnm-util/tests/test-secrets.c163
1 files changed, 40 insertions, 123 deletions
diff --git a/libnm-util/tests/test-secrets.c b/libnm-util/tests/test-secrets.c
index f5423d10..0d451788 100644
--- a/libnm-util/tests/test-secrets.c
+++ b/libnm-util/tests/test-secrets.c
@@ -19,13 +19,12 @@
  *
  */
 
-#include "config.h"
+#include "nm-default.h"
 
 #include <string.h>
 
-#include <nm-utils.h>
+#include "nm-utils.h"
 
-#include "nm-default.h"
 #include "nm-setting-connection.h"
 #include "nm-setting-wired.h"
 #include "nm-setting-8021x.h"
@@ -44,16 +43,20 @@
 #define TEST_NEED_SECRETS_EAP_TLS_CLIENT_CERT TEST_CERT_DIR "/test_key_and_cert.pem"
 #define TEST_NEED_SECRETS_EAP_TLS_PRIVATE_KEY TEST_CERT_DIR "/test_key_and_cert.pem"
 
-static gboolean
-find_hints_item (GPtrArray *hints, const char *item)
+static void
+_assert_hints_has (GPtrArray *hints, const char *item)
 {
-	int i;
+	guint i;
+	guint found = 0;
 
+	g_assert (hints);
+	g_assert (item);
 	for (i = 0; i < hints->len; i++) {
-		if (!strcmp (item, (const char *) g_ptr_array_index (hints, i)))
-			return TRUE;
+		g_assert (hints->pdata[i]);
+		if (!strcmp (item, hints->pdata[i]))
+			found++;
 	}
-	return FALSE;
+	g_assert_cmpint (found, ==, 1);
 }
 
 static NMConnection *
@@ -100,18 +103,14 @@ make_tls_connection (const char *detail, NMSetting8021xCKScheme scheme)
 	                                         scheme,
 	                                         NULL,
 	                                         &error);
-	ASSERT (success == TRUE,
-	        detail, "failed to set CA certificate '%s': %s",
-	        TEST_NEED_SECRETS_EAP_TLS_CA_CERT, error->message);
+	nmtst_assert_success (success, error);
 
 	success = nm_setting_802_1x_set_client_cert (s_8021x,
 	                                             TEST_NEED_SECRETS_EAP_TLS_CLIENT_CERT,
 	                                             scheme,
 	                                             NULL,
 	                                             &error);
-	ASSERT (success == TRUE,
-	        detail, "failed to set client certificate '%s': %s",
-	        TEST_NEED_SECRETS_EAP_TLS_CLIENT_CERT, error->message);
+	nmtst_assert_success (success, error);
 
 	success = nm_setting_802_1x_set_private_key (s_8021x,
 	                                             TEST_NEED_SECRETS_EAP_TLS_PRIVATE_KEY,
@@ -119,9 +118,7 @@ make_tls_connection (const char *detail, NMSetting8021xCKScheme scheme)
 	                                             scheme,
 	                                             NULL,
 	                                             &error);
-	ASSERT (success == TRUE,
-	        detail, "failed to set private key '%s': %s",
-	        TEST_NEED_SECRETS_EAP_TLS_PRIVATE_KEY, error->message);
+	nmtst_assert_success (success, error);
 
 	/* IP4 setting */
 	s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
@@ -129,9 +126,7 @@ make_tls_connection (const char *detail, NMSetting8021xCKScheme scheme)
 
 	g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
 
-	ASSERT (nm_connection_verify (connection, &error) == TRUE,
-	        detail, "failed to verify connection: %s",
-	        (error && error->message) ? error->message : "(unknown)");
+	nmtst_assert_connection_verifies_and_normalizable (connection);
 
 	return connection;
 }
@@ -144,37 +139,19 @@ test_need_tls_secrets_path (void)
 	GPtrArray *hints = NULL;
 
 	connection = make_tls_connection ("need-tls-secrets-path-key", NM_SETTING_802_1X_CK_SCHEME_PATH);
-	ASSERT (connection != NULL,
-	        "need-tls-secrets-path-key",
-	        "error creating test connection");
 
 	/* Ensure we don't need any secrets since we just set up the connection */
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name == NULL,
-	        "need-tls-secrets-path-key",
-	        "secrets are unexpectedly required");
-	ASSERT (hints == NULL,
-	        "need-tls-secrets-path-key",
-	        "hints should be NULL since no secrets were required");
+	g_assert (!setting_name);
+	g_assert (!hints);
 
 	/* Connection is good; clear secrets and ensure private key password is then required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name != NULL,
-	        "need-tls-secrets-path-key-password",
-	        "unexpected secrets success");
-	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
-			"need-tls-secrets-path-key-password",
-			"unexpected setting secrets required");
-
-	ASSERT (hints != NULL,
-	        "need-tls-secrets-path-key-password",
-	        "expected returned secrets hints");
-	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD),
-			"need-tls-secrets-path-key-password",
-			"expected to require private key password, but it wasn't");
+	g_assert_cmpstr (setting_name, ==, NM_SETTING_802_1X_SETTING_NAME);
+	_assert_hints_has (hints, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD);
 
 	g_ptr_array_free (hints, TRUE);
 	g_object_unref (connection);
@@ -188,37 +165,19 @@ test_need_tls_secrets_blob (void)
 	GPtrArray *hints = NULL;
 
 	connection = make_tls_connection ("need-tls-secrets-blob-key", NM_SETTING_802_1X_CK_SCHEME_BLOB);
-	ASSERT (connection != NULL,
-	        "need-tls-secrets-blob-key",
-	        "error creating test connection");
 
 	/* Ensure we don't need any secrets since we just set up the connection */
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name == NULL,
-	        "need-tls-secrets-blob-key",
-	        "secrets are unexpectedly required");
-	ASSERT (hints == NULL,
-	        "need-tls-secrets-blob-key",
-	        "hints should be NULL since no secrets were required");
+	g_assert (!setting_name);
+	g_assert (!hints);
 
 	/* Clear secrets and ensure password is again required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name != NULL,
-	        "need-tls-secrets-blob-key-password",
-	        "unexpected secrets success");
-	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
-			"need-tls-secrets-blob-key-password",
-			"unexpected setting secrets required");
-
-	ASSERT (hints != NULL,
-	        "need-tls-secrets-blob-key-password",
-	        "expected returned secrets hints");
-	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD),
-			"need-tls-secrets-blob-key-password",
-			"expected to require private key password, but it wasn't");
+	g_assert_cmpstr (setting_name, ==, NM_SETTING_802_1X_SETTING_NAME);
+	_assert_hints_has (hints, NM_SETTING_802_1X_PRIVATE_KEY_PASSWORD);
 
 	g_ptr_array_free (hints, TRUE);
 	g_object_unref (connection);
@@ -270,18 +229,14 @@ make_tls_phase2_connection (const char *detail, NMSetting8021xCKScheme scheme)
 	                                                scheme,
 	                                                NULL,
 	                                                &error);
-	ASSERT (success == TRUE,
-	        detail, "failed to set phase2 CA certificate '%s': %s",
-	        TEST_NEED_SECRETS_EAP_TLS_CA_CERT, error->message);
+	nmtst_assert_success (success, error);
 
 	success = nm_setting_802_1x_set_phase2_client_cert (s_8021x,
 	                                                    TEST_NEED_SECRETS_EAP_TLS_CLIENT_CERT,
 	                                                    scheme,
 	                                                    NULL,
 	                                                    &error);
-	ASSERT (success == TRUE,
-	        detail, "failed to set phase2 client certificate '%s': %s",
-	        TEST_NEED_SECRETS_EAP_TLS_CLIENT_CERT, error->message);
+	nmtst_assert_success (success, error);
 
 	success = nm_setting_802_1x_set_phase2_private_key (s_8021x,
 	                                                    TEST_NEED_SECRETS_EAP_TLS_PRIVATE_KEY,
@@ -289,9 +244,7 @@ make_tls_phase2_connection (const char *detail, NMSetting8021xCKScheme scheme)
 	                                                    scheme,
 	                                                    NULL,
 	                                                    &error);
-	ASSERT (success == TRUE,
-	        detail, "failed to set phase2 private key '%s': %s",
-	        TEST_NEED_SECRETS_EAP_TLS_PRIVATE_KEY, error->message);
+	nmtst_assert_success (success, error);
 
 	/* IP4 setting */
 	s_ip4 = (NMSettingIP4Config *) nm_setting_ip4_config_new ();
@@ -299,9 +252,7 @@ make_tls_phase2_connection (const char *detail, NMSetting8021xCKScheme scheme)
 
 	g_object_set (s_ip4, NM_SETTING_IP4_CONFIG_METHOD, NM_SETTING_IP4_CONFIG_METHOD_AUTO, NULL);
 
-	ASSERT (nm_connection_verify (connection, &error) == TRUE,
-	        detail, "failed to verify connection: %s",
-	        (error && error->message) ? error->message : "(unknown)");
+	nmtst_assert_connection_verifies_and_normalizable (connection);
 
 	return connection;
 }
@@ -315,37 +266,19 @@ test_need_tls_phase2_secrets_path (void)
 
 	connection = make_tls_phase2_connection ("need-tls-phase2-secrets-path-key",
 	                                         NM_SETTING_802_1X_CK_SCHEME_PATH);
-	ASSERT (connection != NULL,
-	        "need-tls-phase2-secrets-path-key",
-	        "error creating test connection");
 
 	/* Ensure we don't need any secrets since we just set up the connection */
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name == NULL,
-	        "need-tls-phase2-secrets-path-key",
-	        "secrets are unexpectedly required");
-	ASSERT (hints == NULL,
-	        "need-tls-phase2-secrets-path-key",
-	        "hints should be NULL since no secrets were required");
+	g_assert (!setting_name);
+	g_assert (!hints);
 
 	/* Connection is good; clear secrets and ensure private key password is then required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name != NULL,
-	        "need-tls-phase2-secrets-path-key-password",
-	        "unexpected secrets success");
-	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
-			"need-tls-phase2-secrets-path-key-password",
-			"unexpected setting secrets required");
-
-	ASSERT (hints != NULL,
-	        "need-tls-phase2-secrets-path-key-password",
-	        "expected returned secrets hints");
-	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD),
-			"need-tls-phase2-secrets-path-key-password",
-			"expected to require private key password, but it wasn't");
+	g_assert_cmpstr (setting_name, ==, NM_SETTING_802_1X_SETTING_NAME);
+	_assert_hints_has (hints, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD);
 
 	g_ptr_array_free (hints, TRUE);
 	g_object_unref (connection);
@@ -360,37 +293,19 @@ test_need_tls_phase2_secrets_blob (void)
 
 	connection = make_tls_phase2_connection ("need-tls-phase2-secrets-blob-key",
 	                                         NM_SETTING_802_1X_CK_SCHEME_BLOB);
-	ASSERT (connection != NULL,
-	        "need-tls-phase2-secrets-blob-key",
-	        "error creating test connection");
 
 	/* Ensure we don't need any secrets since we just set up the connection */
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name == NULL,
-	        "need-tls-phase2-secrets-blob-key",
-	        "secrets are unexpectedly required");
-	ASSERT (hints == NULL,
-	        "need-tls-phase2-secrets-blob-key",
-	        "hints should be NULL since no secrets were required");
+	g_assert (!setting_name);
+	g_assert (!hints);
 
 	/* Connection is good; clear secrets and ensure private key password is then required */
 	nm_connection_clear_secrets (connection);
 
 	hints = NULL;
 	setting_name = nm_connection_need_secrets (connection, &hints);
-	ASSERT (setting_name != NULL,
-	        "need-tls-phase2-secrets-blob-key-password",
-	        "unexpected secrets success");
-	ASSERT (strcmp (setting_name, NM_SETTING_802_1X_SETTING_NAME) == 0,
-			"need-tls-phase2-secrets-blob-key-password",
-			"unexpected setting secrets required");
-
-	ASSERT (hints != NULL,
-	        "need-tls-phase2-secrets-blob-key-password",
-	        "expected returned secrets hints");
-	ASSERT (find_hints_item (hints, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD),
-			"need-tls-phase2-secrets-blob-key-password",
-			"expected to require private key password, but it wasn't");
+	g_assert_cmpstr (setting_name, ==, NM_SETTING_802_1X_SETTING_NAME);
+	_assert_hints_has (hints, NM_SETTING_802_1X_PHASE2_PRIVATE_KEY_PASSWORD);
 
 	g_ptr_array_free (hints, TRUE);
 	g_object_unref (connection);
@@ -739,11 +654,13 @@ NMTST_DEFINE ();
 int main (int argc, char **argv)
 {
 	GError *error = NULL;
+	gboolean success;
 
 	nmtst_init (&argc, &argv, TRUE);
 
-	if (!nm_utils_init (&error))
-		FAIL ("nm-utils-init", "failed to initialize libnm-util: %s", error->message);
+	success = nm_utils_init (&error);
+	g_assert_no_error (error);
+	g_assert (success);
 
 	/* The tests */
 	g_test_add_func ("/libnm/need_tls_secrets_path", test_need_tls_secrets_path);