2009-10-27 23:46:57 +08:00
|
|
|
/*
|
2011-01-21 03:28:54 +08:00
|
|
|
* Copyright (c) 2009-2011 Petri Lehtinen <petri@digip.org>
|
2009-10-27 23:46:57 +08:00
|
|
|
*
|
|
|
|
* 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"
|
|
|
|
|
2011-05-15 18:57:48 +08:00
|
|
|
static void file_not_found()
|
2009-10-27 23:46:57 +08:00
|
|
|
{
|
|
|
|
json_t *json;
|
2010-10-27 02:05:40 +08:00
|
|
|
json_error_t error;
|
2009-10-27 23:46:57 +08:00
|
|
|
|
2010-08-14 03:19:20 +08:00
|
|
|
json = json_load_file("/path/to/nonexistent/file.json", 0, &error);
|
2011-04-05 20:04:16 +08:00
|
|
|
if(json)
|
|
|
|
fail("json_load_file returned non-NULL for a nonexistent file");
|
2010-10-27 02:05:40 +08:00
|
|
|
if(error.line != -1)
|
2009-10-27 23:46:57 +08:00
|
|
|
fail("json_load_file returned an invalid line number");
|
2010-10-27 02:05:40 +08:00
|
|
|
if(strcmp(error.text, "unable to open /path/to/nonexistent/file.json: No such file or directory") != 0)
|
2009-10-27 23:46:57 +08:00
|
|
|
fail("json_load_file returned an invalid error message");
|
2011-05-15 18:57:48 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static void reject_duplicates()
|
|
|
|
{
|
|
|
|
json_error_t error;
|
|
|
|
|
|
|
|
if(json_loads("{\"foo\": 1, \"foo\": 2}", JSON_REJECT_DUPLICATES, &error))
|
|
|
|
fail("json_loads did not detect a duplicate key");
|
|
|
|
check_error("duplicate object key near '\"foo\"'", "<string>", 1, 16, 16);
|
|
|
|
}
|
|
|
|
|
|
|
|
int main()
|
|
|
|
{
|
|
|
|
file_not_found();
|
|
|
|
reject_duplicates();
|
2009-10-27 23:46:57 +08:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|