1 /* a file to start prob_cli with coverage/profiling info enabled (for SICStus 4.2 and later) */
2
3 %:- set_prolog_flag(compiling,debugcode). % debugcode leads to crash in coverage_data/1 in SICStus 4.6
4 % e.g., crash occurs for coverage_group_data('PROB-369'). See ticket SPRM-21038
5 :- set_prolog_flag(source_info,on).
6 :- set_prolog_flag(profiling,on).
7
8 :- use_module('../src/pathes', []). % set up library search paths
9
10 %:- include(covsrc(coverage_term_expander)).
11
12 :- use_module(probsrc(prob_cli)).
13
14 :- use_module(covsrc(coverage_tools)).
15 :- use_module(test_runner).
16 :- use_module(probsrc(tools_strings),[ajoin/2]).
17 :- use_module(probsrc(version)).
18
19 :- use_module(library(file_systems)).
20
21 % use module_info/3 because we are not in a module here
22 :- use_module(probsrc(module_information),[module_info/3]).
23 :- module_info(prob_cov_runner,group,coverage_analysis).
24 :- module_info(prob_cov_runner,description,'ProB start file with coverage tests activated. Includes predicates to execute certain tests. Used by to generate coverage reports.').
25
26 :- use_module(testcases, [set_generating_coverage/0]).
27 % compute coverage for a testcase category (see testcases.pl for categories)
28 coverage_group_data(Category) :-
29 % ids_in_category(Category,IDs),
30 % load_coverage_files(IDs,CoverageData),
31 set_generating_coverage,
32 run_silently,
33 run_tests_by_category(Category,all),
34 format('Obtaining coverage data for category ~w~n',[Category]), flush_output,
35 coverage_data(CoverageData),
36 write_coverage_data(Category,CoverageData).
37
38 % write collected coverage information to a Datafile
39 write_coverage_data(FileName,Data) :-
40 ajoin(['./temp_coverage_data/', FileName],Path),
41 format('Writing coverage data to ~w~n',[Path]), flush_output,
42 open(Path,write,Stream),
43 Out=cov(Data),
44 write_canonical(Stream,Out),
45 write(Stream,'.'),
46 close(Stream).
47