open Ast let parse query = let lexbuf = Lexing.from_string query in Parser.main Lexer.read_token lexbuf let equal_ast ast1 ast2 = ast1 = ast2 let query_testable = Alcotest.testable Ast.pp_query equal_ast let test_simple_select() = let q1 = parse "SELECT a FROM t" in let ast1 = Query(Select([Column("a")], [Table("t")])) in Alcotest.(check query_testable) "Ok" q1 ast1 let simple_select_set = [ ("Equals", `Quick, test_simple_select) ] let () = Alcotest.run "Ast tests" [ ("Simple Selects", simple_select_set) ]