| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #include "RyanJsonFuzzer.h"
- RyanJsonBool_e RyanJsonFuzzerTestModify(RyanJson_t pJson, uint32_t size)
- {
- RyanJsonIsNull(pJson);
- if (RyanJsonIsKey(pJson))
- {
- char *key = (char *)malloc(strlen(RyanJsonGetKey(pJson)) + 1);
- if (key)
- {
- memcpy(key, RyanJsonGetKey(pJson), strlen(RyanJsonGetKey(pJson)));
- key[strlen(RyanJsonGetKey(pJson))] = 0;
- RyanJsonChangeKey(pJson, "key");
- RyanJsonChangeKey(pJson, key);
- free(key);
- }
- }
- if (RyanJsonIsBool(pJson)) { RyanJsonChangeBoolValue(pJson, !RyanJsonGetBoolValue(pJson)); }
- if (RyanJsonIsNumber(pJson))
- {
- if (RyanJsonIsInt(pJson))
- {
- int32_t value = RyanJsonGetIntValue(pJson);
- RyanJsonChangeIntValue(pJson, (int32_t)size);
- RyanJsonChangeIntValue(pJson, value);
- }
- if (RyanJsonIsDouble(pJson))
- {
- double value = RyanJsonGetDoubleValue(pJson);
- RyanJsonChangeDoubleValue(pJson, size * 1.123456789);
- RyanJsonChangeDoubleValue(pJson, value);
- }
- }
- if (RyanJsonIsString(pJson))
- {
- char *value = (char *)malloc(strlen(RyanJsonGetStringValue(pJson)) + 1);
- if (value)
- {
- memcpy(value, RyanJsonGetStringValue(pJson), strlen(RyanJsonGetStringValue(pJson)));
- value[strlen(RyanJsonGetStringValue(pJson))] = 0;
- RyanJsonChangeStringValue(pJson, "hello world");
- RyanJsonChangeStringValue(pJson, "h");
- RyanJsonChangeStringValue(pJson, value);
- free(value);
- }
- }
- if (RyanJsonIsArray(pJson) || RyanJsonIsObject(pJson))
- {
- RyanJson_t item;
- RyanJsonArrayForEach(pJson, item)
- {
- RyanJsonCheckReturnFalse(RyanJsonTrue == RyanJsonFuzzerTestModify(item, size));
- }
- }
- return RyanJsonTrue;
- }
- RyanJsonBool_e RyanJsonFuzzerVerifyGet(RyanJson_t lastJson, RyanJson_t pJson, uint32_t index, uint32_t size)
- {
- RyanJsonIsNull(pJson);
- RyanJsonAssert(NULL == RyanJsonGetKey(NULL));
- RyanJsonAssert(NULL == RyanJsonGetStringValue(NULL));
- RyanJsonAssert(0 == RyanJsonGetIntValue(NULL));
- RyanJsonAssert(RyanJsonTrue == RyanJsonCompareDouble(RyanJsonGetDoubleValue(NULL), 0.0));
- RyanJsonAssert(NULL == RyanJsonGetObjectValue(NULL));
- RyanJsonAssert(NULL == RyanJsonGetArrayValue(NULL));
- RyanJsonAssert(NULL == RyanJsonGetObjectByKey(NULL, NULL));
- RyanJsonAssert(NULL == RyanJsonGetObjectByKey(pJson, NULL));
- RyanJsonAssert(NULL == RyanJsonGetObjectByKey(NULL, "NULL"));
- RyanJsonAssert(NULL == RyanJsonGetObjectByKeys(NULL, NULL));
- RyanJsonAssert(NULL == RyanJsonGetObjectByKeys(pJson, NULL));
- RyanJsonAssert(NULL == RyanJsonGetObjectByKeys(NULL, "NULL"));
- if (!RyanJsonIsObject(pJson)) // pJson类型错误
- {
- RyanJsonAssert(NULL == RyanJsonGetObjectByKey(pJson, "NULL"));
- }
- RyanJsonAssert(NULL == RyanJsonGetObjectByIndex(NULL, 10));
- if (!RyanJsonIsArray(pJson) && !RyanJsonIsObject(pJson)) // pJson类型错误
- {
- RyanJsonAssert(NULL == RyanJsonGetObjectByIndex(pJson, 0));
- }
- if (RyanJsonIsKey(pJson)) { RyanJsonGetObjectToKey(lastJson, RyanJsonGetKey(pJson)); }
- else
- {
- RyanJsonGetObjectToIndex(lastJson, index);
- }
- if (RyanJsonIsArray(pJson) || RyanJsonIsObject(pJson))
- {
- RyanJson_t item;
- RyanJsonObjectForEach(pJson, item) { RyanJsonFuzzerVerifyGet(pJson, item, index, size); }
- }
- return RyanJsonTrue;
- }
- RyanJsonBool_e RyanJsonFuzzerTestGet(RyanJson_t pJson, uint32_t size)
- {
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsKey(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsNull(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsBool(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsNumber(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsString(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsArray(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsObject(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsInt(NULL));
- RyanJsonAssert(RyanJsonFalse == RyanJsonIsDouble(NULL));
- if (RyanJsonIsArray(pJson) || RyanJsonIsObject(pJson))
- {
- RyanJson_t item;
- uint32_t index = 0;
- RyanJsonObjectForEach(pJson, item)
- {
- RyanJsonFuzzerVerifyGet(pJson, item, index, size);
- index++;
- }
- }
- return RyanJsonTrue;
- }
|