$ErrorActionPreference = "Stop"
$sqlite3Bin = if ($env:SQLITE3_BIN) { $env:SQLITE3_BIN } else { "sqlite3" }
$extensionFile = if ($env:EXTENSION_FILE) { $env:EXTENSION_FILE } else { "target/debug/sqlite_functions_basic.dll" }
$sql = @"
.load '$extensionFile'
SELECT to_camel_case('customer display_name');
SELECT murmur3_32('hello');
CREATE TABLE records(id INTEGER PRIMARY KEY, value TEXT NOT NULL);
INSERT INTO records(value) VALUES ('Alpha'), ('Beta'), ('Gamma');
CREATE INDEX records_murmur ON records(murmur3_32(value));
SELECT value FROM records WHERE murmur3_32(value) = murmur3_32('Beta') AND value = 'Beta';
EXPLAIN QUERY PLAN SELECT value FROM records WHERE murmur3_32(value) = murmur3_32('Beta') AND value = 'Beta';
"@
$output = $sql | & $sqlite3Bin ":memory:"
if ($LASTEXITCODE -ne 0) { throw "SQLite extension test failed" }
$text = $output -join "`n"
foreach ($expected in @("customerDisplayName", "613153351", "Beta", "USING INDEX records_murmur")) {
if (-not $text.Contains($expected)) { throw "Missing expected output: $expected`n$text" }
}
Write-Host "Extension smoke test passed: $extensionFile"