Add a testcase() macro to verify OOM coverage.

FossilOrigin-Name: d43dcbc488120aeb7104ab9e6a27f62bb348bf6a
This commit is contained in:
drh 2013-08-06 17:24:23 +00:00
parent 3535ec3e10
commit 812ea83343
3 changed files with 9 additions and 8 deletions

View File

@ -1,5 +1,5 @@
C Remove\sunreachable\sbranches\sin\sexpr.c,\sreplacing\sthem\swith\sassert()\sand\ntestcase()\sstatements.
D 2013-08-06T16:56:44.584
C Add\sa\stestcase()\smacro\sto\sverify\sOOM\scoverage.
D 2013-08-06T17:24:23.114
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@ -172,7 +172,7 @@ F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
F src/ctime.c 4262c227bc91cecc61ae37ed3a40f08069cfa267
F src/date.c 067a81c9942c497aafd2c260e13add8a7d0c7dd4
F src/delete.c 2317c814866d9aa71fea16b3faf4fdd4d6a49b94
F src/expr.c cd4fb5acb6060a2fec30dc07fef7f8113ff3f8ad
F src/expr.c 0bbb44462a19169189b2709fbbd800950521b5ae
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c 914a6bbd987d857c41ac9d244efa6641f36faadb
F src/func.c 5c50c1ea31fd864b0fe921fe1a8d4c55acd609ef
@ -1105,7 +1105,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
P 5dcc2d91bd343cd0fac79d3c8f079a5ce534cdf7
R 4c2c4347dbc9045867f7f93fb89a2b59
P 9103c27ceb3f4023ea3a41b679a10717d3f80210
R 66ae81cd15b8b8eab1989c80a506936c
U drh
Z 4578d43c48945a1e8da3abe73645bfd7
Z 5187416864919678052fb71ae4c5e22d

View File

@ -1 +1 @@
9103c27ceb3f4023ea3a41b679a10717d3f80210
d43dcbc488120aeb7104ab9e6a27f62bb348bf6a

View File

@ -1734,12 +1734,13 @@ int sqlite3CodeSubselect(
dest.affSdst = (u8)affinity;
assert( (pExpr->iTable&0x0000FFFF)==pExpr->iTable );
pExpr->x.pSelect->iLimit = 0;
testcase( pKeyInfo==0 ); /* Caused by OOM in sqlite3KeyInfoAlloc() */
if( sqlite3Select(pParse, pExpr->x.pSelect, &dest) ){
sqlite3DbFree(pParse->db, pKeyInfo);
return 0;
}
pEList = pExpr->x.pSelect->pEList;
assert( pKeyInfo!=0 ); /* OOM will exit after sqlite3Select() */
assert( pKeyInfo!=0 ); /* OOM will cause exit after sqlite3Select() */
assert( pEList!=0 );
assert( pEList->nExpr>0 );
pKeyInfo->aColl[0] = sqlite3BinaryCompareCollSeq(pParse, pExpr->pLeft,