mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-26 09:41:10 +03:00
Add the --mode option to fuzzershell.
FossilOrigin-Name: b940b0fa6cf68fef58344d269ad5d39468ffe72f
This commit is contained in:
12
manifest
12
manifest
@ -1,5 +1,5 @@
|
|||||||
C Many\snew\sconfiguration\soptions\sfor\sfuzzershell.
|
C Add\sthe\s--mode\soption\sto\sfuzzershell.
|
||||||
D 2015-04-20T18:58:38.348
|
D 2015-04-20T22:36:49.631
|
||||||
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
|
||||||
F Makefile.in faaf75b89840659d74501bea269c7e33414761c1
|
F Makefile.in faaf75b89840659d74501bea269c7e33414761c1
|
||||||
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
|
||||||
@ -1203,7 +1203,7 @@ F tool/diffdb.c 7524b1b5df217c20cd0431f6789851a4e0cb191b
|
|||||||
F tool/extract.c 054069d81b095fbdc189a6f5d4466e40380505e2
|
F tool/extract.c 054069d81b095fbdc189a6f5d4466e40380505e2
|
||||||
F tool/fast_vacuum.c 5ba0d6f5963a0a63bdc42840f678bad75b2ebce1
|
F tool/fast_vacuum.c 5ba0d6f5963a0a63bdc42840f678bad75b2ebce1
|
||||||
F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
|
F tool/fragck.tcl 5265a95126abcf6ab357f7efa544787e5963f439
|
||||||
F tool/fuzzershell.c a25ae00de7ec929723981bc5d0c8c484ea1e6a9c
|
F tool/fuzzershell.c 00c12b1e95095f43980ae3cafb51938eda577fe2
|
||||||
F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
|
F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
|
||||||
F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
|
F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
|
||||||
F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce
|
F tool/getlock.c f4c39b651370156cae979501a7b156bdba50e7ce
|
||||||
@ -1251,7 +1251,7 @@ F tool/vdbe_profile.tcl 67746953071a9f8f2f668b73fe899074e2c6d8c1
|
|||||||
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
|
||||||
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
|
F tool/warnings.sh 0abfd78ceb09b7f7c27c688c8e3fe93268a13b32
|
||||||
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
|
||||||
P 2f58c8c9722fffc486610f9e6b08178d53a56b64
|
P 41c954391690833bf2ece4ea14457ee4bdd74e90
|
||||||
R 3fade4dfead5d7d8a2c7049fe386ecdf
|
R 18124f1b8c247e9f547c30e618d3a441
|
||||||
U drh
|
U drh
|
||||||
Z 1d6c6c4ef178b17fd0f9732ebc91d908
|
Z d312afa4cd0d932d0a233db0b53736ad
|
||||||
|
@ -1 +1 @@
|
|||||||
41c954391690833bf2ece4ea14457ee4bdd74e90
|
b940b0fa6cf68fef58344d269ad5d39468ffe72f
|
@ -315,6 +315,14 @@ static int integerValue(const char *zArg){
|
|||||||
return (int)(isNeg? -v : v);
|
return (int)(isNeg? -v : v);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Various operating modes
|
||||||
|
*/
|
||||||
|
#define FZMODE_Generic 1
|
||||||
|
#define FZMODE_Strftime 2
|
||||||
|
#define FZMODE_Printf 3
|
||||||
|
#define FZMODE_Glob 4
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv){
|
int main(int argc, char **argv){
|
||||||
char *zIn = 0; /* Input text */
|
char *zIn = 0; /* Input text */
|
||||||
@ -340,6 +348,9 @@ int main(int argc, char **argv){
|
|||||||
void *pPCache = 0; /* Allocated storage for pcache */
|
void *pPCache = 0; /* Allocated storage for pcache */
|
||||||
void *pScratch = 0; /* Allocated storage for scratch */
|
void *pScratch = 0; /* Allocated storage for scratch */
|
||||||
int doAutovac = 0; /* True for --autovacuum */
|
int doAutovac = 0; /* True for --autovacuum */
|
||||||
|
char *zSql; /* SQL to run */
|
||||||
|
char *zToFree = 0; /* Call sqlite3_free() on this afte running zSql */
|
||||||
|
int iMode = FZMODE_Generic; /* Operating mode */
|
||||||
|
|
||||||
|
|
||||||
g.zArgv0 = argv[0];
|
g.zArgv0 = argv[0];
|
||||||
@ -376,6 +387,21 @@ int main(int argc, char **argv){
|
|||||||
szLook = integerValue(argv[i+2]);
|
szLook = integerValue(argv[i+2]);
|
||||||
i += 2;
|
i += 2;
|
||||||
}else
|
}else
|
||||||
|
if( strcmp(z,"mode")==0 ){
|
||||||
|
if( i>=argc-1 ) abendError("missing argument on %s", argv[i]);
|
||||||
|
z = argv[++i];
|
||||||
|
if( strcmp(z,"generic")==0 ){
|
||||||
|
iMode = FZMODE_Printf;
|
||||||
|
}else if( strcmp(z, "glob")==0 ){
|
||||||
|
iMode = FZMODE_Glob;
|
||||||
|
}else if( strcmp(z, "printf")==0 ){
|
||||||
|
iMode = FZMODE_Printf;
|
||||||
|
}else if( strcmp(z, "strftime")==0 ){
|
||||||
|
iMode = FZMODE_Strftime;
|
||||||
|
}else{
|
||||||
|
abendError("unknown --mode: %s", z);
|
||||||
|
}
|
||||||
|
}else
|
||||||
if( strcmp(z,"pagesize")==0 ){
|
if( strcmp(z,"pagesize")==0 ){
|
||||||
if( i>=argc-1 ) abendError("missing argument on %s", argv[i]);
|
if( i>=argc-1 ) abendError("missing argument on %s", argv[i]);
|
||||||
pageSize = integerValue(argv[++i]);
|
pageSize = integerValue(argv[++i]);
|
||||||
@ -492,7 +518,23 @@ int main(int argc, char **argv){
|
|||||||
zIn[iNext] = 0;
|
zIn[iNext] = 0;
|
||||||
printf("INPUT (offset: %d, size: %d): [%s]\n",
|
printf("INPUT (offset: %d, size: %d): [%s]\n",
|
||||||
i, (int)strlen(&zIn[i]), &zIn[i]);
|
i, (int)strlen(&zIn[i]), &zIn[i]);
|
||||||
rc = sqlite3_exec(db, &zIn[i], execCallback, 0, &zErrMsg);
|
zSql = &zIn[i];
|
||||||
|
switch( iMode ){
|
||||||
|
case FZMODE_Glob:
|
||||||
|
zSql = zToFree = sqlite3_mprintf("SELECT glob(%s);", zSql);
|
||||||
|
break;
|
||||||
|
case FZMODE_Printf:
|
||||||
|
zSql = zToFree = sqlite3_mprintf("SELECT printf(%s);", zSql);
|
||||||
|
break;
|
||||||
|
case FZMODE_Strftime:
|
||||||
|
zSql = zToFree = sqlite3_mprintf("SELECT strftime(%s);", zSql);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
rc = sqlite3_exec(db, zSql, execCallback, 0, &zErrMsg);
|
||||||
|
if( zToFree ){
|
||||||
|
sqlite3_free(zToFree);
|
||||||
|
zToFree = 0;
|
||||||
|
}
|
||||||
zIn[iNext] = cSaved;
|
zIn[iNext] = cSaved;
|
||||||
|
|
||||||
printf("RESULT-CODE: %d\n", rc);
|
printf("RESULT-CODE: %d\n", rc);
|
||||||
|
Reference in New Issue
Block a user