Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(116)

Unified Diff: third_party/sqlite/src/mptest/mptest.c

Issue 2751253002: [sql] Import SQLite 3.17.0. (Closed)
Patch Set: also clang on Linux i386 Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/sqlite/src/manifest.uuid ('k') | third_party/sqlite/src/src/alter.c » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/sqlite/src/mptest/mptest.c
diff --git a/third_party/sqlite/src/mptest/mptest.c b/third_party/sqlite/src/mptest/mptest.c
index b29ebdc9e110fff92ca6bd4e3cea590318934977..5022b009e6bf7772a1d6eba7189f2fde67e988e3 100644
--- a/third_party/sqlite/src/mptest/mptest.c
+++ b/third_party/sqlite/src/mptest/mptest.c
@@ -41,6 +41,7 @@
#else
# include <unistd.h>
#endif
+#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
@@ -1244,6 +1245,19 @@ static void usage(const char *argv0){
if( isDirSep(argv0[i]) ) zTail = argv0+i+1;
}
fprintf(stderr,"Usage: %s DATABASE ?OPTIONS? ?SCRIPT?\n", zTail);
+ fprintf(stderr,
+ "Options:\n"
+ " --errlog FILENAME Write errors to FILENAME\n"
+ " --journalmode MODE Use MODE as the journal_mode\n"
+ " --log FILENAME Log messages to FILENAME\n"
+ " --quiet Suppress unnecessary output\n"
+ " --vfs NAME Use NAME as the VFS\n"
+ " --repeat N Repeat the test N times\n"
+ " --sqltrace Enable SQL tracing\n"
+ " --sync Enable synchronous disk writes\n"
+ " --timeout MILLISEC Busy timeout is MILLISEC\n"
+ " --trace BOOLEAN Enable or disable tracing\n"
+ );
exit(1);
}
@@ -1275,6 +1289,8 @@ int SQLITE_CDECL main(int argc, char **argv){
const char *zJMode;
const char *zNRep;
int nRep = 1, iRep;
+ int iTmout = 0; /* Default: no timeout */
+ const char *zTmout;
g.argv0 = argv[0];
g.iTrace = 1;
@@ -1301,6 +1317,8 @@ int SQLITE_CDECL main(int argc, char **argv){
zTrace = findOption(argv+2, &n, "trace", 1);
if( zTrace ) g.iTrace = atoi(zTrace);
if( findOption(argv+2, &n, "quiet", 0)!=0 ) g.iTrace = 0;
+ zTmout = findOption(argv+2, &n, "timeout", 1);
+ if( zTmout ) iTmout = atoi(zTmout);
g.bSqlTrace = findOption(argv+2, &n, "sqltrace", 0)!=0;
g.bSync = findOption(argv+2, &n, "sync", 0)!=0;
if( g.zErrLog ){
@@ -1321,6 +1339,7 @@ int SQLITE_CDECL main(int argc, char **argv){
sqlite3_snprintf(sizeof(g.zName), g.zName, "%05d.client%02d",
GETPID(), iClient);
}else{
+ int nTry = 0;
if( g.iTrace>0 ){
printf("BEGIN: %s", argv[0]);
for(i=1; i<argc; i++) printf(" %s", argv[i]);
@@ -1332,11 +1351,22 @@ int SQLITE_CDECL main(int argc, char **argv){
fflush(stdout);
}
iClient = 0;
- unlink(g.zDbFile);
+ do{
+ if( (nTry%5)==4 ) printf("... %strying to unlink '%s'\n",
+ nTry>5 ? "still " : "", g.zDbFile);
+ rc = unlink(g.zDbFile);
+ if( rc && errno==ENOENT ) rc = 0;
+ }while( rc!=0 && (++nTry)<60 && sqlite3_sleep(1000)>0 );
+ if( rc!=0 ){
+ fatalError("unable to unlink '%s' after %d attempts\n",
+ g.zDbFile, nTry);
+ }
openFlags |= SQLITE_OPEN_CREATE;
}
rc = sqlite3_open_v2(g.zDbFile, &g.db, openFlags, g.zVfs);
if( rc ) fatalError("cannot open [%s]", g.zDbFile);
+ if( iTmout>0 ) sqlite3_busy_timeout(g.db, iTmout);
+
if( zJMode ){
#if defined(_WIN32)
if( sqlite3_stricmp(zJMode,"persist")==0
« no previous file with comments | « third_party/sqlite/src/manifest.uuid ('k') | third_party/sqlite/src/src/alter.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698