From 262f161f42c4e59beec41c6f440336c38385426a Mon Sep 17 00:00:00 2001 From: Marc Coquand Date: Wed, 20 Dec 2023 20:46:00 -0600 Subject: Initial commit --- test/ann_bloop.ml | 0 test/dune | 3 ++- test/test_parser.ml | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) delete mode 100644 test/ann_bloop.ml create mode 100644 test/test_parser.ml (limited to 'test') diff --git a/test/ann_bloop.ml b/test/ann_bloop.ml deleted file mode 100644 index e69de29..0000000 diff --git a/test/dune b/test/dune index bfa3196..806bce1 100644 --- a/test/dune +++ b/test/dune @@ -1,2 +1,3 @@ (test - (name ann_bloop)) + (name test_parser) + (libraries fixgen alcotest)) diff --git a/test/test_parser.ml b/test/test_parser.ml new file mode 100644 index 0000000..bfc980c --- /dev/null +++ b/test/test_parser.ml @@ -0,0 +1,38 @@ +open Alcotest +open Fixgen + +let parse (s : string) = + let lexbuf = Lexing.from_string s in + let ast = Parser.prog Lexer.read lexbuf in + ast + + +let test_parse s () = + let ast = parse s in + check bool "Parses" (Option.is_some ast) true + + +let table_suite = + [ "Can use underscore for table names", `Quick, test_parse "user_all: name uuidv4" ] + + +let rows_suite = + [ "Can parse uuidv4", `Quick, test_parse "user: id uuidv4" + ; ( "Can parse multiple tables" + , `Quick + , test_parse "user: id uuidv4\npurchases: id uuidv4" ) + ; "Resolves conflicting names", `Quick, test_parse "purchases: name uuidv4" + ] + + +let relations_suite = + [ ( "Can reference other tables" + , `Quick + , test_parse "user: id uuidv4\npurchases: id uuidv4, user_id user.id" ) + ] + + +let () = + Alcotest.run + "Parsing" + [ "Tables", table_suite; "Rows", rows_suite; "Relations", relations_suite ] -- cgit v1.2.3