예제 #1
0
파일: acvp_cmac.c 프로젝트: cisco/libacvp
/*
 * After the test case has been processed by the DUT, the results
 * need to be JSON formated to be included in the vector set results
 * file that will be uploaded to the server.  This routine handles
 * the JSON processing for a single test case.
 */
static ACVP_RESULT acvp_cmac_output_tc(ACVP_CTX *ctx, ACVP_CMAC_TC *stc, JSON_Object *tc_rsp) {
    ACVP_RESULT rv = ACVP_SUCCESS;
    char *tmp = NULL;

    tmp = calloc(ACVP_CMAC_MACLEN_MAX + 1, sizeof(char));
    if (!tmp) {
        ACVP_LOG_ERR("Unable to malloc in acvp_cmac_output_tc");
        return ACVP_MALLOC_FAIL;
    }

    if (stc->verify) {
        json_object_set_boolean(tc_rsp, "testPassed", stc->ver_disposition);
    } else {
        rv = acvp_bin_to_hexstr(stc->mac, stc->mac_len, tmp, ACVP_CMAC_MACLEN_MAX);
        if (rv != ACVP_SUCCESS) {
            ACVP_LOG_ERR("hex conversion failure (mac)");
            goto end;
        }
        json_object_set_string(tc_rsp, "mac", tmp);
    }

end:
    if (tmp) free(tmp);

    return rv;
}
예제 #2
0
int main(int argc, char **argv)
{
	json_object *tmp=json_object_new_int(123);
	assert (json_object_get_int(tmp)==123);
	json_object_set_int(tmp,321);
	assert (json_object_get_int(tmp)==321); 
	printf("INT PASSED\n");
	json_object_set_int64(tmp,(int64_t)321321321);
	assert (json_object_get_int64(tmp)==321321321); 
	json_object_put(tmp);
	printf("INT64 PASSED\n");
	tmp=json_object_new_boolean(TRUE);
	assert (json_object_get_boolean(tmp)==TRUE); 
	json_object_set_boolean(tmp,FALSE);
	assert (json_object_get_boolean(tmp)==FALSE); 
	json_object_set_boolean(tmp,TRUE);
	assert (json_object_get_boolean(tmp)==TRUE); 
	json_object_put(tmp);
	printf("BOOL PASSED\n");
	tmp=json_object_new_double(12.34);
	assert (json_object_get_double(tmp)==12.34); 
	json_object_set_double(tmp,34.56);
	assert (json_object_get_double(tmp)==34.56); 
	json_object_set_double(tmp,6435.34);
	assert (json_object_get_double(tmp)==6435.34); 
	json_object_put(tmp);
	printf("DOUBLE PASSED\n");
	#define SHORT "SHORT"
	#define MID   "A MID STRING"
	//             12345678901234567890123456789012....
	#define HUGE  "A string longer than 32 chars as to check non local buf codepath"
	tmp=json_object_new_string(SHORT);
	assert (strcmp(json_object_get_string(tmp),SHORT)==0); 
	json_object_set_string(tmp,MID);
	assert (strcmp(json_object_get_string(tmp),MID)==0); 
	json_object_set_string(tmp,HUGE);
	assert (strcmp(json_object_get_string(tmp),HUGE)==0); 
	json_object_set_string(tmp,SHORT);
	assert (strcmp(json_object_get_string(tmp),SHORT)==0); 
	json_object_put(tmp);
	printf("STRING PASSED\n");
	
	
	printf("PASSED\n");
	return 0;
}
예제 #3
0
파일: tests.c 프로젝트: Kutoc/parson
void test_suite_5(void) {
    JSON_Value *val_from_file = json_parse_file("tests/test_5.txt");
    
    JSON_Value *val = json_value_init_object();
    JSON_Object *obj = json_value_get_object(val);
    TEST(json_object_set_string(obj, "first", "John") == JSONSuccess);
    TEST(json_object_set_string(obj, "last", "Doe") == JSONSuccess);
    TEST(json_object_set_number(obj, "age", 25) == JSONSuccess);
    TEST(json_object_set_boolean(obj, "registered", 1) == JSONSuccess);
    TEST(json_object_set_value(obj, "interests", json_value_init_array()) == JSONSuccess);
    TEST(json_array_append_string(json_object_get_array(obj, "interests"), "Writing") == JSONSuccess);
    TEST(json_array_append_string(json_object_get_array(obj, "interests"), "Mountain Biking") == JSONSuccess);
    TEST(json_array_replace_string(json_object_get_array(obj, "interests"), 0, "Reading") == JSONSuccess);
    TEST(json_object_dotset_string(obj, "favorites.color", "blue") == JSONSuccess);
    TEST(json_object_dotset_string(obj, "favorites.sport", "running") == JSONSuccess);
    TEST(json_object_dotset_string(obj, "favorites.fruit", "apple") == JSONSuccess);
    TEST(json_object_dotremove(obj, "favorites.fruit") == JSONSuccess);
    TEST(json_object_set_string(obj, "utf string", "\\u006corem\\u0020ipsum") == JSONSuccess);
    TEST(json_object_set_string(obj, "utf-8 string", "あいうえお") == JSONSuccess);
    TEST(json_object_set_string(obj, "surrogate string", "lorem\\uD834\\uDD1Eipsum\\uD834\\uDF67lorem") == JSONSuccess);
    TEST(json_value_equals(val_from_file, val));
}
예제 #4
0
파일: tests.c 프로젝트: xiaodezhang/cgi
void test_suite_5(void) {
	JSON_Value *val_from_file = json_parse_file("tests/test_5.txt");

	JSON_Value *val = NULL;
	JSON_Object *obj = NULL;
	JSON_Array *interests_arr = NULL;

	val = json_value_init_object();
	TEST(val != NULL);

	obj = json_value_get_object(val);
	TEST(obj != NULL);

	TEST(json_object_set_string(obj, "first", "John") == JSONSuccess);
	TEST(json_object_set_string(obj, "last", "Doe") == JSONSuccess);
	TEST(json_object_set_number(obj, "age", 25) == JSONSuccess);
	TEST(json_object_set_boolean(obj, "registered", 1) == JSONSuccess);

	TEST(json_object_set_value(obj, "interests", json_value_init_array()) == JSONSuccess);
	interests_arr = json_object_get_array(obj, "interests");
	TEST(interests_arr != NULL);
	TEST(json_array_append_string(interests_arr, "Writing") == JSONSuccess);
	TEST(json_array_append_string(interests_arr, "Mountain Biking") == JSONSuccess);
	TEST(json_array_replace_string(interests_arr, 0, "Reading") == JSONSuccess);

	TEST(json_object_dotset_string(obj, "favorites.color", "blue") == JSONSuccess);
	TEST(json_object_dotset_string(obj, "favorites.sport", "running") == JSONSuccess);
	TEST(json_object_dotset_string(obj, "favorites.fruit", "apple") == JSONSuccess);
	TEST(json_object_dotremove(obj, "favorites.fruit") == JSONSuccess);
	TEST(json_object_set_string(obj, "utf string", "lorem ipsum") == JSONSuccess);
	TEST(json_object_set_string(obj, "utf-8 string", "あいうえお") == JSONSuccess);
	TEST(json_object_set_string(obj, "surrogate string", "lorem𝄞ipsum𝍧lorem") == JSONSuccess);
	TEST(json_object_set_string(obj, "windows path", "C:\\Windows\\Path") == JSONSuccess);
	TEST(json_value_equals(val_from_file, val));

	TEST(json_object_set_string(obj, NULL, "") == JSONFailure);
	TEST(json_object_set_string(obj, "last", NULL) == JSONFailure);
	TEST(json_object_set_string(obj, NULL, NULL) == JSONFailure);
	TEST(json_object_set_value(obj, NULL, NULL) == JSONFailure);

	TEST(json_object_dotset_string(obj, NULL, "") == JSONFailure);
	TEST(json_object_dotset_string(obj, "favorites.color", NULL) == JSONFailure);
	TEST(json_object_dotset_string(obj, NULL, NULL) == JSONFailure);
	TEST(json_object_dotset_value(obj, NULL, NULL) == JSONFailure);

	TEST(json_array_append_string(NULL, "lorem") == JSONFailure);
	TEST(json_array_append_value(interests_arr, NULL) == JSONFailure);
	TEST(json_array_append_value(NULL, NULL) == JSONFailure);

	TEST(json_array_remove(NULL, 0) == JSONFailure);
	TEST(json_array_replace_value(interests_arr, 0, NULL) == JSONFailure);
	TEST(json_array_replace_string(NULL, 0, "lorem") == JSONFailure);
	TEST(json_array_replace_string(interests_arr, 100, "not existing") == JSONFailure);

	TEST(json_array_append_string(json_object_get_array(obj, "interests"), NULL) == JSONFailure);


	/* UTF-8 tests */
	TEST(json_object_set_string(obj, "correct string", "κόσμε") == JSONSuccess);

	TEST(json_object_set_string(obj, "boundary 1", "\xed\x9f\xbf") == JSONSuccess);
	TEST(json_object_set_string(obj, "boundary 2", "\xee\x80\x80") == JSONSuccess);
	TEST(json_object_set_string(obj, "boundary 3", "\xef\xbf\xbd") == JSONSuccess);
	TEST(json_object_set_string(obj, "boundary 4", "\xf4\x8f\xbf\xbf") == JSONSuccess);

	TEST(json_object_set_string(obj, "first continuation byte", "\x80") == JSONFailure);
	TEST(json_object_set_string(obj, "last continuation byte", "\xbf") == JSONFailure);

	TEST(json_object_set_string(obj, "impossible sequence 1", "\xfe") == JSONFailure);
	TEST(json_object_set_string(obj, "impossible sequence 2", "\xff") == JSONFailure);
	TEST(json_object_set_string(obj, "impossible sequence 3", "\xfe\xfe\xff\xff") == JSONFailure);

	TEST(json_object_set_string(obj, "overlong 1", "\xc0\xaf") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong 2", "\xc1\xbf") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong 3", "\xe0\x80\xaf") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong 4", "\xe0\x9f\xbf") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong 5", "\xf0\x80\x80\xaf") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong 6", "\xf0\x8f\xbf\xbf") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong 7", "\xf0\x8f\xbf\xbf") == JSONFailure);

	TEST(json_object_set_string(obj, "overlong null 1", "\xc0\x80") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong null 2", "\xe0\x80\x80") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong null 3", "\xf0\x80\x80\x80") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong null 4", "\xf8\x80\x80\x80\x80") == JSONFailure);
	TEST(json_object_set_string(obj, "overlong null 5", "\xfc\x80\x80\x80\x80\x80") == JSONFailure);

	TEST(json_object_set_string(obj, "single surrogate 1", "\xed\xa0\x80") == JSONFailure);
	TEST(json_object_set_string(obj, "single surrogate 2", "\xed\xaf\xbf") == JSONFailure);
	TEST(json_object_set_string(obj, "single surrogate 3", "\xed\xbf\xbf") == JSONFailure);
}