improved testing
This commit is contained in:
parent
49d3b8c14f
commit
382522db76
|
@ -2,5 +2,7 @@
|
||||||
echo "Compiling..."
|
echo "Compiling..."
|
||||||
make clean -C src/ >/dev/null
|
make clean -C src/ >/dev/null
|
||||||
make tests -C src/ >/dev/null
|
make tests -C src/ >/dev/null
|
||||||
|
make grammar_test -C src/ >/dev/null
|
||||||
echo "Running tests:"
|
echo "Running tests:"
|
||||||
|
./bin/grammar_test -f "test/valid_queries.sql"
|
||||||
./bin/tests
|
./bin/tests
|
|
@ -72,16 +72,16 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
end = std::chrono::system_clock::now();
|
end = std::chrono::system_clock::now();
|
||||||
std::chrono::duration<double> elapsed_seconds = end-start;
|
std::chrono::duration<double> elapsed_seconds = end-start;
|
||||||
|
double us = elapsed_seconds.count() * 1000 * 1000;
|
||||||
|
|
||||||
if (expect_false == stmt_list->isValid) {
|
if (expect_false == stmt_list->isValid) {
|
||||||
fprintf(stderr, "Parsing failed (%.3fms)! %s: \"%s\"\n", elapsed_seconds.count()*1000, stmt_list->parser_msg, sql.c_str());
|
printf("\033[0;31m{ failed}\033[0m\n");
|
||||||
|
printf("\t\033[0;31m%s\n\033[0m", stmt_list->parser_msg);
|
||||||
|
printf("\t%s\n", sql.c_str());
|
||||||
num_failed++;
|
num_failed++;
|
||||||
} else {
|
} else {
|
||||||
if (expect_false) {
|
// TODO: indicate whether expect_false was set
|
||||||
// printf("Success (%.3fms)! %s: \"%s\"\n", elapsed_seconds.count()*1000, stmt_list->parser_msg, sql.c_str());
|
printf("\033[0;32m{ ok} (%.1fus)\033[0m %s\n", us, sql.c_str());
|
||||||
} else {
|
|
||||||
// printf("Success (%.3fms)! \"%s\"\n", elapsed_seconds.count()*1000, sql.c_str());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,4 +35,3 @@ TEST(DeleteTest) {
|
||||||
ASSERT_EQ(stmt->expr->expr2->fval, 2.0);
|
ASSERT_EQ(stmt->expr->expr2->fval, 2.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
# SELECT statement
|
|
||||||
SELECT * FROM orders;
|
|
||||||
SELECT a FROM foo WHERE a > 12 OR b > 3 AND NOT c LIMIT 10
|
|
||||||
SELECT col1 AS myname, col2, 'test' FROM "table", foo AS t WHERE age > 12 AND zipcode = 12345 GROUP BY col1;
|
|
||||||
SELECT * from "table" JOIN table2 ON a = b WHERE (b OR NOT a) AND a = 12.5
|
|
||||||
(SELECT a FROM foo WHERE a > 12 OR b > 3 AND c NOT LIKE 's%' LIMIT 10);
|
|
||||||
SELECT * FROM "table" LIMIT 10 OFFSET 10;
|
|
||||||
SELECT * FROM t1 UNION SELECT * FROM t2 ORDER BY col1;
|
|
||||||
# SELECT * FROM t1 UNION (SELECT * FROM t2 UNION SELECT * FROM t3) ORDER BY col1;
|
|
||||||
# JOIN
|
|
||||||
SELECT t1.a, t1.b, t2.c FROM "table" AS t1 JOIN (SELECT * FROM foo JOIN bar ON foo.id = bar.id) t2 ON t1.a = t2.b WHERE (t1.b OR NOT t1.a) AND t2.c = 12.5
|
|
||||||
SELECT * FROM t1 JOIN t2 ON c1 = c2;
|
|
||||||
# CREATE statement
|
|
||||||
CREATE TABLE "table" FROM TBL FILE 'students.tbl'
|
|
||||||
CREATE TABLE IF NOT EXISTS "table" FROM TBL FILE 'students.tbl'
|
|
||||||
CREATE TABLE students (name TEXT, student_number INTEGER, city TEXT, grade DOUBLE)
|
|
||||||
# Multiple statements
|
|
||||||
CREATE TABLE "table" FROM TBL FILE 'students.tbl'; SELECT * FROM "table";
|
|
||||||
# INSERT
|
|
||||||
INSERT INTO test_table VALUES (1, 2, 'test');
|
|
||||||
INSERT INTO test_table (id, value, name) VALUES (1, 2, 'test');
|
|
||||||
INSERT INTO test_table SELECT * FROM students;
|
|
||||||
# DELETE
|
|
||||||
DELETE FROM students WHERE grade > 3.0
|
|
||||||
DELETE FROM students
|
|
||||||
TRUNCATE students
|
|
Loading…
Reference in New Issue