Browse code
refactors tests with macros
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 |
- |