diff options
author | drh <> | 2023-12-18 14:16:58 +0000 |
---|---|---|
committer | drh <> | 2023-12-18 14:16:58 +0000 |
commit | 0a46ff995b50f38f5911197705e30d254e06d295 (patch) | |
tree | f7d5f0e1f438358c5a4e5179c0912e851bc3c3e1 /ext/misc/randomjson.c | |
parent | 52a4691fff3333dc8b97253064b20c07e044d58c (diff) | |
download | sqlite-0a46ff995b50f38f5911197705e30d254e06d295.tar.gz sqlite-0a46ff995b50f38f5911197705e30d254e06d295.zip |
Ensure that all object labels for individual objects generated by
randomjson.c are unique.
FossilOrigin-Name: 29c46aca231b3f1e997ef306a5a651408185bf3ad09ab9fc1fe21ed18caa4d02
Diffstat (limited to 'ext/misc/randomjson.c')
-rw-r--r-- | ext/misc/randomjson.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/ext/misc/randomjson.c b/ext/misc/randomjson.c index 20ee12b9f..5036fa604 100644 --- a/ext/misc/randomjson.c +++ b/ext/misc/randomjson.c @@ -108,10 +108,9 @@ static char *azJsonTemplate[] = { "{\"a\":%,\"b\":%,\"c\":%,\"d\":%,\"\":%}", "{a:%,b:%,c:%,d:%,'':%}", "{\"d\":%}", "{d:%}", "{\"eeee\":%, \"ffff\":%}", "{eeee:% /*and*/, ffff:%}", - "{\"$g\":%,\"_h_\":%}", "{$g:%,_h_:%,}", + "{\"$g\":%,\"_h_\":%,\"a b c d\":%}", "{$g:%,_h_:%,\"a b c d\":%}", "{\"x\":%,\n \"y\":%}", "{\"x\":%,\n \"y\":%}", - "{\"a b c d\":%,\"\\u00XX\":%,\"\\uXXXX\":%,\"x\":%,\"y\":%}", - "{\"a b c d\":%,\"\\xXX\":%,\"\\uXXXX\":%,x:%,y:%}", + "{\"\\u00XX\":%,\"\\uXXXX\":%}", "{\"\\xXX\":%,\"\\uXXXX\":%}", "{\"Z\":%}", "{Z:%,}", "[%]", "[%,]", "[%,%]", "[%,%]", @@ -159,6 +158,10 @@ static void jsonExpand( n = strlen(z); if( (zX = strstr(z,"XX"))!=0 ){ unsigned int r = prngInt(p); + if( (r&0xff)==((r>>8)&0xff) ) r += 0x100; + while( (r&0xff)==((r>>16)&0xff) || ((r>>8)&0xff)==((r>>16)&0xff) ){ + r += 0x10000; + } memcpy(zBuf, z, n+1); z = zBuf; zX = strstr(z,"XX"); |