|
|
@@ -2,13 +2,17 @@ |
|
|
|
* gcc -o utf8 utf8.c -I/home/y/include -L./.libs -ljson |
|
|
|
*/ |
|
|
|
|
|
|
|
#include "config.h" |
|
|
|
#include <assert.h> |
|
|
|
#include <stdio.h> |
|
|
|
#include <stdlib.h> |
|
|
|
#include <string.h> |
|
|
|
#include "config.h" |
|
|
|
|
|
|
|
#include "json_inttypes.h" |
|
|
|
#include "json_object.h" |
|
|
|
#include "json_object_private.h" |
|
|
|
#include "json_tokener.h" |
|
|
|
#include "linkhash.h" |
|
|
|
|
|
|
|
void print_hex( const char* s) { |
|
|
|
const char *iter = s; |
|
|
@@ -22,6 +26,28 @@ void print_hex( const char* s) { |
|
|
|
printf("\n"); |
|
|
|
} |
|
|
|
|
|
|
|
static void test_lot_of_adds(void); |
|
|
|
static void test_lot_of_adds() |
|
|
|
{ |
|
|
|
int ii; |
|
|
|
char key[50]; |
|
|
|
json_object *jobj = json_object_new_object(); |
|
|
|
assert(jobj != NULL); |
|
|
|
for (ii = 0; ii < 500; ii++) { |
|
|
|
snprintf(key, sizeof(key), "k%d", ii); |
|
|
|
json_object *iobj = json_object_new_int(ii); |
|
|
|
assert(iobj != NULL); |
|
|
|
json_object_object_add(jobj, key, iobj); |
|
|
|
if (json_object_object_get_ex(jobj, key, &iobj) == FALSE) { |
|
|
|
fprintf(stderr, "FAILED to add object #%d\n", ii); |
|
|
|
abort(); |
|
|
|
} |
|
|
|
} |
|
|
|
printf("%s\n", json_object_to_json_string(jobj)); |
|
|
|
assert(jobj->o.c_object->count == 500); |
|
|
|
json_object_put(jobj); |
|
|
|
} |
|
|
|
|
|
|
|
int main() { |
|
|
|
const char *input = "\"\\ud840\\udd26,\\ud840\\udd27,\\ud800\\udd26,\\ud800\\udd27\""; |
|
|
|
const char *expected = "\xF0\xA0\x84\xA6,\xF0\xA0\x84\xA7,\xF0\x90\x84\xA6,\xF0\x90\x84\xA7"; |
|
|
@@ -45,5 +71,8 @@ int main() { |
|
|
|
retval = 1; |
|
|
|
} |
|
|
|
json_object_put(parse_result); |
|
|
|
|
|
|
|
test_lot_of_adds(); |
|
|
|
|
|
|
|
return retval; |
|
|
|
} |