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

Unified Diff: third_party/sqlite/src/test/malloc.test

Issue 949043002: Add //third_party/sqlite to dirs_to_snapshot, remove net_sql.patch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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/test/main.test ('k') | third_party/sqlite/src/test/malloc3.test » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/sqlite/src/test/malloc.test
diff --git a/third_party/sqlite/src/test/malloc.test b/third_party/sqlite/src/test/malloc.test
index 678b2be075fe8e2f831790c123f4e4b0f7f7032d..86145672a218a671aa2573307e8282b0ff0fdda9 100644
--- a/third_party/sqlite/src/test/malloc.test
+++ b/third_party/sqlite/src/test/malloc.test
@@ -20,6 +20,7 @@
set testdir [file dirname $argv0]
source $testdir/tester.tcl
+set ::testprefix malloc
# Only run these tests if memory debugging is turned on.
@@ -270,7 +271,7 @@ do_malloc_test 9 -sqlprep {
do_malloc_test 10 -tclprep {
catch {db2 close}
db close
- file delete -force test.db test.db-journal
+ forcedelete test.db test.db-journal
sqlite3 db test.db
sqlite3_extended_result_codes db 1
db eval {CREATE TABLE abc(a, b, c)}
@@ -341,8 +342,8 @@ if {$tcl_platform(platform)!="windows"} {
BEGIN;
INSERT INTO t1 VALUES(3, 4);
}
- copy_file test2.db test.db
- copy_file test2.db-journal test.db-journal
+ forcecopy test2.db test.db
+ forcecopy test2.db-journal test.db-journal
db2 close
} -tclbody {
sqlite3 db test.db
@@ -499,7 +500,7 @@ unset static_string
ifcapable attach {
do_malloc_test 20 -tclprep {
db close
- file delete -force test2.db test2.db-journal
+ forcedelete test2.db test2.db-journal
sqlite3 db test2.db
sqlite3_extended_result_codes db 1
db eval {CREATE TABLE t1(x);}
@@ -842,7 +843,7 @@ do_malloc_test 36 -sqlprep {
SELECT test_agg_errmsg16(), group_concat(a) FROM t1
}
-# At one point, if an OOM occured immediately after obtaining a shared lock
+# At one point, if an OOM occurred immediately after obtaining a shared lock
# on the database file, the file remained locked. This test case ensures
# that bug has been fixed.i
if {[db eval {PRAGMA locking_mode}]!="exclusive"} {
@@ -867,31 +868,59 @@ if {[db eval {PRAGMA locking_mode}]!="exclusive"} {
catch { db2 close }
}
-ifcapable stat2&&utf16 {
- do_malloc_test 38 -tclprep {
- add_test_collate db 0 0 1
- execsql {
- ANALYZE;
- CREATE TABLE t4(x COLLATE test_collate);
- CREATE INDEX t4x ON t4(x);
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 0, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 1, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 2, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 3, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 4, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 5, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 6, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 7, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 8, 'aaa');
- INSERT INTO sqlite_stat2 VALUES('t4', 't4x', 9, 'aaa');
- }
- db close
- sqlite3 db test.db
- sqlite3_db_config_lookaside db 0 0 0
- add_test_collate db 0 0 1
- } -sqlbody {
- SELECT * FROM t4 AS t41, t4 AS t42 WHERE t41.x>'ddd' AND t42.x>'ccc'
+
+# Test that if an OOM error occurs, aux-data is still correctly destroyed.
+# This test case was causing either a memory-leak or an assert() failure
+# at one point, depending on the configuration.
+#
+do_malloc_test 39 -tclprep {
+ sqlite3 db test.db
+} -sqlbody {
+ SELECT test_auxdata('abc', 'def');
+} -cleanup {
+ db close
+}
+
+reset_db
+add_test_utf16bin_collate db
+do_execsql_test 40.1 {
+ CREATE TABLE t1(a);
+ INSERT INTO t1 VALUES('fghij');
+ INSERT INTO t1 VALUES('pqrst');
+ INSERT INTO t1 VALUES('abcde');
+ INSERT INTO t1 VALUES('uvwxy');
+ INSERT INTO t1 VALUES('klmno');
+}
+do_execsql_test 40.2 {
+ SELECT * FROM t1 ORDER BY 1 COLLATE utf16bin;
+} {abcde fghij klmno pqrst uvwxy}
+do_faultsim_test 40.3 -faults oom-trans* -body {
+ execsql {
+ SELECT * FROM t1 ORDER BY 1 COLLATE utf16bin;
}
+} -test {
+ faultsim_test_result {0 {abcde fghij klmno pqrst uvwxy}}
+ faultsim_integrity_check
+}
+
+reset_db
+add_test_utf16bin_collate db
+set big [string repeat x 200]
+do_execsql_test 41.1 {
+ DROP TABLE IF EXISTS t1;
+ CREATE TABLE t1(a COLLATE utf16bin);
+ INSERT INTO t1 VALUES('fghij' || $::big);
+ INSERT INTO t1 VALUES('pqrst' || $::big);
+ INSERT INTO t1 VALUES('abcde' || $::big);
+ INSERT INTO t1 VALUES('uvwxy' || $::big);
+ INSERT INTO t1 VALUES('klmno' || $::big);
+ CREATE INDEX i1 ON t1(a);
+}
+do_faultsim_test 41.2 -faults oom* -body {
+ execsql { SELECT * FROM t1 WHERE a = ('abcde' || $::big)}
+} -test {
+ faultsim_test_result [list 0 "abcde$::big"]
+ faultsim_integrity_check
}
# Ensure that no file descriptors were leaked.
« no previous file with comments | « third_party/sqlite/src/test/main.test ('k') | third_party/sqlite/src/test/malloc3.test » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698