Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | UI improvements on the .testctrl dot-command in the shell. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
5d66219c4706e11a9c2a1290224e7c17 |
User & Date: | drh 2017-11-15 17:07:22.982 |
Context
2017-11-15
| ||
19:14 | Futher improvements to the .testctrl interface in the shell. (check-in: 1ca3b8cce9 user: drh tags: trunk) | |
17:07 | UI improvements on the .testctrl dot-command in the shell. (check-in: 5d66219c47 user: drh tags: trunk) | |
2017-11-14
| ||
23:48 | In the parse tree, combine LIMIT and OFFSET into a single expression rooted on a TK_LIMIT node, for a small code size reduction and performance increase, and a reduction in code complexity. (check-in: 3925facd94 user: drh tags: trunk) | |
Changes
Changes to src/shell.c.in.
︙ | ︙ | |||
5918 5919 5920 5921 5922 5923 5924 | sqlite3_snprintf(sizeof(p->zTestcase), p->zTestcase, "%s", azArg[1]); }else{ sqlite3_snprintf(sizeof(p->zTestcase), p->zTestcase, "?"); } }else #ifndef SQLITE_UNTESTABLE | | | | | > | > > > | | > < < < < < > > > > > > > > > > > > > > > > > | | | | | > | | > | 5918 5919 5920 5921 5922 5923 5924 5925 5926 5927 5928 5929 5930 5931 5932 5933 5934 5935 5936 5937 5938 5939 5940 5941 5942 5943 5944 5945 5946 5947 5948 5949 5950 5951 5952 5953 5954 5955 5956 5957 5958 5959 5960 5961 5962 5963 5964 5965 5966 5967 5968 5969 5970 5971 5972 5973 5974 5975 5976 5977 5978 5979 5980 5981 5982 5983 5984 5985 5986 5987 5988 5989 5990 5991 5992 5993 | sqlite3_snprintf(sizeof(p->zTestcase), p->zTestcase, "%s", azArg[1]); }else{ sqlite3_snprintf(sizeof(p->zTestcase), p->zTestcase, "?"); } }else #ifndef SQLITE_UNTESTABLE if( c=='t' && n>=8 && strncmp(azArg[0], "testctrl", n)==0 ){ static const struct { const char *zCtrlName; /* Name of a test-control option */ int ctrlCode; /* Integer code for that option */ } aCtrl[] = { { "always", SQLITE_TESTCTRL_ALWAYS }, { "assert", SQLITE_TESTCTRL_ASSERT }, { "benign_malloc_hooks", SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS }, { "bitvec_test", SQLITE_TESTCTRL_BITVEC_TEST }, { "byteorder", SQLITE_TESTCTRL_BYTEORDER }, { "fault_install", SQLITE_TESTCTRL_FAULT_INSTALL }, { "imposter", SQLITE_TESTCTRL_IMPOSTER }, { "iskeyword", SQLITE_TESTCTRL_ISKEYWORD }, { "never_corrupt", SQLITE_TESTCTRL_NEVER_CORRUPT }, { "optimizations", SQLITE_TESTCTRL_OPTIMIZATIONS }, { "pending_byte", SQLITE_TESTCTRL_PENDING_BYTE }, { "prng_reset", SQLITE_TESTCTRL_PRNG_RESET }, { "prng_restore", SQLITE_TESTCTRL_PRNG_RESTORE }, { "prng_save", SQLITE_TESTCTRL_PRNG_SAVE }, { "reserve", SQLITE_TESTCTRL_RESERVE }, }; int testctrl = -1; int rc2 = 0; int i, n2; open_db(p, 0); const char *zCmd = nArg>=2 ? azArg[1] : "help"; /* The argument can optionally begin with "-" or "--" */ if( zCmd[0]=='-' && zCmd[1] ){ zCmd++; if( zCmd[0]=='-' && zCmd[1] ) zCmd++; } /* --help lists all test-controls */ if( strcmp(zCmd,"help")==0 ){ utf8_printf(p->out, "Available test-controls:\n"); for(i=0; i<ArraySize(aCtrl); i++){ utf8_printf(p->out, " .testctrl %s\n", aCtrl[i].zCtrlName); } rc = 1; goto meta_command_exit; } /* convert testctrl text option to value. allow any unique prefix ** of the option name, or a numerical value. */ n2 = strlen30(zCmd); for(i=0; i<ArraySize(aCtrl); i++){ if( strncmp(zCmd, aCtrl[i].zCtrlName, n2)==0 ){ if( testctrl<0 ){ testctrl = aCtrl[i].ctrlCode; }else{ utf8_printf(stderr, "Error: ambiguous test-control: \"%s\"\n" "Use \".testctrl --help\" for help\n", zCmd); rc = 1; goto meta_command_exit; } } } if( testctrl<0 ) testctrl = (int)integerValue(zCmd); if( (testctrl<SQLITE_TESTCTRL_FIRST) || (testctrl>SQLITE_TESTCTRL_LAST) ){ utf8_printf(stderr,"Error: unknown test-control: %s\n" "Use \".testctrl --help\" for help\n", zCmd); }else{ switch(testctrl){ /* sqlite3_test_control(int, db, int) */ case SQLITE_TESTCTRL_OPTIMIZATIONS: case SQLITE_TESTCTRL_RESERVE: if( nArg==3 ){ |
︙ | ︙ |