Add OOM test for the new code on this branch.

FossilOrigin-Name: 685be705a2a69e79de0d581e5bbe9d942133817342121786a551d95d59a4af6c
This commit is contained in:
dan
2026-04-22 19:25:12 +00:00
parent 4b69e7704b
commit 68b07ddd41
4 changed files with 32 additions and 11 deletions
+8 -8
View File
@@ -1,5 +1,5 @@
C Mark\sbranches\sthat\sare\sbelieved\sto\sbe\sunreachable.
D 2026-04-22T19:12:48.603
C Add\sOOM\stest\sfor\sthe\snew\scode\son\sthis\sbranch.
D 2026-04-22T19:25:12.997
F .fossil-settings/binary-glob 61195414528fb3ea9693577e1980230d78a1f8b0a54c78cf1b9b24d0a409ed6a x
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
@@ -802,7 +802,7 @@ F src/upsert.c 215328c3f91623c520ec8672c44323553f12caeb4f01b1090ebdca99fdf7b4f1
F src/utf.c 7267c3fb9e2467020507601af3354c2446c61f444387e094c779dccd5ca62165
F src/util.c 377af5da226519a0f374dc3c6d408c9d303a92943e3ae5986432c7d52e6679a2
F src/vacuum.c d3d35d8ae893d419ade5fa196d761a83bddcbb62137a1a157ae751ef38b26e82
F src/vdbe.c 2b6df85980adb3d12c61d4cbffa6230efa882f63c4e3ab81001831beb758d24c
F src/vdbe.c 981719899b473de0c71b3559b7a313f280e1f4c1abf4eecded29867037d9cd05
F src/vdbe.h 70e862ac8a11b590f8c1eaac17a0078429d42bc4ea3f757a9af0f451dd966a71
F src/vdbeInt.h c31ba4dc8d280c2b1dc89c6fcee68f2555e3813ab34279552c20b964c0e338b1
F src/vdbeapi.c 6cdcbe5c7afa754c998e73d2d5d2805556268362914b952811bdfb9c78a37cf1
@@ -1105,7 +1105,7 @@ F test/existsexpr2.test dc23e76389eff3d29f6488ff733012a3560cd67ec8cfaecbecd52cce
F test/existsfault.test ff41c11f3052c1bbd4f8dd557802310026253d67d7c4e3a180c16d2f0862973e
F test/expr.test db981f8a85520e99ae20aab7ad2e9b5b0437ed09159b57ced434c672075d2e61
F test/expr2.test c27327ae9c017a7ff6280123f67aff496f912da74d78c888926d68b46ec75fd8
F test/exprfault.test da33606d799718e2f8e34efd0e5858884a1ad87f608774c552a7f5517cc27181
F test/exprfault.test 7475e363c7221847855722e9dd2459cf60088f6b172c0c808dba75f89e1704b8
F test/exprfault2.test c49e84273898969af5dbc4fe6a3f4335f14639799f343590336c9ddf84425965
F test/expridx1.test b464520126e1d781a7800f8540621c82e8bbc526f089ff8b0b57ffc51feea6b7
F test/expridx2.test 8890d483da880ce86bc5f2f6cd93c27af8a3b99871ed039fe385ee99dbeb9455
@@ -2203,8 +2203,8 @@ F tool/warnings-clang.sh bbf6a1e685e534c92ec2bfba5b1745f34fb6f0bc2a362850723a9ee
F tool/warnings.sh a554d13f6e5cf3760f041b87939e3d616ec6961859c3245e8ef701d1eafc2ca2
F tool/win/sqlite.vsix deb315d026cc8400325c5863eef847784a219a2f
F tool/winmain.c 00c8fb88e365c9017db14c73d3c78af62194d9644feaf60e220ab0f411f3604c
P 5112f96cb1428693614b91bcca78326fccf7289e395a920339676ceeba871e3f
R b81c729d8d931370d59698df4d8d923d
U drh
Z 51be1ac13abf50f45b9e7dc7cfaa2e21
P 18ed9736fbbea762e04b8ad156e83e577e60c5234a5e233540ad8664fe3b379c
R d93ff546001d5b8e63f19e558bfbb1fe
U dan
Z 49d8757ec0e1ba75534d92a2aa4cc9bf
# Remove this line to create a well-formed Fossil manifest.
+1 -1
View File
@@ -1 +1 @@
18ed9736fbbea762e04b8ad156e83e577e60c5234a5e233540ad8664fe3b379c
685be705a2a69e79de0d581e5bbe9d942133817342121786a551d95d59a4af6c
+2 -2
View File
@@ -820,7 +820,7 @@ static SQLITE_NOINLINE int vdbeIndexKeyCompare(
Mem m;
memset(&m, 0, sizeof(m));
*pRc = sqlite3VdbeMemFromBtreeZeroOffset(pCsr, nKey, &m);
ret = (NEVER(*pRc!=SQLITE_OK) || 0==memcmp(pMem->z, m.z, nKey));
ret = (*pRc!=SQLITE_OK || 0==memcmp(pMem->z, m.z, nKey));
sqlite3VdbeMemReleaseMalloc(&m);
}
@@ -6709,7 +6709,7 @@ case OP_IdxDelete: {
}
if( pOp->p3 && vdbeIndexKeyCompare(pCrsr, &aMem[pOp->p3], &rc) ){
if( NEVER(rc) ) goto abort_due_to_error;
if( rc ) goto abort_due_to_error;
sqlite3VdbeMemSetNull(&aMem[pOp->p3]);
break;
}
+21
View File
@@ -41,5 +41,26 @@ do_faultsim_test 2 -faults oom* -prep {
faultsim_test_result {0 ABCDEF}
}
#-------------------------------------------------------------------------
reset_db
do_execsql_test 3.0 {
PRAGMA page_size=1024;
CREATE TABLE t1(a INTEGER PRIMARY KEY, b);
CREATE INDEX i1 ON t1( hex(b) );
INSERT INTO t1 VALUES(10, randomblob(500));
}
faultsim_save_and_close
do_faultsim_test 3 -faults oom* -prep {
faultsim_restore_and_reopen
} -body {
execsql {
UPDATE t1 SET b=randomblob(500);
}
} -test {
faultsim_test_result {0 {}}
}
finish_test