SQLite

Check-in [6216bfcb]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix an FTS3 corruption test case that depends on the specific pseudo-random byte sequence generated by sqlite3_randomness(), which is different on big-endian platforms than it is on little-endian platforms.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 6216bfcb74273b7893735e265d3f04d1362fa625cd60cebccb866ce7d6c50e01
User & Date: drh 2024-11-06 19:19:49
Context
2024-11-07
05:26
For platforms where tclsh is found but tclConfig.sh is not, set HAVE_TCL to 0. We can't build the TCL components on those. Problem reported in forum post 5106aee3a8. (check-in: 04d2576b user: stephan tags: trunk)
2024-11-06
19:19
Fix an FTS3 corruption test case that depends on the specific pseudo-random byte sequence generated by sqlite3_randomness(), which is different on big-endian platforms than it is on little-endian platforms. (check-in: 6216bfcb user: drh tags: trunk)
12:58
Re-phrase some (#if !SQLITE_CORE) to (#ifndef SQLITE_CORE), as discussed in forum post cea40371c5e34b09. (check-in: 5495b125 user: stephan tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to test/fts3corrupt4.test.
4399
4400
4401
4402
4403
4404
4405











4406
4407


4408
4409









4410
4411
4412
4413
4414
4415
4416
} {0 {}}

do_catchsql_test 25.5 {
  WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x%1 FROM c WHERE x<599237)
    INSERT INTO t1( a ) SELECT randomblob(3000) FROM t2 ;
} {0 {}}












do_catchsql_test 25.6 {
  INSERT INTO t1(t1) SELECT x FROM t2;


  INSERT INTO t1(t1) SELECT x FROM t2;
} {1 {database disk image is malformed}}










#-------------------------------------------------------------------------
reset_db
do_test 26.0 {
  sqlite3 db {}
  db deserialize [decode_hexdb {
.open --hexdb







>
>
>
>
>
>
>
>
>
>
>
|
|
>
>
|
|
>
>
>
>
>
>
>
>
>







4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
} {0 {}}

do_catchsql_test 25.5 {
  WITH RECURSIVE c(x) AS (VALUES(1) UNION ALL SELECT x%1 FROM c WHERE x<599237)
    INSERT INTO t1( a ) SELECT randomblob(3000) FROM t2 ;
} {0 {}}

if {$tcl_platform(byteOrder)=="littleEndian"} {
  # The SQLITE_CORRUPT error depends on the specific random byte
  # sequence generated by SQLite's PRNG.  But the SQLite PRNG
  # uses ChaCha20, which generates a different byte sequence on
  # big-endian and little-endian platforms.  The SQLITE_CORRUPT
  # error only comes up when the pseudo-random byte sequence is
  # the one generated on little-endian platforms.
  #
  # See Forum thread:
  # https://sqlite.org/forum/forumpost/b5f89d813babfd88
  #
  do_catchsql_test 25.6a {
    INSERT INTO t1(t1) SELECT x FROM t2;
  } {1 {database disk image is malformed}}
  do_catchsql_test 25.6b {
    INSERT INTO t1(t1) SELECT x FROM t2;
  } {1 {database disk image is malformed}}
} else {
  do_catchsql_test 25.6a {
    INSERT INTO t1(t1) SELECT x FROM t2;
  } {0 {}}
  do_catchsql_test 25.6b {
    INSERT INTO t1(t1) SELECT x FROM t2;
  } {0 {}}
}


#-------------------------------------------------------------------------
reset_db
do_test 26.0 {
  sqlite3 db {}
  db deserialize [decode_hexdb {
.open --hexdb