new upstream release (3.3.0); modify package compatibility for Stretch
[ossec-hids.git] / src / tests / test_os_zlib.c
1 /* Copyright (C) 2014 Trend Micro Inc.
2  * All rights reserved.
3  *
4  * This program is a free software; you can redistribute it
5  * and/or modify it under the terms of the GNU General Public
6  * License (version 2) as published by the FSF - Free Software
7  * Foundation
8  */
9
10 #include <check.h>
11 #include <stdlib.h>
12
13 #include "../os_zlib/os_zlib.h"
14
15 Suite *test_suite(void);
16
17 #define TEST_STRING_1 "Hello World!"
18 #define TEST_STRING_2 "Test hello \n test \t test \r World\n"
19 #define BUFFER_LENGTH 200
20
21
22 START_TEST(test_success1)
23 {
24     char buffer[BUFFER_LENGTH];
25     unsigned long int i1 = os_zlib_compress(TEST_STRING_1, buffer, strlen(TEST_STRING_1), BUFFER_LENGTH);
26
27     ck_assert_uint_ne(i1, 0);
28
29     char buffer2[BUFFER_LENGTH];
30     unsigned long int i2 = os_zlib_uncompress(buffer, buffer2, i1, BUFFER_LENGTH);
31
32     ck_assert_uint_ne(i2, 0);
33     ck_assert_str_eq(buffer2, TEST_STRING_1);
34 }
35 END_TEST
36
37 START_TEST(test_success2)
38 {
39     char buffer[BUFFER_LENGTH];
40     unsigned long int i1 = os_zlib_compress(TEST_STRING_2, buffer, strlen(TEST_STRING_2), BUFFER_LENGTH);
41
42     ck_assert_uint_ne(i1, 0);
43
44     char buffer2[BUFFER_LENGTH];
45     unsigned long int i2 = os_zlib_uncompress(buffer, buffer2, i1, BUFFER_LENGTH);
46
47     ck_assert_uint_ne(i2, 0);
48     ck_assert_str_eq(buffer2, TEST_STRING_2);
49 }
50 END_TEST
51
52 START_TEST(test_failcompress1)
53 {
54     char buffer[BUFFER_LENGTH];
55     unsigned long int i1 = os_zlib_compress(NULL, buffer, strlen(TEST_STRING_1), BUFFER_LENGTH);
56     ck_assert_uint_eq(i1, 0);
57 }
58 END_TEST
59
60 START_TEST(test_failcompress2)
61 {
62     unsigned long int i1 = os_zlib_compress(TEST_STRING_1, NULL, strlen(TEST_STRING_1), BUFFER_LENGTH);
63     ck_assert_uint_eq(i1, 0);
64 }
65 END_TEST
66
67 START_TEST(test_failcompress3)
68 {
69     char buffer[BUFFER_LENGTH];
70     unsigned long int i1 = os_zlib_compress(TEST_STRING_1, buffer, strlen(TEST_STRING_1), 0);
71     ck_assert_uint_eq(i1, 0);
72 }
73 END_TEST
74
75 START_TEST(test_failuncompress1)
76 {
77     char buffer[BUFFER_LENGTH];
78     unsigned long int i1 = os_zlib_compress(TEST_STRING_1, buffer, strlen(TEST_STRING_1), BUFFER_LENGTH);
79     ck_assert_uint_ne(i1, 0);
80
81     char buffer2[BUFFER_LENGTH];
82     unsigned long int i2 = os_zlib_uncompress(NULL, buffer2, i1, BUFFER_LENGTH);
83     ck_assert_uint_eq(i2, 0);
84 }
85 END_TEST
86
87 START_TEST(test_failuncompress2)
88 {
89     char buffer[BUFFER_LENGTH];
90     unsigned long int i1 = os_zlib_compress(TEST_STRING_1, buffer, strlen(TEST_STRING_1), BUFFER_LENGTH);
91     ck_assert_uint_ne(i1, 0);
92
93     unsigned long int i2 = os_zlib_uncompress(buffer, NULL, i1, BUFFER_LENGTH);
94     ck_assert_uint_eq(i2, 0);
95 }
96 END_TEST
97
98 START_TEST(test_failuncompress3)
99 {
100     char buffer[BUFFER_LENGTH];
101     unsigned long int i1 = os_zlib_compress(TEST_STRING_1, buffer, strlen(TEST_STRING_1), BUFFER_LENGTH);
102     ck_assert_uint_ne(i1, 0);
103
104     char buffer2[BUFFER_LENGTH];
105     unsigned long int i2 = os_zlib_uncompress(buffer, buffer2, 0, BUFFER_LENGTH);
106     ck_assert_uint_eq(i2, 0);
107 }
108 END_TEST
109
110 START_TEST(test_failuncompress4)
111 {
112     char buffer[BUFFER_LENGTH];
113     unsigned long int i1 = os_zlib_compress(TEST_STRING_1, buffer, strlen(TEST_STRING_1), BUFFER_LENGTH);
114     ck_assert_uint_ne(i1, 0);
115
116     char buffer2[BUFFER_LENGTH];
117     unsigned long int i2 = os_zlib_uncompress(buffer, buffer2, i1, 0);
118     ck_assert_uint_eq(i2, 0);
119 }
120 END_TEST
121
122
123 Suite *test_suite(void)
124 {
125     Suite *s = suite_create("os_zlib");
126
127     /* Core test case */
128     TCase *tc_core = tcase_create("Core");
129     tcase_add_test(tc_core, test_success1);
130     tcase_add_test(tc_core, test_success2);
131     tcase_add_test(tc_core, test_failcompress1);
132     tcase_add_test(tc_core, test_failcompress2);
133     tcase_add_test(tc_core, test_failcompress3);
134     tcase_add_test(tc_core, test_failuncompress1);
135     tcase_add_test(tc_core, test_failuncompress2);
136     tcase_add_test(tc_core, test_failuncompress3);
137     tcase_add_test(tc_core, test_failuncompress4);
138     suite_add_tcase(s, tc_core);
139
140     return (s);
141 }
142
143 int main(void)
144 {
145     Suite *s = test_suite();
146     SRunner *sr = srunner_create(s);
147     srunner_run_all(sr, CK_NORMAL);
148     int number_failed = srunner_ntests_failed(sr);
149     srunner_free(sr);
150
151     return ((number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE);
152 }