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