--- parser3/tests/388-sql.html 2019/10/25 12:32:55 1.10 +++ parser3/tests/388-sql.html 2024/09/27 23:31:47 1.15 @@ -1,19 +1,24 @@ @main[] +$path[^os[Release/;.libs/lib]] +$ext[^os[dll;so]] + $SQL[ $.drivers[^table::create{protocol driver client connect -sqlite ../../sql/sqlite/.libs/libparser3sqlite.so libsqlite3.so sqlite://:memory:?multi_statements=1 -mysql ../../sql/mysql/.libs/libparser3mysql.so libmariadbclient.so mysql://@/?config_group=parser3&multi_statements=1 -pgsql ../../sql/pgsql/.libs/libparser3pgsql.so libpq.so pgsql://test@localhost/test +sqlite ../../sql/sqlite/${path}parser3sqlite.$ext ^os[sqlite3.dll;libsqlite3.so] sqlite://:memory:?multi_statements=1 +mysql ../../sql/mysql/${path}parser3mysql.$ext ^os[libmySQL.dll;libmariadbclient.so] mysql://@/?config_group=parser3&multi_statements=1 +pgsql ../../sql/pgsql/${path}parser3pgsql.$ext libpq.$ext pgsql://test@localhost/test }] ] -$ignore[^SQL.drivers.locate[protocol;sqlite]] +$sql[sqlite] +$ignore[^SQL.drivers.locate[protocol;$sql]] ^connect[$SQL.drivers.connect]{ 1. 2 + 2 = ^string:sql{select 2+2} + 2. void 2.0 $ignore[^try-catch{ ^void:sql{drop table pets} }] @@ -30,8 +35,10 @@ $ignore[^SQL.drivers.locate[protocol;sql 2.4 ^try-catch{ ^void:sql{query}[ $.unknown[yes] ] } 2.5 ^try-catch{ ^void:sql{query}[ $.bind[ $.name[value] ] ] } - 2.6 Multiple queries: ^try-catch{ ^void:sql{delete from pets where pet='' ^; delete from pets where pet='' } } - 2.7 Exception in second query: ^try-catch{ ^void:sql{delete from pets where pet='' ^; select 2+2 } } + 2.6 Multiple queries: ^try-catch{ ^void:sql{delete from pets where pet='' ^; delete from pets where pet=''} } + 2.8 Multiple queries, data in first query: ^if($sql ne 'mysql'){ ^try-catch{ ^void:sql{select 2+2 ^; delete from pets where pet=''} } } + 2.9 Multiple queries, data in second query: ^try-catch{ ^void:sql{delete from pets where pet='' ^; select 2+2} } + 3. int/double @@ -43,6 +50,10 @@ $ignore[^SQL.drivers.locate[protocol;sql 3.5 ^try-catch{ ^double:sql{select -2}[ $.limit(0) ] } 3.6 ^double:sql{select -2}[ $.limit(0) $.default[1] ] + 3.7 Multiple queries, data in first query: ^try-catch{ ^int:sql{select 2+2 ^; delete from pets where pet=''} } + 3.8 Multiple queries, data in second query: ^try-catch{ ^int:sql{delete from pets where pet='' ^; select 2+2} } + 3.9 Multiple queries, data in both queries: ^try-catch{ ^int:sql{select 2+2 ^; select 3+3 } } + 4. hash @@ -58,6 +69,8 @@ $ignore[^SQL.drivers.locate[protocol;sql 4.6 ^try-catch{ ^h[select 'dup', pet from pets; $.type[string] ]} + 4.7 ^h[select pet from pets] + 5. table @@ -114,3 +127,6 @@ $ignore[^SQL.drivers.locate[protocol;sql @s[query;options] $s[^string:sql{$query}[$options]] "$s" + +@postprocess[text] + $result[^taint[as-is;$text]]