Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Add the --mode option to fuzzershell. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b940b0fa6cf68fef58344d269ad5d394 |
User & Date: | drh 2015-04-20 22:36:49.631 |
Context
2015-04-21
| ||
00:23 | Enable compilation and VSIX package creation with the Visual Studio 2015 CTP. (check-in: 03b725a768 user: mistachkin tags: trunk) | |
2015-04-20
| ||
23:53 | Merge updates from trunk. (Closed-Leaf check-in: 583a79a04a user: mistachkin tags: vsix2015) | |
22:36 | Add the --mode option to fuzzershell. (check-in: b940b0fa6c user: drh tags: trunk) | |
18:58 | Many new configuration options for fuzzershell. (check-in: 41c9543916 user: drh tags: trunk) | |
Changes
Changes to tool/fuzzershell.c.
︙ | ︙ | |||
311 312 313 314 315 316 317 318 319 320 321 322 323 324 | break; } } if( v>0x7fffffff ) abendError("parameter too large - max 2147483648"); return (int)(isNeg? -v : v); } int main(int argc, char **argv){ char *zIn = 0; /* Input text */ int nAlloc = 0; /* Number of bytes allocated for zIn[] */ int nIn = 0; /* Number of bytes of zIn[] used */ size_t got; /* Bytes read from input */ FILE *in = stdin; /* Where to read SQL text from */ | > > > > > > > > | 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 | break; } } if( v>0x7fffffff ) abendError("parameter too large - max 2147483648"); 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){ char *zIn = 0; /* Input text */ int nAlloc = 0; /* Number of bytes allocated for zIn[] */ int nIn = 0; /* Number of bytes of zIn[] used */ size_t got; /* Bytes read from input */ FILE *in = stdin; /* Where to read SQL text from */ |
︙ | ︙ | |||
336 337 338 339 340 341 342 343 344 345 346 347 348 349 | int nScratch = 0, szScratch=0;/* --scratch configuration */ int pageSize = 0; /* Desired page size. 0 means default */ void *pHeap = 0; /* Allocated heap space */ void *pLook = 0; /* Allocated lookaside space */ void *pPCache = 0; /* Allocated storage for pcache */ void *pScratch = 0; /* Allocated storage for scratch */ int doAutovac = 0; /* True for --autovacuum */ g.zArgv0 = argv[0]; for(i=1; i<argc; i++){ const char *z = argv[i]; if( z[0]=='-' ){ z++; | > > > | 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 | int nScratch = 0, szScratch=0;/* --scratch configuration */ int pageSize = 0; /* Desired page size. 0 means default */ void *pHeap = 0; /* Allocated heap space */ void *pLook = 0; /* Allocated lookaside space */ void *pPCache = 0; /* Allocated storage for pcache */ void *pScratch = 0; /* Allocated storage for scratch */ 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]; for(i=1; i<argc; i++){ const char *z = argv[i]; if( z[0]=='-' ){ z++; |
︙ | ︙ | |||
371 372 373 374 375 376 377 378 379 380 381 382 383 384 | zInitDb = argv[++i]; }else if( strcmp(z,"lookaside")==0 ){ if( i>=argc-2 ) abendError("missing arguments on %s", argv[i]); nLook = integerValue(argv[i+1]); szLook = integerValue(argv[i+2]); i += 2; }else if( strcmp(z,"pagesize")==0 ){ if( i>=argc-1 ) abendError("missing argument on %s", argv[i]); pageSize = integerValue(argv[++i]); }else if( strcmp(z,"pcache")==0 ){ if( i>=argc-2 ) abendError("missing arguments on %s", argv[i]); | > > > > > > > > > > > > > > > | 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 | zInitDb = argv[++i]; }else if( strcmp(z,"lookaside")==0 ){ if( i>=argc-2 ) abendError("missing arguments on %s", argv[i]); nLook = integerValue(argv[i+1]); szLook = integerValue(argv[i+2]); i += 2; }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( i>=argc-1 ) abendError("missing argument on %s", argv[i]); pageSize = integerValue(argv[++i]); }else if( strcmp(z,"pcache")==0 ){ if( i>=argc-2 ) abendError("missing arguments on %s", argv[i]); |
︙ | ︙ | |||
488 489 490 491 492 493 494 | if( zEncoding ) sqlexec(db, "PRAGMA encoding=%s", zEncoding); if( pageSize ) sqlexec(db, "PRAGMA pagesize=%d", pageSize); if( doAutovac ) sqlexec(db, "PRAGMA auto_vacuum=FULL"); cSaved = zIn[iNext]; zIn[iNext] = 0; printf("INPUT (offset: %d, size: %d): [%s]\n", i, (int)strlen(&zIn[i]), &zIn[i]); | > > > > > > > > > > > > | > > > > | 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 | if( zEncoding ) sqlexec(db, "PRAGMA encoding=%s", zEncoding); if( pageSize ) sqlexec(db, "PRAGMA pagesize=%d", pageSize); if( doAutovac ) sqlexec(db, "PRAGMA auto_vacuum=FULL"); cSaved = zIn[iNext]; zIn[iNext] = 0; printf("INPUT (offset: %d, size: %d): [%s]\n", i, (int)strlen(&zIn[i]), &zIn[i]); 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; printf("RESULT-CODE: %d\n", rc); if( zErrMsg ){ printf("ERROR-MSG: [%s]\n", zErrMsg); sqlite3_free(zErrMsg); } |
︙ | ︙ |