1 #include <r_util.h>
2 #include "minunit.h"
3
test_r_hex_from_code()4 bool test_r_hex_from_code() {
5 const char *s;
6 char *r;
7 s = "char *s = \"ABCD\";";
8 r = r_hex_from_code (s);
9 mu_assert_streq (r, "41424344", s);
10 free (r);
11 s = "char *s = \"AB\" \"CD\";";
12 r = r_hex_from_code (s);
13 mu_assert_streq (r, "41424344", s);
14 free (r);
15 s = "char *s = \"\x41\x42\x43\x44\"";
16 r = r_hex_from_code (s);
17 mu_assert_streq (r, "41424344", s);
18 free (r);
19 s = "char *s = \"\x41\x42\" /* test */ \"\x43\x44\";";
20 r = r_hex_from_code (s);
21 mu_assert_streq (r, "41424344", s);
22 free (r);
23 s = "char *s = \"\n\r\033\"";
24 r = r_hex_from_code (s);
25 mu_assert_streq (r, "0a0d1b", s);
26 free (r);
27 s = "uint8_t buffer[3] = {0x41, 0x42, 0x43, 0x44};";
28 r = r_hex_from_code (s);
29 mu_assert_streq (r, "41424344", s);
30 free (r);
31 s = "uint8_t buffer[3] = {0x41,\n0x42,\n0x43,\n0x44};";
32 r = r_hex_from_code (s);
33 mu_assert_streq (r, "41424344", s);
34 free (r);
35 s = "uint8_t buffer[3] = { 0x41 , \n 0x42, \n 0x43 , \n 0x44 } ;";
36 r = r_hex_from_code (s);
37 mu_assert_streq (r, "41424344", s);
38 free (r);
39 s = "uint8_t buffer[3] = {0x41, /* test */0x42, 0x43,/*test*/ 0x44};";
40 r = r_hex_from_code (s);
41 mu_assert_streq (r, "41424344", s);
42 free (r);
43 s = "buf = \"\x41\x42\x43\x44\"";
44 r = r_hex_from_code (s);
45 mu_assert_streq (r, "41424344", s);
46 free (r);
47 s = "buf = [0x41, 0x42, 0x43, 0x44]";
48 r = r_hex_from_code (s);
49 mu_assert_streq (r, "41424344", s);
50 free (r);
51
52 mu_end;
53 }
54
test_r_hex_from_c()55 bool test_r_hex_from_c() {
56 const char *s;
57 char *r;
58 s = "char *s = \"ABCD\";";
59 r = r_hex_from_c (s);
60 mu_assert_streq (r, "41424344", s);
61 free (r);
62 s = "char *s = \"AB\" \"CD\";";
63 r = r_hex_from_c (s);
64 mu_assert_streq (r, "41424344", s);
65 free (r);
66 s = "char *s = \"\x41\x42\x43\x44\"";
67 r = r_hex_from_c (s);
68 mu_assert_streq (r, "41424344", s);
69 free (r);
70 s = "char *s = \"\x41\x42\" /* test */ \"\x43\x44\";";
71 r = r_hex_from_c (s);
72 mu_assert_streq (r, "41424344", s);
73 free (r);
74 s = "char *s = \"\n\r\033\"";
75 r = r_hex_from_c (s);
76 mu_assert_streq (r, "0a0d1b", s);
77 free (r);
78 s = "uint8_t buffer[3] = {0x41, 0x42, 0x43, 0x44};";
79 r = r_hex_from_c (s);
80 mu_assert_streq (r, "41424344", s);
81 free (r);
82 s = "uint8_t buffer[3] = {0x41,\n0x42,\n0x43,\n0x44};";
83 r = r_hex_from_c (s);
84 mu_assert_streq (r, "41424344", s);
85 free (r);
86 s = "uint8_t buffer[3] = { 0x41 , \n 0x42, \n 0x43 , \n 0x44 } ;";
87 r = r_hex_from_c (s);
88 mu_assert_streq (r, "41424344", s);
89 free (r);
90 s = "uint8_t buffer[3] = {0x41, /* test */0x42, 0x43,/*test*/ 0x44};";
91 r = r_hex_from_c (s);
92 mu_assert_streq (r, "41424344", s);
93 free (r);
94
95 mu_end;
96 }
97
test_r_hex_from_py()98 bool test_r_hex_from_py() {
99 const char *s;
100 char *r;
101 s = "s = \"ABCD\";";
102 r = r_hex_from_py (s);
103 mu_assert_streq (r, "41424344", s);
104 free (r);
105 s = "s = \"\x41\x42\x43\x44\"";
106 r = r_hex_from_py (s);
107 mu_assert_streq (r, "41424344", s);
108 free (r);
109 s = "s = \"\n\r\"";
110 r = r_hex_from_py (s);
111 mu_assert_streq (r, "0a0d", s);
112 free (r);
113 s = "buffer = [0x41, 0x42, 0x43, 0x44]";
114 r = r_hex_from_py (s);
115 mu_assert_streq (r, "41424344", s);
116 free (r);
117 s = "buffer = [0x41,\n0x42,\n0x43,\n0x44]";
118 r = r_hex_from_py (s);
119 mu_assert_streq (r, "41424344", s);
120 free (r);
121 s = "buffer = [ 0x41 , \n 0x42, \n 0x43 , \n 0x44 ]";
122 r = r_hex_from_py (s);
123 mu_assert_streq (r, "41424344", s);
124 free (r);
125
126 mu_end;
127 }
128
test_r_hex_no_code()129 bool test_r_hex_no_code() {
130 const char *s;
131 char *r;
132 s = "\"ABCD\"";
133 r = r_hex_no_code (s);
134 mu_assert_streq (r, "41424344", s);
135 free (r);
136 s = "\"AB\" \"CD\"";
137 r = r_hex_no_code (s);
138 mu_assert_streq (r, "41424344", s);
139 free (r);
140 s = "\"AB\"\n\"CD\"\n";
141 r = r_hex_no_code (s);
142 mu_assert_streq (r, "41424344", s);
143 free (r);
144 s = "\"\x41\x42\x43\x44\"";
145 r = r_hex_no_code (s);
146 mu_assert_streq (r, "41424344", s);
147 free (r);
148 s = "\"\x41\x42\" \"\x43\x44\";";
149 r = r_hex_no_code (s);
150 mu_assert_streq (r, "41424344", s);
151 free (r);
152
153 mu_end;
154 }
155
all_tests()156 bool all_tests() {
157 mu_run_test (test_r_hex_from_c);
158 mu_run_test (test_r_hex_from_py);
159 mu_run_test (test_r_hex_from_code);
160 mu_run_test (test_r_hex_no_code);
161 return tests_passed != tests_run;
162 }
163
main(int argc,char ** argv)164 int main(int argc, char **argv) {
165 return all_tests();
166 }
167