2
* Copyright (c) 2009-2011 Petri Lehtinen <petri@digip.org>
4
* Jansson is free software; you can redistribute it and/or modify
5
* it under the terms of the MIT license. See LICENSE for details.
12
/* Call the simple functions not covered by other tests of the public API */
17
value = json_integer(1);
18
if(json_typeof(value) != JSON_INTEGER)
19
fail("json_typeof failed");
21
if(json_is_object(value))
22
fail("json_is_object failed");
24
if(json_is_array(value))
25
fail("json_is_array failed");
27
if(json_is_string(value))
28
fail("json_is_string failed");
30
if(!json_is_integer(value))
31
fail("json_is_integer failed");
33
if(json_is_real(value))
34
fail("json_is_real failed");
36
if(!json_is_number(value))
37
fail("json_is_number failed");
39
if(json_is_true(value))
40
fail("json_is_true failed");
42
if(json_is_false(value))
43
fail("json_is_false failed");
45
if(json_is_boolean(value))
46
fail("json_is_boolean failed");
48
if(json_is_null(value))
49
fail("json_is_null failed");
54
value = json_string("foo");
56
fail("json_string failed");
57
if(strcmp(json_string_value(value), "foo"))
58
fail("invalid string value");
60
if(json_string_set(value, "bar"))
61
fail("json_string_set failed");
62
if(strcmp(json_string_value(value), "bar"))
63
fail("invalid string value");
67
value = json_string(NULL);
69
fail("json_string(NULL) failed");
72
value = json_string("a\xefz");
74
fail("json_string(<invalid utf-8>) failed");
76
value = json_string_nocheck("foo");
78
fail("json_string_nocheck failed");
79
if(strcmp(json_string_value(value), "foo"))
80
fail("invalid string value");
82
if(json_string_set_nocheck(value, "bar"))
83
fail("json_string_set_nocheck failed");
84
if(strcmp(json_string_value(value), "bar"))
85
fail("invalid string value");
90
value = json_string_nocheck("qu\xff");
92
fail("json_string_nocheck failed");
93
if(strcmp(json_string_value(value), "qu\xff"))
94
fail("invalid string value");
96
if(json_string_set_nocheck(value, "\xfd\xfe\xff"))
97
fail("json_string_set_nocheck failed");
98
if(strcmp(json_string_value(value), "\xfd\xfe\xff"))
99
fail("invalid string value");
104
value = json_integer(123);
106
fail("json_integer failed");
107
if(json_integer_value(value) != 123)
108
fail("invalid integer value");
109
if(json_number_value(value) != 123.0)
110
fail("invalid number value");
112
if(json_integer_set(value, 321))
113
fail("json_integer_set failed");
114
if(json_integer_value(value) != 321)
115
fail("invalid integer value");
116
if(json_number_value(value) != 321.0)
117
fail("invalid number value");
121
value = json_real(123.123);
123
fail("json_real failed");
124
if(json_real_value(value) != 123.123)
125
fail("invalid integer value");
126
if(json_number_value(value) != 123.123)
127
fail("invalid number value");
129
if(json_real_set(value, 321.321))
130
fail("json_real_set failed");
131
if(json_real_value(value) != 321.321)
132
fail("invalid real value");
133
if(json_number_value(value) != 321.321)
134
fail("invalid number value");
140
fail("json_true failed");
143
value = json_false();
145
fail("json_false failed");
150
fail("json_null failed");
153
/* Test reference counting on singletons (true, false, null) */
155
if(value->refcount != (size_t)-1)
156
fail("refcounting true works incorrectly");
158
if(value->refcount != (size_t)-1)
159
fail("refcounting true works incorrectly");
161
if(value->refcount != (size_t)-1)
162
fail("refcounting true works incorrectly");
164
value = json_false();
165
if(value->refcount != (size_t)-1)
166
fail("refcounting false works incorrectly");
168
if(value->refcount != (size_t)-1)
169
fail("refcounting false works incorrectly");
171
if(value->refcount != (size_t)-1)
172
fail("refcounting false works incorrectly");
175
if(value->refcount != (size_t)-1)
176
fail("refcounting null works incorrectly");
178
if(value->refcount != (size_t)-1)
179
fail("refcounting null works incorrectly");
181
if(value->refcount != (size_t)-1)
182
fail("refcounting null works incorrectly");