Subversion Repositories DevTools

Rev

Rev 4712 | Rev 4724 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4712 Rev 4723
Line 11... Line 11...
11
#............................................................................#
11
#............................................................................#
12
 
12
 
13
use strict;
13
use strict;
14
use warnings;
14
use warnings;
15
 
15
 
-
 
16
# Global variables
16
our $ScmPlatform;
17
our $ScmPlatform;
17
our $ScmNoToolsTest;
18
our $ScmNoToolsTest;
18
 
19
 
-
 
20
#   Misc variables
-
 
21
my $UseGcov = 0;
-
 
22
my $UseCppcheck = 0;
-
 
23
 
19
##############################################################################
24
##############################################################################
20
#   Configuration information
25
#   Configuration information
21
#   Cross reference from CrossCompiler Alias to actual paths
26
#   Cross reference from CrossCompiler Alias to actual paths
22
#   Structure:
27
#   Structure:
23
#   Hash reference: Array of toolchain information
28
#   Hash reference: Array of toolchain information
Line 124... Line 129...
124
#
129
#
125
my %NativeCompilers = (
130
my %NativeCompilers = (
126
    'Linux i386'       => 'linux_i386',
131
    'Linux i386'       => 'linux_i386',
127
    );
132
    );
128
 
133
 
129
my $UseGcov = 0;
-
 
130
my $UseCppcheck = 0;
-
 
131
 
-
 
132
##############################################################################
134
##############################################################################
133
#   ToolsetInit()
135
#   ToolsetInit()
134
#       Runtime initialisation
136
#       Runtime initialisation
135
#
137
#
136
##############################################################################
138
##############################################################################
Line 342... Line 344...
342
    #   When running under gcov we need to instruct GCC to perform code coverage
344
    #   When running under gcov we need to instruct GCC to perform code coverage
343
    #   generation in both C flags and LD flags
345
    #   generation in both C flags and LD flags
344
    #
346
    #
345
    if ( $UseGcov )
347
    if ( $UseGcov )
346
    {
348
    {
347
        $GCCFlags=$GCCFlags . ' -coverage';
349
        $GCCFlags .= ' -coverage';
348
        $LDFlags=$LDFlags . ' -coverage';
350
        $LDFlags  .= ' -coverage';
349
    }
351
    }
350
    
352
    
351
    #
353
    #
352
    #   When running with cppcheck we need to include it in our environment
354
    #   When running with cppcheck we need to include it in our environment
353
    #
355
    #
Line 966... Line 968...
966
 
968
 
967
        my $key;
969
        my $key;
968
        my $value;
970
        my $value;
969
        while(($key, $value) = each(%::OBJSOURCE))
971
        while(($key, $value) = each(%::OBJSOURCE))
970
        {
972
        {
971
            $io->Prt("\t" . '$(XX_PRE)rm -f $(OBJDIR)/' . $key . ".gcda\n");
973
            $io->PrtLn("\t" . '$(XX_PRE)rm -f $(OBJDIR)/' . $key . ".gcda");
972
        }
974
        }
973
        $io->Prt("\t" . '${XX_PRE}$(rm) -f ' . $final . "\n");
975
        $io->PrtLn("\t" . '${XX_PRE}$(rm) -f ' . $final);
974
        $io->Prt("\t" . '${XX_PRE}lcov'
976
        $io->PrtLn("\t" . '${XX_PRE}lcov'
975
                      . ' --capture'
977
                      . ' --capture'
976
                      . ' --initial'
978
                      . ' --initial'
977
                      . ' --base-directory ' . $::Cwd
979
                      . ' --base-directory ' . $::Cwd
978
                      . ' --directory $(OBJDIR)'
980
                      . ' --directory $(OBJDIR)'
979
                      . ' --output-file $(OBJDIR)/lcov-baseline.info' 
981
                      . ' --output-file $(OBJDIR)/lcov-baseline.info' ); 
980
                      . "\n"); 
-
 
981
    }
982
    }
982
}
983
}
983
 
984
 
984
 
985
 
985
###############################################################################
986
###############################################################################
Line 1002... Line 1003...
1002
        my $final=$finaldir . '/lcov-final.info';
1003
        my $final=$finaldir . '/lcov-final.info';
1003
        
1004
        
