From 6b13103c07c54860e37ae1a8aa9d4c63c50ca202 Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Fri, 24 Oct 2014 20:25:17 +0200 Subject: [PATCH] data_test: Test various unsupported expressions. --- t/unit/core/data_test.c | 231 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) diff --git a/t/unit/core/data_test.c b/t/unit/core/data_test.c index 1129936..a647e02 100644 --- a/t/unit/core/data_test.c +++ b/t/unit/core/data_test.c @@ -1199,6 +1199,237 @@ START_TEST(test_expr_eval) { SDB_TYPE_DATETIME, { .datetime = 0 } }, err, }, + /* unsupported type-mismatches */ + { + { SDB_TYPE_INTEGER, { .integer = 20 } }, + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_INTEGER, { .integer = 20 } }, + { SDB_TYPE_STRING, { .string = "20" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_INTEGER, { .integer = 20 } }, + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_INTEGER, { .integer = 20 } }, + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_INTEGER, { .integer = 20 } }, + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_INTEGER, { .integer = 20 } }, + { SDB_TYPE_REGEX + 1, { .integer = 0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + { SDB_TYPE_INTEGER, { .integer = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + { SDB_TYPE_STRING, { .string = "20.0" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + { SDB_TYPE_BINARY, { .binary = { 4, (unsigned char *)"20.0" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + { SDB_TYPE_REGEX + 1, { .integer = 0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_STRING, { .string = "20" } }, + { SDB_TYPE_INTEGER, { .integer = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_STRING, { .string = "20" } }, + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_STRING, { .string = "20" } }, + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_STRING, { .string = "20" } }, + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_STRING, { .string = "20" } }, + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_STRING, { .string = "20" } }, + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_STRING, { .string = "20" } }, + { SDB_TYPE_REGEX + 1, { .integer = 0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + { SDB_TYPE_STRING, { .string = "20" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + { SDB_TYPE_REGEX + 1, { .integer = 0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + { SDB_TYPE_INTEGER, { .integer = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + { SDB_TYPE_INTEGER, { .integer = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + { SDB_TYPE_STRING, { .string = "20" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + { SDB_TYPE_STRING, { .string = "20" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + { SDB_TYPE_STRING, { .string = "20" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + { SDB_TYPE_STRING, { .string = "20" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + { SDB_TYPE_REGEX + 1, { .integer = 0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + { SDB_TYPE_REGEX + 1, { .integer = 0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + { SDB_TYPE_INTEGER, { .integer = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + { SDB_TYPE_DECIMAL, { .decimal = 20.0 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + { SDB_TYPE_STRING, { .string = "20" } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + { SDB_TYPE_DATETIME, { .datetime = 20 } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + { SDB_TYPE_BINARY, { .binary = { 2, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + { SDB_TYPE_BINARY, { .binary = { 3, (unsigned char *)"20" } } }, + err, err, err, err, err, err, + }, + { + { SDB_TYPE_REGEX, { .re = { ".", empty_re } } }, + { SDB_TYPE_REGEX + 1, { .integer = 0 } }, + err, err, err, err, err, err, + }, }; size_t i; -- 2.30.2