6 /* This test is just to be used with valgrind */
10 gchar **array = g_new (gchar *, 4);
11 array [0] = g_strdup ("one");
12 array [1] = g_strdup ("two");
13 array [2] = g_strdup ("three");
25 gchar *x = g_strconcat ("Hello", ", ", "world", NULL);
26 if (strcmp (x, "Hello, world") != 0)
27 return FAILED("concat failed, got: %s", x);
35 const gchar *to_split = "Hello world, how are we doing today?";
39 v= g_strsplit(to_split, " ", 0);
42 return FAILED("split failed, got NULL vector (1)");
45 for(i = 0; v[i] != NULL; i++);
47 return FAILED("split failed, expected 7 tokens, got %d", i);
52 v = g_strsplit(to_split, ":", -1);
54 return FAILED("split failed, got NULL vector (2)");
57 for(i = 0; v[i] != NULL; i++);
59 return FAILED("split failed, expected 1 token, got %d", i);
62 if(strcmp(v[0], to_split) != 0) {
63 return FAILED("expected vector[0] to be '%s' but it was '%s'",
74 gchar *a = g_strdup ("onetwothree");
75 gchar *a_target = "eerhtowteno";
76 gchar *b = g_strdup ("onetwothre");
77 gchar *b_target = "erhtowteno";
80 if (strcmp (a, a_target)) {
83 return FAILED("strreverse failed. Expecting: '%s' and got '%s'\n", a, a_target);
87 if (strcmp (b, b_target)) {
90 return FAILED("strreverse failed. Expecting: '%s' and got '%s'\n", b, b_target);
102 s = g_strjoin (NULL, "a", "b", NULL);
103 if (strcmp (s, "ab") != 0)
104 return FAILED ("Join of two strings with no separator fails");
107 s = g_strjoin ("", "a", "b", NULL);
108 if (strcmp (s, "ab") != 0)
109 return FAILED ("Join of two strings with empty separator fails");
112 s = g_strjoin ("-", "a", "b", NULL);
113 if (strcmp (s, "a-b") != 0)
114 return FAILED ("Join of two strings with separator fails");
117 s = g_strjoin ("-", "aaaa", "bbbb", "cccc", "dddd", NULL);
118 if (strcmp (s, "aaaa-bbbb-cccc-dddd") != 0)
119 return FAILED ("Join of multiple strings fails");
122 s = g_strjoin ("-", NULL);
123 if (s == NULL || (strcmp (s, "") != 0))
124 return FAILED ("Failed to join empty arguments");
133 char *str = g_strdup (" \t\n hola");
136 if (strcmp ("hola", str)) {
137 fprintf (stderr, "%s\n", str);
139 return FAILED ("Failed.");
148 char *str = g_strdup ("hola \t");
151 if (strcmp ("hola", str)) {
152 fprintf (stderr, "%s\n", str);
154 return FAILED ("Failed.");
163 char *str = g_strdup (" \t hola ");
166 if (strcmp ("hola", str)) {
167 fprintf (stderr, "%s\n", str);
169 return FAILED ("Failed.");
175 #define urit(so,j) do { s = g_filename_to_uri (so, NULL, NULL); if (strcmp (s, j) != 0) return FAILED("Got %s expected %s", s, j); g_free (s); } while (0);
177 #define errit(so) do { s = g_filename_to_uri (so, NULL, NULL); if (s != NULL) return FAILED ("got %s, expected NULL", s); } while (0);
180 test_filename_to_uri ()
184 urit ("/a", "file:///a");
185 urit ("/home/miguel", "file:///home/miguel");
186 urit ("/home/mig uel", "file:///home/mig%20uel");
187 urit ("/\303\241", "file:///%C3%A1");
188 urit ("/\303\241/octal", "file:///%C3%A1/octal");
189 urit ("/%", "file:///%25");
190 urit ("/\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040", "file:///%01%02%03%04%05%06%07%08%09%0A%0B%0C%0D%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20");
191 urit ("/!$&'()*+,-./", "file:///!$&'()*+,-./");
192 urit ("/\042\043\045", "file:///%22%23%25");
193 urit ("/0123456789:=", "file:///0123456789:=");
194 urit ("/\073\074\076\077", "file:///%3B%3C%3E%3F");
195 urit ("/\133\134\135\136_\140\173\174\175", "file:///%5B%5C%5D%5E_%60%7B%7C%7D");
196 urit ("/\173\174\175\176\177\200", "file:///%7B%7C%7D~%7F%80");
197 urit ("/@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", "file:///@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
204 #define fileit(so,j) do { s = g_filename_from_uri (so, NULL, NULL); if (strcmp (s, j) != 0) return FAILED("Got %s expected %s", s, j); g_free (s); } while (0);
206 #define ferrit(so) do { s = g_filename_from_uri (so, NULL, NULL); if (s != NULL) return FAILED ("got %s, expected NULL", s); } while (0);
209 test_filename_from_uri ()
213 fileit ("file:///a", "/a");
214 fileit ("file:///%41", "/A");
215 fileit ("file:///home/miguel", "/home/miguel");
216 fileit ("file:///home/mig%20uel", "/home/mig uel");
221 ferrit ("file:///%");
222 ferrit ("file:///%0");
223 ferrit ("file:///%jj");
228 static Test strutil_tests [] = {
229 {"g_strfreev", test_strfreev},
230 {"g_strconcat", test_concat},
231 {"g_strsplit", test_split},
232 {"g_strreverse", test_strreverse},
233 {"g_strjoin", test_strjoin},
234 {"g_strchug", test_strchug},
235 {"g_strchomp", test_strchomp},
236 {"g_strstrip", test_strstrip},
237 {"g_filename_to_uri", test_filename_to_uri},
238 {"g_filename_from_uri", test_filename_from_uri},
242 DEFINE_TEST_GROUP_INIT(strutil_tests_init, strutil_tests)