1004
        ToolsetGenerate( '$(OBJDIR)/lcov-capture.info' );
1005
        ToolsetGenerate( '$(OBJDIR)/lcov-capture.info' );
1005
        ToolsetGenerate( $final );
1006
        ToolsetGenerate( $final );
1006
        
1007
        
1007
        $io->Prt("\t" . '$(eval GCDA_COUNT := $(shell find $(OBJDIR) -name "*.gcda"))' . "\n");
1008
        $io->PrtLn("\t" . '$(eval GCDA_COUNT := $(shell find $(OBJDIR) -name "*.gcda"))');
1008
        
1009
        
1009
        $io->Prt("\t" . '$(XX_PRE)$(mkdir) -p ' . $finaldir . "\n");
1010
        $io->PrtLn  ("\t" . '$(XX_PRE)$(mkdir) -p ' . $finaldir);
1010
        $io->Prt("\t" . '$(XX_PRE)if [ "$(GCDA_COUNT)" = "" ]; then' . " \\\n");
1011
        $io->PrtPart("\t" . '$(XX_PRE)if [ "$(GCDA_COUNT)" = "" ]; then');
1011
        $io->Prt("\t\t" . 'if [ ! -e ' . $final . " ]; then \\\n");
1012
        $io->PrtPart("\t\t" . 'if [ ! -e ' . $final . " ]; then");
1012
        $io->Prt("\t\t\t" . '$(cp) $(OBJDIR)/lcov-baseline.info ' . $final . "; \\\n");
1013
        $io->PrtPart("\t\t\t" . '$(cp) $(OBJDIR)/lcov-baseline.info ' . $final . ';');
1013
        $io->Prt("\t\t" . 'else' . " \\\n");
1014
        $io->PrtPart("\t\t" . 'else');
1014
        $io->Prt("\t\t\t" . 'lcov'
1015
        $io->PrtPart("\t\t\t" . 'lcov'
1015
                          . ' --add-tracefile $(OBJDIR)/lcov-baseline.info'
1016
                          . ' --add-tracefile $(OBJDIR)/lcov-baseline.info'
1016
                          . ' --add-tracefile ' . $final
1017
                          . ' --add-tracefile ' . $final
1017
                          . ' --output-file $(OBJDIR)/lcov-merge.info'
1018
                          . ' --output-file $(OBJDIR)/lcov-merge.info'
1018
                          . "; \\\n"); 
1019
                          . ';'); 
1019
        $io->Prt("\t\t\t" . '$(rm) -f ' . $final . "; \\\n");
1020
        $io->PrtPart("\t\t\t" . '$(rm) -f ' . $final . ';');
1020
        $io->Prt("\t\t\t" . '$(mv) $(OBJDIR)/lcov-merge.info ' . $final . "; \\\n");
1021
        $io->PrtPart("\t\t\t" . '$(mv) $(OBJDIR)/lcov-merge.info ' . $final . ';');
1021
        $io->Prt("\t\t" . 'fi' . "; \\\n");
1022
        $io->PrtPart("\t\t" . 'fi' . ';');
1022
        $io->Prt("\t" . 'else' . " \\\n");
1023
        $io->PrtPart("\t" . 'else');
1023
        $io->Prt("\t\t" . 'lcov'
1024
        $io->PrtPart("\t\t" . 'lcov'
1024
                        . ' --capture'
1025
                        . ' --capture'
1025
                        . ' --base-directory ' . $::Cwd
1026
                        . ' --base-directory ' . $::Cwd
1026
                        . ' --directory $(OBJDIR)'
1027
                        . ' --directory $(OBJDIR)'
1027
                        . ' --output-file $(OBJDIR)/lcov-capture.info' 
1028
                        . ' --output-file $(OBJDIR)/lcov-capture.info' 
1028
                        . "; \\\n"); 
1029
                        . ';'); 
1029
        $io->Prt("\t\t" . 'if [ ! -e ' . $final . " ]; then \\\n");
1030
        $io->PrtPart("\t\t" . 'if [ ! -e ' . $final . " ]; then");
