[SCM] Lisaac compiler branch, mildred-coverage-rebase, updated. lisaac-0.12-637-ge054115
Mildred Ki'Lya
silkensedai at online.fr
Fri Jul 30 09:15:32 UTC 2010
The following commit has been merged in the mildred-coverage-rebase branch:
commit a26987c39d5b160b3915c0f088952dc866ba6a94
Author: Mildred Ki'Lya <silkensedai at online.fr>
Date: Sat Mar 6 19:55:28 2010 +0100
Coverage generation complete
diff --git a/src/any.li b/src/any.li
index fe5f2f2..0647ec2 100644
--- a/src/any.li
+++ b/src/any.li
@@ -232,6 +232,7 @@ Section Public
- output_decl:STRING := STRING.create 60000;
- output_glob:STRING := STRING.create 10000;
- output_code:STRING := STRING.create 4_000_000;
+ - output_coverage:STRING := [ -? { is_coverage }; ] NULL;
- title txt:STRING_CONSTANT in buf:STRING <-
(
diff --git a/src/item/itm_list.li b/src/item/itm_list.li
index e5d1035..3662544 100644
--- a/src/item/itm_list.li
+++ b/src/item/itm_list.li
@@ -126,6 +126,13 @@ Section Public
lst.add_first ( // TODO: Mildred: optimize (ALIAS_ARRAY)
ITM_EXTERNAL.create position text (ALIAS_STR.get string_tmp)
);
+ output_coverage.append "CODE:";
+ position .line .append_in output_coverage; output_coverage.add_last ':';
+ position .column.append_in output_coverage; output_coverage.add_last ':';
+ last_position.line .append_in output_coverage; output_coverage.add_last ':';
+ last_position.column.append_in output_coverage; output_coverage.add_last ':';
+ output_coverage.append (position.prototype.filename);
+ output_coverage.add_last '\n';
};
);
diff --git a/src/lisaac.li b/src/lisaac.li
index 0b13110..305127b 100644
--- a/src/lisaac.li
+++ b/src/lisaac.li
@@ -509,7 +509,7 @@ Section Private
buf.append
"static void lisaac_coverage_hook(unsigned long start, unsigned long stop)\n\
\{\n\
- \ fprintf (lisaac_coverage_file, \"%d:%d:%d:%d:%s\\n\",\n\
+ \ fprintf (lisaac_coverage_file, \"COV:%d:%d:%d:%d:%s\\n\",\n\
\ start >> 17, (start >> 9) & 0xFF,\n\
\ stop >> 17, (stop >> 9) & 0xFF,\n\
\ __Lisaac_proto_file_names[start & 0x1FF]);\n\
@@ -620,6 +620,10 @@ Section Public
// Load Environment.
//
read_options;
+ is_coverage.if {
+ output_coverage := STRING.create_from_string
+ "# CODE:BEGIN_LINE:COL:END_LINE:COL:FILENAME\n";
+ };
is_verbose.if {
string_tmp.copy "\ninput file: ";
string_tmp.append input_name;
@@ -740,8 +744,9 @@ Section Public
output_code.append "{\n";
is_coverage.if {
output_code.append "lisaac_coverage_file = fopen(\"";
- output_code.append (type_input.prototype.filename);
+ output_code.append output_name;
output_code.append ".cov\", \"a\");\n";
+ output_code.append " fprintf (lisaac_coverage_file, \"# COV:BEGIN_LINE:COL:END_LINE:COL:FILENAME\\n\");\n";
};
indent.append " ";
@@ -798,7 +803,21 @@ Section Public
};
FS_MIN.write file_output with output_code size (output_code.count);
FS_MIN.close file_output;
- //
+
+ is_coverage.if {
+ string_tmp.copy output_name;
+ string_tmp.append ".cov";
+ (! FS_MIN.make_file string_tmp).if {
+ STD_ERROR.put_string "Error: File ";
+ STD_ERROR.put_string string_tmp;
+ STD_ERROR.put_string " is not created !\n";
+ die_with_code exit_failure_code;
+ };
+ f := FS_MIN.open_write string_tmp;
+ FS_MIN.write f with output_coverage size (output_coverage.count);
+ FS_MIN.close f;
+ };
+
(is_graph).if {
+ p:PROFIL;
(PROFIL_LIST.profil_list.lower).to (PROFIL_LIST.profil_list.upper) do { j:INTEGER;
--
Lisaac compiler
More information about the Lisaac-commits
mailing list