Make test_load.c not depend on the C locale
authorPetri Lehtinen <petri@digip.org>
Mon, 30 Jan 2012 19:23:15 +0000 (21:23 +0200)
committerPetri Lehtinen <petri@digip.org>
Mon, 30 Jan 2012 19:23:18 +0000 (21:23 +0200)
Fixes #51.

test/suites/api/test_load.c

index d8cb912..1f3ff1c 100644 (file)
@@ -13,13 +13,24 @@ static void file_not_found()
 {
     json_t *json;
     json_error_t error;
+    char *pos;
 
     json = json_load_file("/path/to/nonexistent/file.json", 0, &error);
     if(json)
         fail("json_load_file returned non-NULL for a nonexistent file");
     if(error.line != -1)
         fail("json_load_file returned an invalid line number");
-    if(strcmp(error.text, "unable to open /path/to/nonexistent/file.json: No such file or directory") != 0)
+
+    /* The error message is locale specific, only check the beginning
+       of the error message. */
+
+    pos = strchr(error.text, ':');
+    if(!pos)
+        fail("json_load_file returne an invalid error message");
+
+    *pos = '\0';
+
+    if(strcmp(error.text, "unable to open /path/to/nonexistent/file.json") != 0)
         fail("json_load_file returned an invalid error message");
 }