2 #include "fileHandlingTest.h"
4 #include "ntp_stdlib.h"
13 bool CompareKeys(struct key expected, struct key actual) {
14 if (expected.key_id != actual.key_id){
15 printf("Expected key_id: %d", expected.key_id);
16 printf(" but was: %d\n", actual.key_id);
19 if (expected.key_len != actual.key_len){
20 printf("Expected key_len: %d", expected.key_len);
21 printf(" but was: %d\n", actual.key_len);
24 if (strcmp(expected.type, actual.type) != 0){
25 printf("Expected key_type: %s", expected.type);
26 printf(" but was: %s\n", actual.type);
30 if (memcmp(expected.key_seq, actual.key_seq, expected.key_len) != 0){
31 printf("Key mismatch!\n");
37 bool CompareKeysAlternative(int key_id,
45 temp.key_len = key_len;
46 strlcpy(temp.type, type, sizeof(temp.type));
47 memcpy(temp.key_seq, key_seq, key_len);
49 return CompareKeys(temp, actual);
53 void test_ReadEmptyKeyFile() {
54 struct key* keys = NULL;
56 TEST_ASSERT_EQUAL(0, auth_init(CreatePath("key-test-empty", INPUT_DIR), &keys));
58 TEST_ASSERT_TRUE(keys == NULL);
61 void test_ReadASCIIKeys() {
62 struct key* keys = NULL;
64 TEST_ASSERT_EQUAL(2, auth_init(CreatePath("key-test-ascii", INPUT_DIR), &keys));
66 TEST_ASSERT_TRUE(keys != NULL);
68 struct key* result = NULL;
70 TEST_ASSERT_TRUE(result != NULL);
71 TEST_ASSERT_TRUE(CompareKeysAlternative(40, 11, "MD5", "asciikeyTwo", *result));
75 TEST_ASSERT_TRUE(result != NULL);
76 TEST_ASSERT_TRUE(CompareKeysAlternative(50, 11, "MD5", "asciikeyOne", *result));
79 void test_ReadHexKeys() {
80 struct key* keys = NULL;
82 TEST_ASSERT_EQUAL(3, auth_init(CreatePath("key-test-hex", INPUT_DIR), &keys));
84 TEST_ASSERT_TRUE(keys != NULL);
86 struct key* result = NULL;
88 TEST_ASSERT_TRUE(result != NULL);
89 TEST_ASSERT_TRUE(CompareKeysAlternative(10, 13, "MD5",
90 "\x01\x23\x45\x67\x89\xab\xcd\xef\x01\x23\x45\x67\x89", *result));
94 TEST_ASSERT_TRUE(result != NULL);
95 char data1[15]; memset(data1, 0x11, 15);
96 TEST_ASSERT_TRUE(CompareKeysAlternative(20, 15, "MD5", data1, *result));
100 TEST_ASSERT_TRUE(result != NULL);
101 char data2[13]; memset(data2, 0x01, 13);
102 TEST_ASSERT_TRUE(CompareKeysAlternative(30, 13, "MD5", data2, *result));
105 void test_ReadKeyFileWithComments() {
106 struct key* keys = NULL;
108 TEST_ASSERT_EQUAL(2, auth_init(CreatePath("key-test-comments", INPUT_DIR), &keys));
110 TEST_ASSERT_TRUE(keys != NULL);
112 struct key* result = NULL;
113 get_key(10, &result);
114 TEST_ASSERT_TRUE(result != NULL);
115 char data[15]; memset(data, 0x01, 15);
116 TEST_ASSERT_TRUE(CompareKeysAlternative(10, 15, "MD5", data, *result));
119 get_key(34, &result);
120 TEST_ASSERT_TRUE(result != NULL);
121 TEST_ASSERT_TRUE(CompareKeysAlternative(34, 3, "MD5", "xyz", *result));
124 void test_ReadKeyFileWithInvalidHex() {
125 struct key* keys = NULL;
127 TEST_ASSERT_EQUAL(1, auth_init(CreatePath("key-test-invalid-hex", INPUT_DIR), &keys));
129 TEST_ASSERT_TRUE(keys != NULL);
131 struct key* result = NULL;
132 get_key(10, &result);
133 TEST_ASSERT_TRUE(result != NULL);
134 char data[15]; memset(data, 0x01, 15);
135 TEST_ASSERT_TRUE(CompareKeysAlternative(10, 15, "MD5", data, *result));
138 get_key(30, &result); // Should not exist, and result should remain NULL.
139 TEST_ASSERT_TRUE(result == NULL);