diff options
author | EuAndreh <eu@euandre.org> | 2024-10-01 15:50:33 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2024-10-01 15:50:33 -0300 |
commit | bf67f44cfbc551b644542e25b953566ee383d5bd (patch) | |
tree | ac36f31e50850bf1a11b79fc344b4d685fff469c /tests/functional/streq.c | |
parent | tests/golite.go: Enable slow tests (diff) | |
download | golite-bf67f44cfbc551b644542e25b953566ee383d5bd.tar.gz golite-bf67f44cfbc551b644542e25b953566ee383d5bd.tar.xz |
Turn example files into tests under tests/functional/
Diffstat (limited to 'tests/functional/streq.c')
-rw-r--r-- | tests/functional/streq.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/functional/streq.c b/tests/functional/streq.c new file mode 100644 index 0000000..bbf3763 --- /dev/null +++ b/tests/functional/streq.c @@ -0,0 +1,36 @@ +#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); + return sqlite3_create_function( + db, + "streq", + 2, + SQLITE_UTF8, + (void *)db, + streq, + NULL, + NULL + ); +} |