X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7a59d4ae96a5ab66d5ba0ba146aa4fc275c8ab5a..a86e0a402b91472098931c5b24eee793bacef2be:/tools/sg_unit_extractor.pl diff --git a/tools/sg_unit_extractor.pl b/tools/sg_unit_extractor.pl index e7d14228fe..f3f08cd13f 100755 --- a/tools/sg_unit_extractor.pl +++ b/tools/sg_unit_extractor.pl @@ -22,8 +22,12 @@ my (@tests); # actual content open IN, "$infile" || die "$progname: Cannot open input file '$infile': $!\n"; my $takeit=0; +my $line=0; +my $beginline=0; while () { + $line++; if (m/ifdef +SIMGRID_TEST/) { + $beginline = $line; $takeit = 1; next; } @@ -40,7 +44,7 @@ while () { } if (m/XBT_TEST_UNIT\(\w*"([^"]*)"\w*,([^,]*),(.*?)\)/) { #" - die "$progname: multiply defined test in file $infile: $1\n" + die "$progname: multiply defined unit in file $infile: $1\n" if (defined($tests{$1})); my @t=($1,$2,$3); @@ -67,11 +71,13 @@ die "$progname: no suite defined in $infile\n" my ($GENERATED)=("/*******************************/\n". "/* GENERATED FILE, DO NOT EDIT */\n". "/*******************************/\n\n"); - +$beginline+=2; open OUT,">$outfile" || die "$progname: Cannot open output file '$outfile': $!\n"; print OUT $GENERATED; +print OUT "#include \n"; print OUT "#include \"xbt.h\"\n"; print OUT $GENERATED; +print OUT "# $beginline \"$infile\" \n"; print OUT "$unit_source"; print OUT $GENERATED; close OUT || die "$progname: Cannot close output file '$outfile': $!\n"; @@ -80,16 +86,69 @@ close OUT || die "$progname: Cannot close output file '$outfile': $!\n"; if (! -e "simgrid_units_main.c") { open OUT,">simgrid_units_main.c" || die "$progname: Cannot open main file 'simgrid_units_main.c': $!\n"; print OUT $GENERATED; + print OUT "#include \n\n"; print OUT "#include \"xbt.h\"\n\n"; + print OUT "extern xbt_test_unit_t _xbt_current_unit;\n\n"; print OUT "/* SGU: BEGIN PROTOTYPES */\n"; print OUT "/* SGU: END PROTOTYPES */\n\n"; print OUT $GENERATED; - print OUT "int main(int argc, char *argv[]) {\n"; - print OUT " xbt_test_suite_t suite;\n\n"; - print OUT " /* SGU: BEGIN SUITES DECLARATION */\n"; - print OUT " /* SGU: END SUITES DECLARATION */\n\n"; - print OUT " return xbt_test_run();\n"; - print OUT "}\n"; +# print OUT "# 93 \"sg_unit_extractor.pl\"\n"; + print OUT <simgrid_units_main.c" || die "$progname: Cannot open main file 'simgr print OUT $newmain; close OUT || die "$progname: Cannot close main file 'simgrid_units_main.c': $!\n"; -0; \ No newline at end of file +0;