aboutsummaryrefslogtreecommitdiff
path: root/test/fuzzinvariants.c
diff options
context:
space:
mode:
authordrh <>2023-03-16 11:50:44 +0000
committerdrh <>2023-03-16 11:50:44 +0000
commitdb8c6aa03ab5a6dd7cd0614a3bc6a0371df1f558 (patch)
tree8d273f8062e8889e0a810c0580edb3f35d942683 /test/fuzzinvariants.c
parent7d5a5491215eb48acba22a81067aae2661bb2fd6 (diff)
downloadsqlite-db8c6aa03ab5a6dd7cd0614a3bc6a0371df1f558.tar.gz
sqlite-db8c6aa03ab5a6dd7cd0614a3bc6a0371df1f558.zip
Update the tracing output for the query-invariant checker such that it shows
the SQL that is run to verify that a found query-invariant discrepency is valid. Changes to testing logic only. FossilOrigin-Name: 8f45ad27403e971d88ec62e674c03f82eb19df0b43aa58d20b3400cdb6611d90
Diffstat (limited to 'test/fuzzinvariants.c')
-rw-r--r--test/fuzzinvariants.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/fuzzinvariants.c b/test/fuzzinvariants.c
index 0a5f60714..73472e089 100644
--- a/test/fuzzinvariants.c
+++ b/test/fuzzinvariants.c
@@ -126,6 +126,12 @@ int fuzz_invariant(
sqlite3_finalize(pTestStmt);
return rc;
}
+ if( eVerbosity>=2 ){
+ char *zSql = sqlite3_expanded_sql(pCk);
+ printf("invariant-validity-check #1:\n%s\n", zSql);
+ sqlite3_free(zSql);
+ }
+
rc = sqlite3_step(pCk);
if( rc!=SQLITE_ROW
|| sqlite3_column_text(pCk, 0)==0
@@ -146,6 +152,11 @@ int fuzz_invariant(
sqlite3_db_config(db, SQLITE_DBCONFIG_REVERSE_SCANORDER, !iOrigRSO, 0);
sqlite3_prepare_v2(db, sqlite3_sql(pStmt), -1, &pCk, 0);
sqlite3_db_config(db, SQLITE_DBCONFIG_REVERSE_SCANORDER, iOrigRSO, 0);
+ if( eVerbosity>=2 ){
+ char *zSql = sqlite3_expanded_sql(pCk);
+ printf("invariant-validity-check #2:\n%s\n", zSql);
+ sqlite3_free(zSql);
+ }
while( (rc = sqlite3_step(pCk))==SQLITE_ROW ){
for(i=0; i<nCol; i++){
if( !sameValue(pStmt, i, pTestStmt, i, 0) ) break;
@@ -167,6 +178,12 @@ int fuzz_invariant(
"SELECT ?1=?2 OR ?1=?2 COLLATE nocase OR ?1=?2 COLLATE rtrim",
-1, &pCk, 0);
if( rc==SQLITE_OK ){
+ if( eVerbosity>=2 ){
+ char *zSql = sqlite3_expanded_sql(pCk);
+ printf("invariant-validity-check #3:\n%s\n", zSql);
+ sqlite3_free(zSql);
+ }
+
sqlite3_reset(pTestStmt);
while( (rc = sqlite3_step(pTestStmt))==SQLITE_ROW ){
for(i=0; i<nCol; i++){
@@ -185,6 +202,11 @@ int fuzz_invariant(
rc = sqlite3_prepare_v2(db,
"SELECT 1 FROM bytecode(?1) WHERE opcode='VOpen'", -1, &pCk, 0);
if( rc==SQLITE_OK ){
+ if( eVerbosity>=2 ){
+ char *zSql = sqlite3_expanded_sql(pCk);
+ printf("invariant-validity-check #4:\n%s\n", zSql);
+ sqlite3_free(zSql);
+ }
sqlite3_bind_pointer(pCk, 1, pStmt, "stmt-pointer", 0);
rc = sqlite3_step(pCk);
}