/ Check-in [f5e6c4b2]
Login
SQLite training in Houston TX on 2019-11-05 (details)
Part of the 2019 Tcl Conference

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fuzzershell: change the error summary output to work with releasetest.tcl. Reduce the maximum number of OOM interations.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: f5e6c4b28d25429aac53ea8cb334a2e6bd821f39
User & Date: drh 2015-04-25 16:39:49
Context
2015-04-25
17:45
Update the AFL fuzzer data with newly discovered paths. check-in: d9821980 user: drh tags: trunk
16:39
Fuzzershell: change the error summary output to work with releasetest.tcl. Reduce the maximum number of OOM interations. check-in: f5e6c4b2 user: drh tags: trunk
13:39
Add the fuzzoomtest target to the makefiles. Invoke fuzzoomtest from releasetest.tcl. check-in: f60657c2 user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to tool/fuzzershell.c.

83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
...
730
731
732
733
734
735
736



737
738
739
740
741
742
743
744
745
...
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
  char zTestName[100];             /* Name of current test */
} g;

/*
** Maximum number of iterations for an OOM test
*/
#ifndef OOM_MAX
# define OOM_MAX 1000
#endif

/*
** This routine is called when a simulated OOM occurs.  It exists as a
** convenient place to set a debugger breakpoint.
*/
static void oomFault(void){
................................................................................
      if( rc ){
        abendError("sqlite3_close() failed with rc=%d", rc);
      }
      if( sqlite3_memory_used()>0 ){
        abendError("memory in use after close: %lld bytes", sqlite3_memory_used());
      }
      if( oomFlag ){



        if( g.nOomFault==0 || oomCnt>OOM_MAX ){
          if( g.bOomOnce ){
            oomCnt = g.iOomCntdown = 1;
            g.bOomOnce = 0;
          }else{
            oomCnt = 0;
          }
        }else{
          g.iOomCntdown = ++oomCnt;
................................................................................
        printf("\nExit early due to TEST_FAILURE being set");
        break;
      }
    }
  }
  if( !verboseFlag && multiTest && !quietFlag && !oomFlag ) printf("\n");
  if( nTest>1 && !quietFlag ){
    printf("%d fuzz tests with no errors\nSQLite %s %s\n",
           nTest, sqlite3_libversion(), sqlite3_sourceid());
  }
  if( zDataOut ){
    int n = 0;
    FILE *out = fopen(zDataOut, "wb");
    if( out==0 ) abendError("cannot open %s for writing", zDataOut);
    if( nHeader>0 ) fwrite(zIn, nHeader, 1, out);
    sqlite3_finalize(pStmt);







|







 







>
>
>

|







 







|
|







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
...
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
...
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
  char zTestName[100];             /* Name of current test */
} g;

/*
** Maximum number of iterations for an OOM test
*/
#ifndef OOM_MAX
# define OOM_MAX 625
#endif

/*
** This routine is called when a simulated OOM occurs.  It exists as a
** convenient place to set a debugger breakpoint.
*/
static void oomFault(void){
................................................................................
      if( rc ){
        abendError("sqlite3_close() failed with rc=%d", rc);
      }
      if( sqlite3_memory_used()>0 ){
        abendError("memory in use after close: %lld bytes", sqlite3_memory_used());
      }
      if( oomFlag ){
        /* Limit the number of iterations of the OOM loop to OOM_MAX.  If the
        ** first pass (single failure) exceeds 2/3rds of OOM_MAX this skip the
        ** second pass (continuous failure after first) completely. */
        if( g.nOomFault==0 || oomCnt>OOM_MAX ){
          if( g.bOomOnce && oomCnt<=(OOM_MAX*2/3) ){
            oomCnt = g.iOomCntdown = 1;
            g.bOomOnce = 0;
          }else{
            oomCnt = 0;
          }
        }else{
          g.iOomCntdown = ++oomCnt;
................................................................................
        printf("\nExit early due to TEST_FAILURE being set");
        break;
      }
    }
  }
  if( !verboseFlag && multiTest && !quietFlag && !oomFlag ) printf("\n");
  if( nTest>1 && !quietFlag ){
    printf("%s: 0 errors out of %d tests\nSQLite %s %s\n",
           g.zArgv0, nTest, sqlite3_libversion(), sqlite3_sourceid());
  }
  if( zDataOut ){
    int n = 0;
    FILE *out = fopen(zDataOut, "wb");
    if( out==0 ) abendError("cannot open %s for writing", zDataOut);
    if( nHeader>0 ) fwrite(zIn, nHeader, 1, out);
    sqlite3_finalize(pStmt);