summaryrefslogtreecommitdiff
path: root/test/test_main.adb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_main.adb')
-rw-r--r--test/test_main.adb59
1 files changed, 46 insertions, 13 deletions
diff --git a/test/test_main.adb b/test/test_main.adb
index a5d5fc5..4cba5ec 100644
--- a/test/test_main.adb
+++ b/test/test_main.adb
@@ -3,19 +3,41 @@
with
Ada.Text_IO,
+ Ada.Command_Line,
+ Ada.Characters.Latin_1,
+ Unit_Tests,
Packrat,
- Ratnest.Tests;
+ Rat_Tests.Errors,
+ Rat_Tests.Tokens,
+ Rat_Tests.Lexer,
+ Rat_Tests.Util;
use
Ada.Text_IO,
- Ratnest,
- Ratnest.Tests;
+ Unit_Tests;
procedure Test_Main is
+ package Latin renames Ada.Characters.Latin_1;
+
+
+ Help_String : String :=
+ "Runs unit tests on the Packrat parser combinator library." & Latin.LF &
+ "Usage: rattest [switches]" & Latin.LF &
+ Latin.LF &
+ "Valid switches:" & Latin.LF &
+ "--help" & Latin.HT & Latin.HT & "Shows this information" & Latin.LF &
+ "--verbose" & Latin.HT & "Enables extra verbosity" & Latin.LF &
+ Latin.LF &
+ "All other command line input will be ignored.";
+
+
+ How_Verbose : Unit_Tests.Verbosity := Weak;
+
+
type My_Labels is (A, B, C);
package My_Tokens is new Packrat.Tokens (My_Labels, Character, String);
@@ -26,37 +48,48 @@ procedure Test_Main is
begin
+ for N in 1 .. Ada.Command_Line.Argument_Count loop
+ if Ada.Command_Line.Argument (N) = "--help" then
+ Put_Line (Help_String);
+ return;
+ end if;
+ end loop;
+
+ for N in 1 .. Ada.Command_Line.Argument_Count loop
+ if Ada.Command_Line.Argument (N) = "--verbose" then
+ How_Verbose := Strong;
+ exit;
+ end if;
+ end loop;
+
+
Put_Line ("Running tests for Packrat.Errors...");
- Run_Tests (Errors.Tests);
+ Run_Tests (Rat_Tests.Errors.Tests, How_Verbose);
New_Line;
Put_Line ("Displaying Error_Message debug string output example:");
Put (Packrat.Errors.Debug_String (Err));
New_Line;
Put_Line ("Running tests for Packrat.Tokens...");
- Run_Tests (Tokens.Tests);
+ Run_Tests (Rat_Tests.Tokens.Tests, How_Verbose);
New_Line;
Put_Line ("Displaying Token debug string output example:");
Put (My_Tokens.Debug_String (Tok));
New_Line;
Put_Line ("Running tests for Packrat.Lexer combinators...");
- Run_Tests (Lexer.Combinator_Tests);
+ Run_Tests (Rat_Tests.Lexer.Combinator_Tests, How_Verbose);
New_Line;
Put_Line ("Running tests for Packrat.Lexer lexing...");
- Run_Tests (Lexer.Lexer_Tests);
- New_Line;
-
- Put_Line ("Running tests for Packrat.Graphs...");
- Run_Tests (Graphs.Graph_Tests);
+ Run_Tests (Rat_Tests.Lexer.Lexer_Tests, How_Verbose);
New_Line;
Put_Line ("Running tests for Packrat.Util...");
Put_Line ("Testing set predicates...");
- Run_Tests (Util.Set_Predicate_Tests);
+ Run_Tests (Rat_Tests.Util.Set_Predicate_Tests, How_Verbose);
Put_Line ("Testing ordinary predicates...");
- Run_Tests (Util.Predicate_Tests);
+ Run_Tests (Rat_Tests.Util.Predicate_Tests, How_Verbose);
end Test_Main;