limbo/testing
Preston Thorpe b40cdb1bfd
Merge 'fix stack overflow in long unary expressions' from
## Description
<!--
Please include a summary of the changes and the related issue.
-->
This PR fixes https://github.com/tursodatabase/turso/issues/4197 by
collapsing `+` and `-` operators in unary expressions.
## Motivation and context
<!--
Please include relevant motivation and context.
Link relevant issues here.
-->
By collapsing `+` and `-` operators in unary expressions, we're able to
prevent stack overflow in very long unary expressions. The following
queries can be used to test this change:
```sql
select +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++123;

select - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -123;

select +++++++++++++++++++++++++++++++++++++++++++++++++++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+123;
```
All of the queries above crashes with a stack overflow error prior to
this fix.
## Description of AI Usage
No AI was used in this PR.
<!--
Please disclose how AI was used to help create this PR. For example, you
can share prompts,
specific tools, or ways of working that you took advantage of. You can
also share whether the
creation of the PR was mainly driven by AI, or whether it was used for
assistance.
This is a good way of sharing knowledge to other contributors about how
we can work more efficiently with
AI tools. Note that the use of AI is encouraged, but the committer is
still fully responsible for understanding
and reviewing the output.
-->

Reviewed-by: Mikaël Francoeur (@LeMikaelF)

Closes #4273
2025-12-19 14:41:45 -05:00
..
cli_tests Improve MVCC DX by dropping --experimental-mvcc flag 2025-12-19 12:59:42 +02:00
javascript fix tests in testing/javascript 2025-09-25 12:07:57 +04:00
sqlancer Add run-sqlancer.sh script to run sqlancer using Turso java bindings 2025-12-11 17:18:11 +02:00
sqlite3 testing/sqlite3: Update all.test 2025-08-02 13:00:18 +03:00
sqlite_test_ext Implement xBestIndex for kvstore.c 2025-08-04 19:25:11 +02:00
test_files
unreliable-libc Add short writes to pwritev in faulty_libc. 2025-10-03 18:35:03 +02:00
wal
affinity.test Add regression test for rowid affinity 2025-10-02 14:31:22 -04:00
agg-functions.test printf truncates floats 2025-09-28 21:16:33 +05:30
all-mvcc.test tcl: exclude partial index for mvcc tcl tests 2025-12-19 10:43:22 +01:00
all.test don't rewrite qualified table names 2025-12-16 16:45:40 +05:30
alter_column.test feat: alter table disallow generated columns, support foreign keys for alter table 2025-11-08 13:45:17 +05:30
alter_table.test Add regression tcl test for #3886 2025-11-03 09:47:28 -05:00
analyze.test Add/expand tcl tests for analyze 2025-12-09 20:02:07 -05:00
attach.test Add regression test for #3540 attach issue 2025-10-06 21:33:42 -04:00
autoincr.test tcl,makefile: add tcl test infraestructure for mvcc 2025-12-08 18:05:45 +01:00
boolean.test
changes.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
cmdlineshell.test
coalesce.test
collate.test add tcl tests for collate 2025-12-16 13:11:03 -03:00
compare.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
concat.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
create_index.test Prevent creating index on rowid pseudo-column 2025-12-06 16:10:51 -05:00
create_table.test Add regression tcl test for #3796 default bool col constraints 2025-10-21 21:22:09 -04:00
default_value.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
delete.test chore: enable indexes by default 2025-08-01 15:44:56 +03:00
drop_index.test Including tests 2025-08-05 21:18:52 -07:00
drop_table.test fix: prevent DROP TABLE when table is referenced by foreign keys 2025-11-04 12:32:19 -03:00
foreign_keys.test dont validate fkey on parent add tests 2025-11-16 09:41:57 +05:30
gen-bigass-database.py add gen-bigass-database.py 2025-09-08 13:05:33 -04:00
gen-database.py
glob.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
groupby.test fix: result columns have varying binding precedence 2025-09-25 08:07:37 +03:00
insert.test tcl: exclude partial index for mvcc tcl tests 2025-12-19 10:43:22 +01:00
integrity_check.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
join.test feat(hash-join): add hash matching for equivalent integer and real values 2025-12-15 15:25:50 +00:00
json.test fix(json): properly serialize infinite values 2025-12-16 10:15:29 +00:00
like.test Added tests 2025-11-18 22:14:09 +05:30
literal.test
materialized_views.test Fix: Drop internal DBSP table when dropping materialized view 2025-11-08 20:28:20 +01:00
math.test remove mod(x, y) function tests which are "unstable" at the argument boundaries 2025-12-17 14:42:10 +04:00
null.test Fix descending index scan returning rows when seek key is NULL 2025-12-08 13:19:58 +02:00
offset.test Fix expected error message 2025-10-15 09:41:44 +03:00
orderby.test Merge branch 'main' into order-by-heap-sort 2025-10-22 11:44:55 +04:00
partial_idx.test Add some tests for UPSERT with partial indexes 2025-09-20 18:32:50 -04:00
pragma.test impl cache spilling in pager 2025-12-17 11:57:34 -05:00
pyproject.toml Add bench-sqlite script and makefile command for benchmarking an I/O backend against sqlite3 2025-08-18 15:11:29 -04:00
README.md Add framework for testing extensions in TCL 2025-08-15 21:06:27 +02:00
returning.test AI-generated tests for DELETE RETURNING 2025-11-14 13:35:24 +02:00
rollback.test chore: enable indexes by default 2025-08-01 15:44:56 +03:00
scalar-functions-datetime.test core(datetime): added implementation of ceiling modifier to datetime 2025-08-23 22:59:08 -05:00
scalar-functions-printf.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
scalar-functions.test Add TCL tests for quote scalar function w/ blob type 2025-11-27 20:59:23 -05:00
select.test add tests 2025-12-17 19:51:57 -05:00
subquery.test Fix EXISTS on LEFT JOIN null rows 2025-11-04 22:01:18 +07:00
tester.tcl tcl,makefile: add tcl test infraestructure for mvcc 2025-12-08 18:05:45 +01:00
testing.db fix: revert changes on testing dbs 2025-08-11 08:42:08 -03:00
testing_norowidalias.db fix: revert changes on testing dbs 2025-08-11 08:42:08 -03:00
testing_small.db
testing_user_version_10.db
time.test
total-changes.test Add 'make test-single' 2025-10-30 11:38:56 +02:00
transactions.test
trigger.test don't rewrite qualified table names 2025-12-16 16:45:40 +05:30
update.test fix(core/util): reject integer primary key underflow 2025-12-16 23:49:08 +00:00
upsert.test Add tcl tests for expr indexes and collation 2025-11-20 12:47:49 -05:00
values.test tests passing 2025-11-23 13:04:44 +05:30
vector.test added tcl tests 2025-12-06 00:01:17 +05:30
views.test Remove tests that alter testing.db from views.test 2025-10-18 12:05:33 -04:00
vtab.test Extract TVF-related tests to TCL 2025-08-15 21:06:30 +02:00
where.test fix: result columns have varying binding precedence 2025-09-25 08:07:37 +03:00
window.test Add support for window functions 2025-09-13 11:12:44 +02:00

Turso Testing

Testing Extensions

When adding tests for extensions, please follow these guidelines:

  • Tests that verify the internal logic or behavior of a particular extension should go into cli_tests/extensions.py.
  • Tests that verify how extensions interact with the database engine, such as virtual table handling, should be written in TCL (see vtab.test as an example).

To check which extensions are available in TCL, or to add a new one, refer to the tester.tcl file and look at the extension_map.