aboutsummaryrefslogtreecommitdiff
path: root/tests/functional
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional')
-rw-r--r--tests/functional/extension.go79
-rw-r--r--tests/functional/streq.c37
2 files changed, 0 insertions, 116 deletions
diff --git a/tests/functional/extension.go b/tests/functional/extension.go
deleted file mode 100644
index 81c4494..0000000
--- a/tests/functional/extension.go
+++ /dev/null
@@ -1,79 +0,0 @@
-package main
-
-import (
- "database/sql"
- "fmt"
- "log"
- "os"
- "reflect"
-
- "golite"
-)
-
-
-
-func fatalif(err error) {
- if err != nil {
- log.Fatal(err)
- }
-}
-
-func eq(given any, expected any) {
- if !reflect.DeepEqual(given, expected) {
- fmt.Fprintf(os.Stderr, "given != expected\n")
- fmt.Fprintf(os.Stderr, "given: %#v\n", given)
- fmt.Fprintf(os.Stderr, "expected: %#v\n", expected)
- }
-}
-
-
-
-func main() {
- driver := golite.SQLiteDriver{
- Extensions: []string{
- "streq",
- },
- }
- sql.Register("sqlite3-streq", &driver)
-
- db, err := sql.Open("sqlite3-streq", ":memory:")
- fatalif(err)
- defer db.Close()
-
- rows, err := db.Query(`
- SELECT str, n FROM (
- SELECT 'hello' as str, 1 as n
- UNION
- SELECT 'not' as str, 2 as n
- UNION
- SELECT 'hello' as str, 3 as n
- ) WHERE streq(str, 'hello');
- `)
- fatalif(err)
- defer rows.Close()
-
- type pairT struct{
- str string
- id int
- }
- var pairs []pairT
- for rows.Next() {
- var pair pairT
- err := rows.Scan(&pair.str, &pair.id)
- fatalif(err)
- pairs = append(pairs, pair)
- }
- fatalif(rows.Err())
-
- expected := []pairT{
- pairT{
- str: "hello",
- id: 1,
- },
- pairT{
- str: "hello",
- id: 3,
- },
- }
- eq(pairs, expected)
-}
diff --git a/tests/functional/streq.c b/tests/functional/streq.c
deleted file mode 100644
index 70a6aa8..0000000
--- a/tests/functional/streq.c
+++ /dev/null
@@ -1,37 +0,0 @@
-#include <assert.h>
-#include <stdbool.h>
-#include <string.h>
-#include <sqlite3ext.h>
-
-
-
-SQLITE_EXTENSION_INIT1
-static void
-streq(sqlite3_context *const ctx, const int argc, sqlite3_value **const argv) {
- assert(argc == 2);
- const char *const str1 = (const char *)sqlite3_value_text(argv[0]);
- const char *const str2 = (const char *)sqlite3_value_text(argv[1]);
- const bool equal = strcmp(str1, str2) == 0;
- const int result = equal ? 1 : 0;
- sqlite3_result_int(ctx, result);
-}
-
-int
-sqlite3_extension_init(
- sqlite3 *const db,
- const char *const *const errmsg,
- const sqlite3_api_routines *const api
-) {
- SQLITE_EXTENSION_INIT2(api);
- (void)errmsg;
- return sqlite3_create_function(
- db,
- "streq",
- 2,
- SQLITE_UTF8,
- (void *)db,
- streq,
- NULL,
- NULL
- );
-}