3
4:- module(test, [
5 main_test/0 6 ]). 7
8:- use_module('bousi'). 9:- use_module('foreign'). 10:- use_module('flags'). 11:- use_module('evaluator'). 12
13:- use_module(test_prolog). 14:- use_module(test_bousiprolog). 15:- use_module(test_shell). 16:- use_module(test_errors). 17
18:- use_module(library(test_cover)). 19:- use_module(library(lists)). 20
22
23
24
39main_test :-
41 show_coverage(test:run_tests).
42
43
44
57run_tests :-
58 59 foreign:load_foreign_extension,
61 bplShell:set_system_predicates,
62 flags:reset_bpl_flags,
63 evaluator:load_tpl(''),
64 65 working_directory(WorkingDir, WorkingDir),
66 (concat_atom([_, '/'], WorkingDir) ->
67 concat_atom([WorkingDir, 'test'], BasePath)
68 ;
69 concat_atom([WorkingDir, '/', 'test'], BasePath)
70 ),
71 72 concat_atom([BasePath, '/', '*.tpl'], WildCard),
73 expand_file_name(WildCard, FilesToDelete),
74 maplist(rm, FilesToDelete),
75 76 run_all_shell_tests(ShellPassed, ShellFailed),
77 run_all_bousiprolog_tests(BasePath, BousiPassed, BousiFailed),
78 run_all_error_and_warning_tests(BasePath, ErrorPassed, ErrorFailed),
79 run_all_prolog_tests(BasePath, PrologPassed, PrologFailed),
80 TotalPassed is ShellPassed+BousiPassed+ErrorPassed+PrologPassed,
81 TotalFailed is ShellFailed+BousiFailed+ErrorFailed+PrologFailed,
82 83 nl,
84 write('================================'), nl,
85 write(' Test Report '), nl,
86 write('================================'), nl,
87 write('Test suites Passed Failed'), nl,
88 write('================================'), nl,
89 writef('Shell %4r %4r', [ShellPassed, ShellFailed]), nl,
90 writef('Bousi-Prolog %4r %4r', [BousiPassed, BousiFailed]), nl,
91 writef('Error/Warnings %4r %4r', [ErrorPassed, ErrorFailed]), nl,
92 writef('Prolog %4r %4r', [PrologPassed, PrologFailed]), nl,
93 write('================================'), nl,
94 writef('Total %4r %4r', [TotalPassed, TotalFailed]), nl,
95 true