summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>2010-06-01 05:41:26 +0000
committerarseny.kapoulkine <arseny.kapoulkine@99668b35-9821-0410-8761-19e4c4f06640>2010-06-01 05:41:26 +0000
commita9d08d992378c8e73c80b949be1ec895ae597da8 (patch)
tree040fa0871cab3ed268c5f2dd149e16a749e76530
parenta248138cedaa1095907e9f9177f613a1940ae377 (diff)
tests: Improved IntelC support, added more compilers to autotest, removed old autotest script
git-svn-id: http://pugixml.googlecode.com/svn/trunk@490 99668b35-9821-0410-8761-19e4c4f06640
-rw-r--r--Jamrules.jam43
-rw-r--r--tests/autotest-local.pl2
-rw-r--r--tests/autotest-report.pl4
-rw-r--r--tests/autotest.pl141
-rw-r--r--tests/test_deprecated.cpp3
-rw-r--r--tests/test_dom_traverse.cpp3
6 files changed, 47 insertions, 149 deletions
diff --git a/Jamrules.jam b/Jamrules.jam
index bed6458..4e5c20f 100644
--- a/Jamrules.jam
+++ b/Jamrules.jam
@@ -139,15 +139,47 @@ else if ( $(toolset:I=^msvc) )
{
}
}
-else if ( $(toolset) = "ic8" )
+else if ( $(toolset:I=^ic) )
{
- msvc = "msvc7" ;
+ if ( $(toolset) = ic8 || $(toolset) = ic9 )
+ {
+ msvc = "msvc71" ;
+ }
+ else
+ {
+ msvc = "msvc8" ;
+ }
+
+ if ( $(toolset) = ic11 )
+ {
+ postfix = "\\ia32" ;
+ CCFLAGS += /fp:precise ;
+ }
+ else if ( $(toolset) = ic11_x64 )
+ {
+ postfix = "\\intel64" ;
+ CCFLAGS += /fp:precise ;
+ }
+ else
+ {
+ postfix = "" ;
+ }
+
+ if ( $(toolset:I=_x64$) )
+ {
+ msvc_postfix = "\\amd64" ;
+ LDFLAGS += /MACHINE:X64 ;
+ }
+ else
+ {
+ msvc_postfix = "" ;
+ }
CCFLAGS += /D$(defines) ;
if ( $(configuration) = "debug" )
{
- CCFLAGS += /D_DEBUG /MTd ;
+ CCFLAGS += /D_DEBUG /Od /MTd ;
}
else
{
@@ -161,7 +193,8 @@ else if ( $(toolset) = "ic8" )
actions ObjectAction
{
- "%$(toolset)_PATH%\bin\icl.exe" /W4 /WX /Wport /Qwd981,444,280,383,909,304,167,171,177,1419 /I"%$(msvc)_PATH%\include" /I"%$(msvc)_PATH%\PlatformSDK\Include" /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS)
+ set PATH=%$(msvc)_PATH%\bin
+ "%$(toolset)_PATH%\bin$(postfix)\icl.exe" /W3 /WX /Qvec_report0 /I"%$(msvc)_PATH%\include" /I"%$(msvc)_PATH%\PlatformSDK\Include" /I"%$(toolset)_PATH%\include" /c $(>) /Fo$(<) /nologo $(CCFLAGS)
}
actions LibraryAction
@@ -171,7 +204,7 @@ else if ( $(toolset) = "ic8" )
actions LinkAction
{
- "%$(msvc)_PATH%\bin\link.exe" /SUBSYSTEM:CONSOLE /NOLOGO /OUT:$(<) $(>) /LIBPATH:"%$(toolset)_PATH%\lib" /LIBPATH:"%$(msvc)_PATH%\lib" /LIBPATH:"%$(msvc)_PATH%\PlatformSDK\lib" $(LDFLAGS)
+ "%$(msvc)_PATH%\bin\link.exe" /SUBSYSTEM:CONSOLE /NOLOGO /OUT:$(<) $(>) /LIBPATH:"%$(toolset)_PATH%\lib$(postfix)" /LIBPATH:"%$(msvc)_PATH%\lib$(msvc_postfix)" /LIBPATH:"%$(msvc)_PATH%\PlatformSDK\lib$(msvc_postfix)" $(LDFLAGS)
}
actions CoverageAction
diff --git a/tests/autotest-local.pl b/tests/autotest-local.pl
index db7b26c..736c045 100644
--- a/tests/autotest-local.pl
+++ b/tests/autotest-local.pl
@@ -24,7 +24,7 @@ sub gcctoolset
}
$fast = (shift eq 'fast');
-@toolsets = ($^O =~ /MSWin/) ? (bcc, cw, dmc, ic8, mingw34, mingw44, mingw45, msvc6, msvc7, msvc71, msvc8, msvc8_x64, msvc9, msvc9_x64, msvc10, msvc10_x64) : ($^O =~ /solaris/) ? (suncc) : (&gcctoolset());
+@toolsets = ($^O =~ /MSWin/) ? (bcc, cw, dmc, ic8, ic9, ic9_x64, ic10, ic10_x64, ic11, ic11_x64, mingw34, mingw44, mingw45, mingw46_x64, msvc6, msvc7, msvc71, msvc8, msvc8_x64, msvc9, msvc9_x64, msvc10, msvc10_x64) : ($^O =~ /solaris/) ? (suncc) : (&gcctoolset());
@configurations = (debug, release);
@defines = (PUGIXML_NO_XPATH, PUGIXML_NO_EXCEPTIONS, PUGIXML_NO_STL, PUGIXML_WCHAR_MODE);
diff --git a/tests/autotest-report.pl b/tests/autotest-report.pl
index 7d9ceb7..71c840d 100644
--- a/tests/autotest-report.pl
+++ b/tests/autotest-report.pl
@@ -11,7 +11,9 @@ sub prettytoolset
return "Sun C++ 5.10" if ($toolset eq 'suncc');
return "Intel C++ Compiler $1.0" if ($toolset =~ /^ic(\d+)$/);
- return "MinGW32 (GCC $1.$2)" if ($toolset =~ /^mingw(\d)(\d)$/);
+ return "Intel C++ Compiler $1.0 x64" if ($toolset =~ /^ic(\d+)_x64$/);
+ return "MinGW (GCC $1.$2)" if ($toolset =~ /^mingw(\d)(\d)$/);
+ return "MinGW (GCC $1.$2) x64" if ($toolset =~ /^mingw(\d)(\d)_x64$/);
return "Microsoft Visual C++ 7.1" if ($toolset eq 'msvc71');
return "Microsoft Visual C++ $1.0" if ($toolset =~ /^msvc(\d+)$/);
return "Microsoft Visual C++ $1.0 x64" if ($toolset =~ /^msvc(\d+)_x64$/);
diff --git a/tests/autotest.pl b/tests/autotest.pl
deleted file mode 100644
index 44e72bf..0000000
--- a/tests/autotest.pl
+++ /dev/null
@@ -1,141 +0,0 @@
-#!/usr/bin/perl
-
-sub permute
-{
- my @defines = @_;
- my @result = ('');
-
- foreach $define (@defines)
- {
- push @result, map { length($_) == 0 ? $define : "$_,$define" } @result;
- }
-
- @result;
-}
-
-$fast = (shift eq 'fast');
-@toolsets = ($^O =~ /win/i) ? (bcc, cw, dmc, ic8, mingw34, mingw44, mingw45, msvc6, msvc7, msvc71, msvc8, msvc8_x64, msvc9, msvc9_x64, msvc10, msvc10_x64) : (gcc);
-@configurations = (debug, release);
-@defines = (PUGIXML_NO_XPATH, PUGIXML_NO_EXCEPTIONS, PUGIXML_NO_STL, PUGIXML_WCHAR_MODE);
-@definesabbr = (noxpath, noexcept, nostl, wchar);
-
-if ($fast)
-{
- @defines = (PUGIXML_WCHAR_MODE);
- @definesabbr = (wchar);
-}
-
-@definesets = permute(@defines);
-
-$fail = 0;
-
-system("echo ### autotest begin >autotest.log");
-
-%results = ();
-
-foreach $toolset (@toolsets)
-{
- foreach $configuration (@configurations)
- {
- foreach $defineset (@definesets)
- {
- $defineabbr = $defineset;
- $defineabbr =~ s/,/ /g;
-
- for ($i = 0; $i < $#definesabbr + 1; ++$i)
- {
- $defineabbr =~ s/$defines[$i]/$definesabbr[$i]/;
- }
-
- if ($defineabbr !~ /noxpath/ && $defineabbr =~ /noexcept/) { next; }
- if ($defineabbr !~ /noxpath/ && $defineabbr =~ /nostl/) { next; }
-
- print "*** testing $toolset/$configuration ($defineabbr) ... ***\n";
-
- my $cmdline = "jam toolset=$toolset configuration=$configuration defines=$defineset";
- my $coverage_pugixml = 0;
- my $coverage_pugixpath = 0;
-
- system("echo ^# $cmdline run_tests >>autotest.log");
- $result = system("$cmdline run_tests >>autotest.log");
-
- # get coverage
- if ($result == 0 && $toolset =~ /mingw|gcc/)
- {
- $coverage = `$cmdline coverage`;
-
- $coverage_pugixml = $1 if ($coverage =~ /pugixml\.cpp' executed:([^%]+)%/);
- $coverage_pugixpath = $1 if ($coverage =~ /pugixpath\.cpp' executed:([^%]+)%/);
- }
-
- # record failures
- $fail = 1 if ($result != 0);
-
- # print build report
- my $report = "";
-
- if ($result == 0)
- {
- my $align = ($coverage_pugixml > 0 || $coverage_pugixpath > 0) ? 'left' : 'center';
-
- $report .= "<td bgcolor='#00ff00' align='$align'>passed";
-
- if ($coverage_pugixml > 0 || $coverage_pugixpath > 0)
- {
- $report .= " <font size='-2'>$coverage_pugixml% / $coverage_pugixpath%</font>";
- }
-
- $report .= "</td>"
-
- }
- else
- {
- $report .= "<td bgcolor='#ff0000' align='center'>failed</td>"
- }
-
- $results{"$configuration $defineabbr"}{$toolset} = $report;
- }
-
- last if ($fast);
- }
-}
-
-system("echo ### autotest end >>autotest.log");
-
-$date = scalar localtime;
-
-$report = <<END;
-<html><head><title>pugixml autotest report</title></head><body>
-<h3>pugixml autotest report</h3>
-<table border=0 cellspacing=0 cellpadding=4>
-<tr><td></td>
-END
-
-foreach $toolset (@toolsets)
-{
- $report .= "<th>$toolset</th>";
-}
-
-$report .= "</tr>\n";
-
-foreach $k (sort {$a cmp $b} keys %results)
-{
- $report .= "<tr><td>$k</td>";
-
- foreach $toolset (@toolsets)
- {
- $report .= $results{$k}{$toolset};
- }
-
- $report .= "</tr>\n";
-}
-
-$report .= <<END;
-</table><br>
-Generated on $date
-</body></html>
-END
-
-open FILE, ">autotest.html";
-print FILE $report;
-close FILE;
diff --git a/tests/test_deprecated.cpp b/tests/test_deprecated.cpp
index 3295e82..68a3ff9 100644
--- a/tests/test_deprecated.cpp
+++ b/tests/test_deprecated.cpp
@@ -12,6 +12,9 @@
# endif
#endif
+#ifdef __INTEL_COMPILER
+# pragma warning(disable: 1478)
+#endif
#include <string.h>
diff --git a/tests/test_dom_traverse.cpp b/tests/test_dom_traverse.cpp
index 366c683..0ca554a 100644
--- a/tests/test_dom_traverse.cpp
+++ b/tests/test_dom_traverse.cpp
@@ -1,4 +1,5 @@
#define _CRT_SECURE_NO_WARNINGS
+#define _SCL_SECURE_NO_WARNINGS
#include "common.hpp"
@@ -541,7 +542,7 @@ struct test_walker: xml_tree_walker
#ifdef PUGIXML_WCHAR_MODE
wchar_t wbuf[32];
- std::copy(buf, buf + strlen(buf) + 1, wbuf);
+ std::copy(buf, buf + strlen(buf) + 1, &wbuf[0]);
return std::basic_string<pugi::char_t>(wbuf);
#else