SQLite

Check-in [f5e6c4b28d]
Login

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
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: f5e6c4b28d25429aac53ea8cb334a2e6bd821f39
User & Date: drh 2015-04-25 16:39:49.474
Context
2015-04-25
17:45
Update the AFL fuzzer data with newly discovered paths. (check-in: d98219805d 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: f5e6c4b28d user: drh tags: trunk)
13:39
Add the fuzzoomtest target to the makefiles. Invoke fuzzoomtest from releasetest.tcl. (check-in: f60657c2ae user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to tool/fuzzershell.c.
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
  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){







|







83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
  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){
730
731
732
733
734
735
736



737
738
739
740
741
742
743
744
745
      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;







>
>
>

|







730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
      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;
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
        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);







|
|







779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
        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);