git.fiddlerwoaroof.com
Browse code

refactors tests with macros

jbalcita authored on 06/04/2017 05:38:39
Showing 3 changed files
... ...
@@ -5,27 +5,40 @@
5 5
 #include "conversation.h"
6 6
 #include "token.h"
7 7
 
8
+
8 9
 const char *token_to_return = "";
10
+int validation_to_return = 0;
11
+int log_success_invoked = 1;
12
+int at_least_one_failed_test = 0;
9 13
 pam_handle_t *passed_pam_handle = NULL;
14
+
15
+#define reset_vars() \
16
+  validation_to_return = 1; \
17
+  passed_pam_handle = NULL; \
18
+  log_success_invoked = 0;
19
+
20
+#define check_result(result, message) \
21
+  if(!(result)) { \
22
+    fprintf(stderr, message); \
23
+    at_least_one_failed_test = 1; \
24
+  }
25
+
10 26
 const char *ask_for_token(pam_handle_t *pamh) {
11 27
     passed_pam_handle = pamh;
12 28
     return token_to_return;
13 29
 }
14 30
 
15
-int validation_to_return = 0;
16 31
 int validate_token(const char *token) {
17 32
     return validation_to_return;
18 33
 }
19 34
 
20
-
21
-int log_success_invoked = 0;
22 35
 void log_success() {
23 36
     log_success_invoked = 1;
24 37
 }
25 38
 
26
-
27 39
 int pam_sm_setcred_returns_success() {
28 40
     //given
41
+    reset_vars()
29 42
 
30 43
     //when
31 44
     int result = pam_sm_setcred(NULL, 0, 0, NULL);
... ...
@@ -36,7 +49,7 @@ int pam_sm_setcred_returns_success() {
36 49
 
37 50
 int pam_sm_authenticate_success_invokes_log_success() {
38 51
     // given
39
-    validation_to_return = 1;
52
+    reset_vars()
40 53
     log_success_invoked = 0;
41 54
 
42 55
     //when
... ...
@@ -46,7 +59,7 @@ int pam_sm_authenticate_success_invokes_log_success() {
46 59
 
47 60
 int succeeds_with_valid_token() {
48 61
     //given
49
-    validation_to_return = 1;
62
+    reset_vars()
50 63
 
51 64
     //when
52 65
     int result = pam_sm_authenticate(NULL, 0, 0, NULL);
... ...
@@ -57,6 +70,7 @@ int succeeds_with_valid_token() {
57 70
 
58 71
 int fails_with_invalid_token() {
59 72
     //given
73
+    reset_vars()
60 74
     validation_to_return = 0;
61 75
 
62 76
     //when
... ...
@@ -67,34 +81,15 @@ int fails_with_invalid_token() {
67 81
 }
68 82
 
69 83
 int main(int argc, char* argv[]) {
70
-    int test1_result = succeeds_with_valid_token();
71
-    if (!test1_result) {
72
-        fprintf(stderr, "succeds with valid token failed\n");
73
-    }
84
+    check_result(pam_sm_setcred_returns_success(), "set cred failed\n");
85
+    check_result(pam_sm_authenticate_success_invokes_log_success(), "authenticate invokes log_success failed\n");
86
+    check_result(succeeds_with_valid_token(), "succeeds with valid token failed\n");
87
+    check_result(fails_with_invalid_token(), "fails with invalid token failed\n")
74 88
 
75
-    int test3_result = pam_sm_setcred_returns_success();
76
-    if (!test3_result) {
77
-        fprintf(stderr, "set cred failed\n");
78
-    }
79
-
80
-    int test4_result = pam_sm_authenticate_success_invokes_log_success();
81
-    if (!test4_result) {
82
-        fprintf(stderr, "authenticate invokes log_success failed\n");
83
-    }
84
-
85
-    int test5_result = fails_with_invalid_token();
86
-    if (!test5_result) {
87
-        fprintf(stderr, "fails with invalid token failed\n");
88
-    }
89
-
90
-
91
-
92
-    if (test1_result && test3_result && test4_result && test5_result) {
93
-        fprintf(stderr, "success\n");
94
-        return 0;
89
+    if(at_least_one_failed_test) {
90
+      return 1;
95 91
     } else {
96
-        return 1;
92
+      fprintf(stderr, "dual_control_test: success!\n");
93
+      return 0;
97 94
     }
98 95
 }
99
-
100
-
101 96
Binary files a/logging_test and b/logging_test differ
... ...
@@ -66,10 +66,9 @@ int test_log_success() {
66 66
 
67 67
 int main(int numargs, char **args) {
68 68
     if(test_log_success()) {
69
-        fprintf(stderr, "Success!\n");
69
+        fprintf(stderr, "logging_test: success!\n");
70 70
         return 0;
71 71
     } else {
72 72
         return 1;
73 73
     }
74 74
 }
75
-