Merge branch '1.1'
Conflicts: test/.gitignore test/testprogs/Makefile.am
This commit is contained in:
commit
17d913307e
@ -418,11 +418,15 @@ static int lex_scan_number(lex_t *lex, char c, json_error_t *error)
|
|||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else /* c != '0' */ {
|
else if(isdigit(c)) {
|
||||||
c = lex_get_save(lex, error);
|
c = lex_get_save(lex, error);
|
||||||
while(isdigit(c))
|
while(isdigit(c))
|
||||||
c = lex_get_save(lex, error);
|
c = lex_get_save(lex, error);
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
lex_unget_unsave(lex, c);
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
if(c != '.' && c != 'E' && c != 'e') {
|
if(c != '.' && c != 'E' && c != 'e') {
|
||||||
long value;
|
long value;
|
||||||
@ -864,6 +868,8 @@ json_t *json_load_file(const char *path, json_error_t *error)
|
|||||||
json_t *result;
|
json_t *result;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
|
error_init(error);
|
||||||
|
|
||||||
fp = fopen(path, "r");
|
fp = fopen(path, "r");
|
||||||
if(!fp)
|
if(!fp)
|
||||||
{
|
{
|
||||||
|
1
test/.gitignore
vendored
1
test/.gitignore
vendored
@ -4,6 +4,7 @@ load_file_dump_file
|
|||||||
testlogs
|
testlogs
|
||||||
testprogs/test_array
|
testprogs/test_array
|
||||||
testprogs/test_dump
|
testprogs/test_dump
|
||||||
|
testprogs/test_load
|
||||||
testprogs/test_number
|
testprogs/test_number
|
||||||
testprogs/test_object
|
testprogs/test_object
|
||||||
testprogs/test_simple
|
testprogs/test_simple
|
||||||
|
17
test/testdata/invalid
vendored
17
test/testdata/invalid
vendored
@ -167,7 +167,22 @@ too big negative integer near '-123123123123123'
|
|||||||
====
|
====
|
||||||
1
|
1
|
||||||
invalid token near 'troo'
|
invalid token near 'troo'
|
||||||
==== invalid-escap ====
|
==== minus-sign-without-number ====
|
||||||
|
[-foo]
|
||||||
|
====
|
||||||
|
1
|
||||||
|
invalid token near '-'
|
||||||
|
==== invalid-negative-integerr ====
|
||||||
|
[-123foo]
|
||||||
|
====
|
||||||
|
1
|
||||||
|
']' expected near 'foo'
|
||||||
|
==== invalid-negative-real ====
|
||||||
|
[-123.123foo]
|
||||||
|
====
|
||||||
|
1
|
||||||
|
']' expected near 'foo'
|
||||||
|
==== invalid-escape ====
|
||||||
["\a <-- invalid escape"]
|
["\a <-- invalid escape"]
|
||||||
====
|
====
|
||||||
1
|
1
|
||||||
|
17
test/testdata/invalid-strip
vendored
17
test/testdata/invalid-strip
vendored
@ -167,7 +167,22 @@ too big negative integer near '-123123123123123'
|
|||||||
====
|
====
|
||||||
1
|
1
|
||||||
invalid token near 'troo'
|
invalid token near 'troo'
|
||||||
==== invalid-escap ====
|
==== minus-sign-without-number ====
|
||||||
|
[-foo]
|
||||||
|
====
|
||||||
|
1
|
||||||
|
invalid token near '-'
|
||||||
|
==== invalid-negative-integerr ====
|
||||||
|
[-123foo]
|
||||||
|
====
|
||||||
|
1
|
||||||
|
']' expected near 'foo'
|
||||||
|
==== invalid-negative-real ====
|
||||||
|
[-123.123foo]
|
||||||
|
====
|
||||||
|
1
|
||||||
|
']' expected near 'foo'
|
||||||
|
==== invalid-escape ====
|
||||||
["\a <-- invalid escape"]
|
["\a <-- invalid escape"]
|
||||||
====
|
====
|
||||||
1
|
1
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
check_PROGRAMS = test_array test_dump test_simple test_number test_object
|
check_PROGRAMS = test_array test_dump test_load test_simple test_number test_object
|
||||||
|
|
||||||
test_array_SOURCES = test_array.c util.h
|
test_array_SOURCES = test_array.c util.h
|
||||||
test_dump_SOURCES = test_dump.c util.h
|
test_dump_SOURCES = test_dump.c util.h
|
||||||
|
test_load_SOURCES = test_load.c util.h
|
||||||
test_simple_SOURCES = test_simple.c util.h
|
test_simple_SOURCES = test_simple.c util.h
|
||||||
test_number_SOURCES = test_number.c util.h
|
test_number_SOURCES = test_number.c util.h
|
||||||
test_object_SOURCES = test_object.c util.h
|
test_object_SOURCES = test_object.c util.h
|
||||||
|
24
test/testprogs/test_load.c
Normal file
24
test/testprogs/test_load.c
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2009 Petri Lehtinen <petri@digip.org>
|
||||||
|
*
|
||||||
|
* Jansson is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the MIT license. See LICENSE for details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <jansson.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
json_t *json;
|
||||||
|
json_error_t error;
|
||||||
|
|
||||||
|
json = json_load_file("/path/to/nonexistent/file.json", &error);
|
||||||
|
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)
|
||||||
|
fail("json_load_file returned an invalid error message");
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user