1030
        $io->Prt("\t\t\t" . 'lcov'
1031
        $io->PrtPart("\t\t\t" . 'lcov'
1031
                          . ' --add-tracefile $(OBJDIR)/lcov-baseline.info'
1032
                          . ' --add-tracefile $(OBJDIR)/lcov-baseline.info'
1032
                          . ' --add-tracefile $(OBJDIR)/lcov-capture.info'
1033
                          . ' --add-tracefile $(OBJDIR)/lcov-capture.info'
1033
                          . ' --output-file ' .  $final
1034
                          . ' --output-file ' .  $final
1034
                          . "; \\\n"); 
1035
                          . ';'); 
1035
        $io->Prt("\t\t" . 'else' . " \\\n");
1036
        $io->PrtPart("\t\t" . 'else');
1036
        $io->Prt("\t\t\t" . 'lcov'
1037
        $io->PrtPart("\t\t\t" . 'lcov'
1037
                          . ' --add-tracefile $(OBJDIR)/lcov-baseline.info'
1038
                          . ' --add-tracefile $(OBJDIR)/lcov-baseline.info'
1038
                          . ' --add-tracefile $(OBJDIR)/lcov-capture.info'
1039
                          . ' --add-tracefile $(OBJDIR)/lcov-capture.info'
1039
                          . ' --add-tracefile ' . $final
1040
                          . ' --add-tracefile ' . $final
1040
                          . ' --output-file $(OBJDIR)/lcov-merge.info'
1041
                          . ' --output-file $(OBJDIR)/lcov-merge.info'
1041
                          . "; \\\n"); 
1042
                          . ';'); 
1042
        $io->Prt("\t\t\t" . '$(rm) -f ' . $final . "; \\\n");
1043
        $io->PrtPart("\t\t\t" . '$(rm) -f ' . $final . ';');
1043
        $io->Prt("\t\t\t" . '$(mv) $(OBJDIR)/lcov-merge.info ' . $final . "; \\\n");
1044
        $io->PrtPart("\t\t\t" . '$(mv) $(OBJDIR)/lcov-merge.info ' . $final . ';');
1044
        $io->Prt("\t\t" . 'fi' . "; \\\n");
1045
        $io->PrtPart("\t\t" . 'fi' . ';');
1045
        $io->Prt("\t" . 'fi' . " \n");
1046
        $io->PrtLn  ("\t" . 'fi');
1046
    }
1047
    }
1047
}
1048
}
1048
 
1049
 
1049
 
1050
 
1050
 
-
 
1051
###############################################################################
1051
###############################################################################
1052
# Function        : ToolsetCollateTestResults
1052
# Function        : ToolsetCollateTestResults
1053
#
1053
#
1054
# Description     : 
1054
# Description     : 
1055
#
1055
#
Line 1069... Line 1069...
1069
        my $final=$finaldir . '/lcov-final.info';
1069
        my $final=$finaldir . '/lcov-final.info';
1070
        
1070
        
1071
        my $reportdir='$(PKGDIR)/lcov/$(GBE_PLATFORM)$(GBE_TYPE)';
1071
        my $reportdir='$(PKGDIR)/lcov/$(GBE_PLATFORM)$(GBE_TYPE)';
1072
        my $reportindex=$reportdir . '/index.html';
1072
        my $reportindex=$reportdir . '/index.html';
1073
        
1073
        
1074
        $io->Prt('collate_test_results: ' . $reportindex . "\n");
1074
        $io->PrtLn('collate_test_results: ' . $reportindex);
-
 
1075
        $io->Newline();
1075
        $io->Prt($reportindex . ': ' . $final . "\n");
1076
        $io->PrtLn($reportindex . ': ' . $final);
1076
        $io->Prt("\t" . 'genhtml'
1077
        $io->PrtLn("\t" . 'genhtml'
1077
                      . ' --frames'
1078
                      . ' --frames'
1078
                      . ' --show-details'
1079
                      . ' --show-details'
1079
                      . ' --output-directory ' . $reportdir
1080
                      . ' --output-directory ' . $reportdir
1080
                      . ' --legend'
1081
                      . ' --legend'
1081
                      . ' --demangle-cpp'
1082
                      . ' --demangle-cpp'
1082
                      . ' ' . $final
1083
                      . ' ' . $final);
1083
                      . "\n");
-
 
1084
    }
1084
    }
1085
}
1085
}
1086
 
1086
 
1087
 
1087
 
1088
###############################################################################
1088
###############################################################################