Blob Blame History Raw
From 5a60e11298020e04b17160edbd9d575055ecb643 Mon Sep 17 00:00:00 2001
From: Jakub Filak <jfilak@redhat.com>
Date: Tue, 4 Nov 2014 15:29:06 +0100
Subject: [PATCH] testsuite: do not expected ureport exiting on rhsm cert
 errors

Related #1140224

Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
 tests/ureport.at | 66 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 file changed, 50 insertions(+), 16 deletions(-)

diff --git a/tests/ureport.at b/tests/ureport.at
index 22d34e9..76e2f7a 100644
--- a/tests/ureport.at
+++ b/tests/ureport.at
@@ -339,12 +339,24 @@ void set_ureport_server_config(struct ureport_server_config *config,
 
 void my_assert(const char *str1, const char *str2)
 {
-    if (str1 == NULL || str2 == NULL)
-        assert( str1 == NULL && str2 == NULL );
-    else
-        assert(strcmp(str1, str2) == 0);
+    if (str1 == str2)
+        return;
 
-    return;
+    if (str1 == NULL && str2 != NULL)
+    {
+        fprintf(stderr, "Assertion failed: NULL == '%s'\n", str2);
+        abort();
+    }
+    else if (str1 != NULL && str2 == NULL)
+    {
+        fprintf(stderr, "Assertion failed: '%s' == NULL\n", str1);
+        abort();
+    }
+    else if (strcmp(str1, str2) != 0)
+    {
+        fprintf(stderr, "Assertion failed: '%s' == '%s'\n", str1, str2);
+        abort();
+    }
 }
 
 void assert_ureport_server_config(struct ureport_server_config *config,
@@ -365,8 +377,10 @@ void assert_ureport_server_config(struct ureport_server_config *config,
     return;
 }
 
-int test_ureport_server_config_set_client_auth_exit_code(struct ureport_server_config *config,
-                                                         const char *client_auth)
+int test_ureport_server_config_set_client_auth_exit_code_ext(struct ureport_server_config *config,
+                                                             const char *client_auth,
+                                                             const char *cert_file,
+                                                             const char *key_file)
 {
     ureport_server_config_init(config);
 
@@ -380,6 +394,8 @@ int test_ureport_server_config_set_client_auth_exit_code(struct ureport_server_c
     if (pid == 0)
     {
         ureport_server_config_set_client_auth(config, client_auth);
+        assert((cert_file == (void *)-1) || (cert_file == NULL && config->ur_client_cert == NULL) || (strcmp(cert_file, config->ur_client_cert) == 0));
+        assert((key_file == (void *)-1) || (key_file == NULL && config->ur_client_cert == NULL) || (strcmp(key_file, config->ur_client_key) == 0));
         exit(0);
     }
     int status;
@@ -390,6 +406,12 @@ int test_ureport_server_config_set_client_auth_exit_code(struct ureport_server_c
     return status;
 }
 
+int test_ureport_server_config_set_client_auth_exit_code(struct ureport_server_config *config,
+                                                         const char *client_auth)
+{
+    return test_ureport_server_config_set_client_auth_exit_code_ext(config, client_auth, (void *)-1, (void *)-1);
+}
+
 int main(void)
 {
     g_verbose=3;
@@ -418,8 +440,8 @@ int main(void)
     assert(empty_cert_dir);
     setenv("LIBREPORT_DEBUG_RHSMENT_PEM_DIR_PATH", empty_cert_dir, 1);
 
-    int status = test_ureport_server_config_set_client_auth_exit_code(&config, "rhsm");
-    assert(status != 0 && status != -1);
+    int status = test_ureport_server_config_set_client_auth_exit_code_ext(&config, "rhsm", NULL, NULL);
+    assert(status == 0);
 
     assert(rmdir(empty_cert_dir) == 0);
 
@@ -429,8 +451,8 @@ int main(void)
 
     setenv("LIBREPORT_DEBUG_RHSMENT_PEM_DIR_PATH", TESTING_CERTS_INCORRECT_CONTENT_DIR_PATH, 1);
 
-    status = test_ureport_server_config_set_client_auth_exit_code(&config, "rhsm");
-    assert(status != 0 && status != -1);
+    status = test_ureport_server_config_set_client_auth_exit_code_ext(&config, "rhsm", NULL, NULL);
+    assert(status == 0);
 
     /* client_auth == rhsm */
     /* ur_url == NULL */
@@ -548,12 +570,24 @@ AT_TESTFUN([ureport_server_config_set_basic_auth],
 
 void my_assert(const char *str1, const char *str2)
 {
-    if (str1 == NULL || str2 == NULL)
-        assert( str1 == NULL && str2 == NULL );
-    else
-        assert(strcmp(str1, str2) == 0);
+    if (str1 == str2)
+        return;
 
-    return;
+    if (str1 == NULL && str2 != NULL)
+    {
+        fprintf(stderr, "Assertion failed: NULL == '%s'\n", str2);
+        abort();
+    }
+    else if (str1 != NULL && str2 == NULL)
+    {
+        fprintf(stderr, "Assertion failed: '%s' == NULL\n", str1);
+        abort();
+    }
+    else if (strcmp(str1, str2) != 0)
+    {
+        fprintf(stderr, "Assertion failed: '%s' == '%s'\n", str1, str2);
+        abort();
+    }
 }
 
 void assert_ureport_server_config(struct ureport_server_config *config,
-- 
2.1.0