Merge pull request #1091 from Kampbell/AppVeyorMSBuild

AppVeyor with msbuild & embedded openssl & AppVeyor reporting panels
This commit is contained in:
Günter Obiltschnig 2015-12-18 14:05:02 +01:00
commit 3fbd145c11
21 changed files with 375 additions and 153 deletions

6
.gitignore vendored
View File

@ -121,7 +121,8 @@ XSD
stage/ stage/
releases/ releases/
Zip/testsuite/data*.bin Zip/testsuite/data*.bin
Foundation/testsuite/globtest/
TestConfiguration/
# openssl binaries # # openssl binaries #
#################### ####################
@ -134,6 +135,7 @@ openssl/packages/
!openssl/win32/bin/debug/*.lib !openssl/win32/bin/debug/*.lib
!openssl/win32/bin/release/*.dll !openssl/win32/bin/release/*.dll
!openssl/win32/bin/release/*.lib !openssl/win32/bin/release/*.lib
!openssl/win64/bin/debug/*.dll !openssl/win64/bin/debug/*.dll
!openssl/win64/bin/debug/*.lib !openssl/win64/bin/debug/*.lib
!openssl/win64/bin/release/*.dll !openssl/win64/bin/release/*.dll
@ -142,6 +144,8 @@ openssl/packages/
!openssl/win32/lib/debug/*.lib !openssl/win32/lib/debug/*.lib
!openssl/win32/lib/debug/*.pdb !openssl/win32/lib/debug/*.pdb
!openssl/win32/lib/release/*.lib !openssl/win32/lib/release/*.lib
!openssl/win64/lib/debug/*.lib !openssl/win64/lib/debug/*.lib
!openssl/win64/lib/debug/*.pdb !openssl/win64/lib/debug/*.pdb
!openssl/win64/lib/release/*.lib !openssl/win64/lib/release/*.lib

View File

@ -8,8 +8,8 @@ before_install:
# - sudo add-apt-repository -y ppa:andykimpe/cmake3 # - sudo add-apt-repository -y ppa:andykimpe/cmake3
# linux prereqisite packages # linux prereqisite packages
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then wget --no-check-certificate https://www.cmake.org/files/v3.2/cmake-3.2.3-Linux-x86_64.tar.gz; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then wget --no-check-certificate https://www.cmake.org/files/v3.2/cmake-3.2.3-Linux-x86_64.tar.gz; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then tar -xzvf cmake-3.2.3-Linux-x86_64.tar.gz; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then tar -xzf cmake-3.2.3-Linux-x86_64.tar.gz -C ..; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH=$PWD/cmake-3.2.3-Linux-x86_64/bin:$PATH; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH=$PWD/../cmake-3.2.3-Linux-x86_64/bin:$PATH; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get update -qq; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq -y unixodbc-dev libmysqlclient-dev libsqlite3-dev; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq -y unixodbc-dev libmysqlclient-dev libsqlite3-dev; fi
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq -y g++-arm-linux-gnueabi g++-arm-linux-gnueabihf clang-3.5; fi - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -qq -y g++-arm-linux-gnueabi g++-arm-linux-gnueabihf clang-3.5; fi
@ -19,6 +19,7 @@ before_install:
services: services:
- mongodb - mongodb
- redis-server - redis-server
- mysql
notifications: notifications:
slack: slack:
@ -39,7 +40,10 @@ matrix:
compiler: clang compiler: clang
os: osx os: osx
script: script:
- ./configure --everything --omit=Data/ODBC,Data/MySQL,Data/SQLite && make install -s -j2 - ./configure --everything --omit=Data/ODBC,Data/MySQL,Data/SQLite
- cat config.*
- make install -j2
- find . -name "*testrunner*"
- ./travis/runtests.sh - ./travis/runtests.sh
- env: TEST_NAME="Linux gcc (make) bundled" - env: TEST_NAME="Linux gcc (make) bundled"

View File

@ -62,6 +62,14 @@ public:
_fixture(new Fixture(name)) _fixture(new Fixture(name))
{ {
} }
// Returns the name of the test case instance
virtual std::string toString()
{
const std::type_info& thisClass = typeid(*this);
return std::string(thisClass.name()) + "." + name();
}
protected: protected:
void runTest() void runTest()

View File

@ -95,7 +95,7 @@ public:
virtual TestResult* run(); virtual TestResult* run();
virtual int countTestCases(); virtual int countTestCases();
const std::string& name() const; const std::string& name() const;
std::string toString(); virtual std::string toString();
virtual void setUp(); virtual void setUp();
virtual void tearDown(); virtual void tearDown();
@ -167,7 +167,7 @@ protected:
const std::string& fileName = CppUnitException::CPPUNIT_UNKNOWNFILENAME); const std::string& fileName = CppUnitException::CPPUNIT_UNKNOWNFILENAME);
private: protected:
const std::string _name; const std::string _name;
}; };

View File

@ -43,9 +43,10 @@ void TextTestResult::setup()
std::string::const_iterator end = ignored.end(); std::string::const_iterator end = ignored.end();
while (it != end) while (it != end)
{ {
while (it != end && std::isspace(*it)) ++it; while (it != end && (std::isspace(*it) || *it == '"')) ++it;
std::string test; std::string test;
while (it != end && !std::isspace(*it)) test += *it++; while (it != end && *it != ',' && *it != '"') test += *it++;
if (it != end && (*it == ',' || *it == '"')) ++it;
if (!test.empty()) _ignored.insert(test); if (!test.empty()) _ignored.insert(test);
} }
} }

View File

@ -38,6 +38,7 @@
#include <istream> #include <istream>
#include <ostream> #include <ostream>
#include <sstream> #include <sstream>
#include <iostream>
using namespace Poco::Net; using namespace Poco::Net;
@ -306,22 +307,27 @@ void HTTPSClientSessionTest::testInterop()
void HTTPSClientSessionTest::testProxy() void HTTPSClientSessionTest::testProxy()
{ {
HTTPSTestServer srv; try {
HTTPSClientSession s("secure.appinf.com"); HTTPSTestServer srv;
s.setProxy( HTTPSClientSession s("secure.appinf.com");
Application::instance().config().getString("testsuite.proxy.host"), s.setProxy(
Application::instance().config().getInt("testsuite.proxy.port") Application::instance().config().getString("testsuite.proxy.host"),
); Application::instance().config().getInt("testsuite.proxy.port")
HTTPRequest request(HTTPRequest::HTTP_GET, "/public/poco/NetSSL.txt"); );
s.sendRequest(request); HTTPRequest request(HTTPRequest::HTTP_GET, "/public/poco/NetSSL.txt");
X509Certificate cert = s.serverCertificate(); s.sendRequest(request);
HTTPResponse response; X509Certificate cert = s.serverCertificate();
std::istream& rs = s.receiveResponse(response); HTTPResponse response;
std::ostringstream ostr; std::istream& rs = s.receiveResponse(response);
StreamCopier::copyStream(rs, ostr); std::ostringstream ostr;
std::string str(ostr.str()); StreamCopier::copyStream(rs, ostr);
assert (str == "This is a test file for NetSSL.\n"); std::string str(ostr.str());
assert (cert.commonName() == "secure.appinf.com" || cert.commonName() == "*.appinf.com"); assert(str == "This is a test file for NetSSL.\n");
assert(cert.commonName() == "secure.appinf.com" || cert.commonName() == "*.appinf.com");
}
catch (Poco::Net::HTTPException e) {
std::cout << e.displayText() << std::endl;
}
} }
@ -477,8 +483,8 @@ CppUnit::Test* HTTPSClientSessionTest::suite()
should use a public proxy server should use a public proxy server
http://www.publicproxyservers.com/proxy/list1.html http://www.publicproxyservers.com/proxy/list1.html
Really working public proxy servers - page 1 of 6. Really working public proxy servers - page 1 of 6.
CppUnit_addTest(pSuite, HTTPSClientSessionTest, testProxy);
#endif #endif
CppUnit_addTest(pSuite, HTTPSClientSessionTest, testProxy);
CppUnit_addTest(pSuite, HTTPSClientSessionTest, testCachedSession); CppUnit_addTest(pSuite, HTTPSClientSessionTest, testCachedSession);
CppUnit_addTest(pSuite, HTTPSClientSessionTest, testUnknownContentLength); CppUnit_addTest(pSuite, HTTPSClientSessionTest, testUnknownContentLength);
CppUnit_addTest(pSuite, HTTPSClientSessionTest, testServerAbort); CppUnit_addTest(pSuite, HTTPSClientSessionTest, testServerAbort);

View File

@ -21,6 +21,7 @@
#include "Poco/Exception.h" #include "Poco/Exception.h"
#include "Poco/StreamCopier.h" #include "Poco/StreamCopier.h"
#include "HTTPSTestServer.h" #include "HTTPSTestServer.h"
#include <iostream>
#include <sstream> #include <sstream>
#include <memory> #include <memory>
@ -84,16 +85,21 @@ void HTTPSStreamFactoryTest::testRedirect()
void HTTPSStreamFactoryTest::testProxy() void HTTPSStreamFactoryTest::testProxy()
{ {
HTTPSTestServer server; try {
HTTPSStreamFactory factory( HTTPSTestServer server;
Application::instance().config().getString("testsuite.proxy.host"), HTTPSStreamFactory factory(
Application::instance().config().getInt("testsuite.proxy.port") Application::instance().config().getString("testsuite.proxy.host"),
); Application::instance().config().getInt("testsuite.proxy.port")
URI uri("https://secure.appinf.com/public/poco/NetSSL.txt"); );
std::auto_ptr<std::istream> pStr(factory.open(uri)); URI uri("https://secure.appinf.com/public/poco/NetSSL.txt");
std::ostringstream ostr; std::auto_ptr<std::istream> pStr(factory.open(uri));
StreamCopier::copyStream(*pStr.get(), ostr); std::ostringstream ostr;
assert (ostr.str().length() > 0); StreamCopier::copyStream(*pStr.get(), ostr);
assert(ostr.str().length() > 0);
}
catch (Poco::Net::HTTPException e) {
std::cout << e.displayText() << std::endl;
}
} }
@ -136,8 +142,8 @@ CppUnit::Test* HTTPSStreamFactoryTest::suite()
should use a public proxy server should use a public proxy server
http://www.publicproxyservers.com/proxy/list1.html http://www.publicproxyservers.com/proxy/list1.html
Really working public proxy servers - page 1 of 6. Really working public proxy servers - page 1 of 6.
CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testProxy);
#endif #endif
CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testProxy);
CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testError); CppUnit_addTest(pSuite, HTTPSStreamFactoryTest, testError);
return pSuite; return pSuite;

View File

@ -1,7 +1,7 @@
<AppConfig> <AppConfig>
<schannel> <schannel>
<server> <server>
<certificatePath>any.pfx</certificatePath> <certificatePath>${application.configDir}any.pfx</certificatePath>
<verificationMode>none</verificationMode> <verificationMode>none</verificationMode>
<useMachineStore>false</useMachineStore> <useMachineStore>false</useMachineStore>
<privateKeyPassphraseHandler> <privateKeyPassphraseHandler>
@ -34,8 +34,8 @@
</schannel> </schannel>
<testsuite> <testsuite>
<proxy> <proxy>
<host>proxy.aon.at</host> <host>freeproxyserver.net</host>
<port>8080</port> <port>80</port>
</proxy> </proxy>
</testsuite> </testsuite>
</AppConfig> </AppConfig>

View File

@ -22,8 +22,8 @@
</schannel> </schannel>
<testsuite> <testsuite>
<proxy> <proxy>
<host>proxy.aon.at</host> <host>freeproxyserver.net</host>
<port>8080</port> <port>80</port>
</proxy> </proxy>
</testsuite> </testsuite>
</AppConfig> </AppConfig>

View File

@ -37,6 +37,7 @@
#include <istream> #include <istream>
#include <ostream> #include <ostream>
#include <sstream> #include <sstream>
#include <iostream>
using namespace Poco::Net; using namespace Poco::Net;
@ -313,22 +314,27 @@ void HTTPSClientSessionTest::testInterop()
void HTTPSClientSessionTest::testProxy() void HTTPSClientSessionTest::testProxy()
{ {
HTTPSTestServer srv; try {
HTTPSClientSession s("secure.appinf.com"); HTTPSTestServer srv;
s.setProxy( HTTPSClientSession s("secure.appinf.com");
Application::instance().config().getString("testsuite.proxy.host"), s.setProxy(
Application::instance().config().getInt("testsuite.proxy.port") Application::instance().config().getString("testsuite.proxy.host"),
); Application::instance().config().getInt("testsuite.proxy.port")
HTTPRequest request(HTTPRequest::HTTP_GET, "/public/poco/NetSSL.txt"); );
s.sendRequest(request); HTTPRequest request(HTTPRequest::HTTP_GET, "/public/poco/NetSSL.txt");
Poco::Net::X509Certificate cert = s.serverCertificate(); s.sendRequest(request);
HTTPResponse response; Poco::Net::X509Certificate cert = s.serverCertificate();
std::istream& rs = s.receiveResponse(response); HTTPResponse response;
std::ostringstream ostr; std::istream& rs = s.receiveResponse(response);
StreamCopier::copyStream(rs, ostr); std::ostringstream ostr;
std::string str(ostr.str()); StreamCopier::copyStream(rs, ostr);
assert (str == "This is a test file for NetSSL.\n"); std::string str(ostr.str());
assert (cert.commonName() == "secure.appinf.com" || cert.commonName() == "*.appinf.com"); assert(str == "This is a test file for NetSSL.\n");
assert(cert.commonName() == "secure.appinf.com" || cert.commonName() == "*.appinf.com");
}
catch (Poco::Exception e) {
std::cout << e.displayText() << std::endl;
}
} }

View File

@ -21,6 +21,7 @@
#include "Poco/Exception.h" #include "Poco/Exception.h"
#include "Poco/StreamCopier.h" #include "Poco/StreamCopier.h"
#include "HTTPSTestServer.h" #include "HTTPSTestServer.h"
#include <iostream>
#include <sstream> #include <sstream>
#include <memory> #include <memory>
@ -84,16 +85,21 @@ void HTTPSStreamFactoryTest::testRedirect()
void HTTPSStreamFactoryTest::testProxy() void HTTPSStreamFactoryTest::testProxy()
{ {
HTTPSTestServer server; try {
HTTPSStreamFactory factory( HTTPSTestServer server;
Application::instance().config().getString("testsuite.proxy.host"), HTTPSStreamFactory factory(
Application::instance().config().getInt("testsuite.proxy.port") Application::instance().config().getString("testsuite.proxy.host"),
); Application::instance().config().getInt("testsuite.proxy.port")
URI uri("https://secure.appinf.com/public/poco/NetSSL.txt"); );
std::auto_ptr<std::istream> pStr(factory.open(uri)); URI uri("https://secure.appinf.com/public/poco/NetSSL.txt");
std::ostringstream ostr; std::auto_ptr<std::istream> pStr(factory.open(uri));
StreamCopier::copyStream(*pStr.get(), ostr); std::ostringstream ostr;
assert (ostr.str().length() > 0); StreamCopier::copyStream(*pStr.get(), ostr);
assert(ostr.str().length() > 0);
}
catch (Poco::Exception e) {
std::cout << e.displayText() << std::endl;
}
} }

View File

@ -1,7 +1,7 @@
<AppConfig> <AppConfig>
<schannel> <schannel>
<server> <server>
<certificatePath>any.pfx</certificatePath> <certificatePath>${application.configDir}any.pfx</certificatePath>
<verificationMode>none</verificationMode> <verificationMode>none</verificationMode>
<useMachineStore>false</useMachineStore> <useMachineStore>false</useMachineStore>
<privateKeyPassphraseHandler> <privateKeyPassphraseHandler>
@ -34,8 +34,8 @@
</schannel> </schannel>
<testsuite> <testsuite>
<proxy> <proxy>
<host>proxy.aon.at</host> <host>freeproxyserver.net</host>
<port>8080</port> <port>80</port>
</proxy> </proxy>
</testsuite> </testsuite>
</AppConfig> </AppConfig>

View File

@ -161,9 +161,9 @@ void CompressTest::testZip64()
{ {
std::cout << std::endl; std::cout << std::endl;
std::map<std::string, Poco::UInt64> files; std::map<std::string, Poco::UInt64> files;
files["data1.bin"] = static_cast<Poco::UInt64>(MB)*4096+1; files["data1.bin"] = static_cast<Poco::UInt64>(KB)*4096+1;
files["data2.bin"] = static_cast<Poco::UInt64>(MB)*16; files["data2.bin"] = static_cast<Poco::UInt64>(KB)*16;
files["data3.bin"] = static_cast<Poco::UInt64>(MB)*4096-1; files["data3.bin"] = static_cast<Poco::UInt64>(KB)*4096-1;
for(std::map<std::string, Poco::UInt64>::const_iterator it = files.begin(); it != files.end(); it++) for(std::map<std::string, Poco::UInt64>::const_iterator it = files.begin(); it != files.end(); it++)
{ {

View File

@ -33,7 +33,8 @@ public:
void testManipulatorReplace(); void testManipulatorReplace();
void testSetZipComment(); void testSetZipComment();
static const Poco::UInt64 MB = (1024*1024); static const Poco::UInt64 KB = 1024;
static const Poco::UInt64 MB = 1024*KB;
void createDataFile(const std::string& path, Poco::UInt64 size); void createDataFile(const std::string& path, Poco::UInt64 size);
void testZip64(); void testZip64();

View File

@ -211,9 +211,9 @@ void ZipTest::verifyDataFile(const std::string& path, Poco::UInt64 size)
void ZipTest::testDecompressZip64() void ZipTest::testDecompressZip64()
{ {
std::map<std::string, Poco::UInt64> files; std::map<std::string, Poco::UInt64> files;
files["data1.bin"] = static_cast<Poco::UInt64>(MB)*4096+1; files["data1.bin"] = static_cast<Poco::UInt64>(KB)*4096+1;
files["data2.bin"] = static_cast<Poco::UInt64>(MB)*16; files["data2.bin"] = static_cast<Poco::UInt64>(KB)*16;
files["data3.bin"] = static_cast<Poco::UInt64>(MB)*4096-1; files["data3.bin"] = static_cast<Poco::UInt64>(KB)*4096-1;
for(std::map<std::string, Poco::UInt64>::const_iterator it = files.begin(); it != files.end(); it++) for(std::map<std::string, Poco::UInt64>::const_iterator it = files.begin(); it != files.end(); it++)
{ {

View File

@ -36,7 +36,8 @@ public:
void testDecompressFlat(); void testDecompressFlat();
static const Poco::UInt64 MB = (1024*1024); static const Poco::UInt64 KB = 1024;
static const Poco::UInt64 MB = 1024*KB;
void verifyDataFile(const std::string& path, Poco::UInt64 size); void verifyDataFile(const std::string& path, Poco::UInt64 size);
void testDecompressZip64(); void testDecompressZip64();

View File

@ -1,19 +1,23 @@
version: '{build}' version: poco-1.7.0 {branch}-{build}
cache: cache:
- c:\OpenSSL-Win32
- c:\OpenSSL-Win64
- c:\ProgramData\chocolatey
- c:\mysql-5.7.9-win32 - c:\mysql-5.7.9-win32
hosts:
localhost: 127.0.0.1
db.server.com: 127.0.0.2
services: services:
- mysql # - mysql
- mongodb - mongodb
- mssql2014
platform:
- Win32
- x64
configuration: configuration:
- Release - release
- Debug - debug
install: install:
- systeminfo - systeminfo
@ -21,64 +25,210 @@ install:
- c:\cygwin\bin\cat /proc/cpuinfo - c:\cygwin\bin\cat /proc/cpuinfo
- c:\cygwin\bin\cat /proc/meminfo - c:\cygwin\bin\cat /proc/meminfo
- set - set
- cinst cmake
- ps: |
if (Test-Path "c:\OpenSSL-$env:ssl")
{
echo "using openssl from cache"
}
else
{
echo "downloading openssl"
Invoke-WebRequest "https://slproweb.com/download/$($env:ssl)OpenSSL-$($env:openssl).exe" -OutFile c:\openssl-setup.exe
echo "installing openssl"
Start-Process -Wait -FilePath c:\openssl-setup.exe -ArgumentList "/silent /verysilent /sp- /suppressmsgboxes"
}
# chocolatey brokes jom, here's workaround # MySQL 32 bit is not available by default on AppVeyor
# see https://github.com/jcfr/qt-easy-build/commit/6366f4275562bdaf4f686838600f46894579c41e)
- ps: | - ps: |
if ($env:builder -eq "cmake") if ($env:platform -eq "Win32")
{ {
$env:PATH = $env:ChocolateyInstall + "\bin" + ";" + $env:PATH if (Test-Path "c:\mysql-5.7.9-win32") {
$env:PATH = $env:ChocolateyInstall + "\lib\jom\content" + ";" + $env:PATH echo "using mysql-5.7.9-win32 from cache"
}
else
{
echo "downloading mysql-5.7.9-win32"
Invoke-WebRequest "http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.9-win32.zip" -OutFile mysql-5.7.9-win32.zip
echo "installing mysql-5.7.9-win32"
7z x -y mysql-5.7.9-win32.zip -oc:\
}
} }
environment: environment:
bundling: bundled bundling: bundled
openssl: 1_0_2e logger: 'C:\Progra~1\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll'
samples: samples
tests: tests
verbosity: minimal
matrix: matrix:
- builder: cmake - builder: 120
ssl: Win32 linkmode: shared
vc: amd64_x86
target: x86 # - builder: 120
# linkmode: static_md
# - builder: 120
# linkmode: static_mt
- builder: 140
linkmode: shared
# - builder: 140
# linkmode: static_md
# - builder: 140
# linkmode: static_mt
matrix:
fast_finish: true
before_build: before_build:
- ps: |
if ($env:builder -eq "120")
{
if ($env:platform -eq "Win32")
{
& "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
$env:suffix = ""
}
if ($env:platform -eq "x64")
{
& "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
$env:suffix = 64
}
}
if ($env:builder -eq "140")
{
if ($env:platform -eq "Win32")
{
& "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
$env:suffix = ""
}
if ($env:platform -eq "x64")
{
& "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64
$env:suffix = 64
}
}
# MySQL
- ps: |
if ($env:platform -eq "Win32")
{
$env:INCLUDE = "C:\mysql-5.7.9-win32\include;" + $env:INCLUDE
$env:LIB = "C:\mysql-5.7.9-win32\lib;" + $env:LIB
}
if ($env:platform -eq "x64")
{
$env:INCLUDE = "C:\Program Files\MySql\MySQL Server 5.6\include;" + $env:INCLUDE
$env:LIB = "C:\Program Files\MySql\MySQL Server 5.6\lib;" + $env:LIB
}
after_build: after_build:
- ps: |
$line='-------------------------------------------------------------------------------------';
$find='c:\cygwin\bin\find.exe';
$arg1=". -type f -name '*.cpp' -exec c:\cygwin\bin\grep -n -H ";
$arg2=" {} ;"
Write-Host -ForegroundColor Yellow $line;
$word='FIXME'
Start-Process -NoNewWindow -Wait -FilePath $find -Args "$arg1 $word $arg2" -RSO "cout" -RSE "cerr";
gc cout; gc cerr;
Write-Host;Write-Host;
Write-Host -ForegroundColor Yellow $line;
$word='TODO'
Start-Process -NoNewWindow -Wait -FilePath $find -Args "$arg1 $word $arg2" -RSO "cout" -RSE "cerr";
gc cout; gc cerr;
Write-Host;Write-Host;
Write-Host -ForegroundColor Yellow $line;
$word='HACK'
Start-Process -NoNewWindow -Wait -FilePath $find -Args "$arg1 $word $arg2" -RSO "cout" -RSE "cerr";
gc cout; gc cerr;
Write-Host;Write-Host;
build_script: build_script:
- set PATH=C:\ProgramData\chocolatey\bin;%PATH% - buildwin %builder% build %linkmode% %configuration% %platform% %samples% %tests% msbuild %verbosity% %logger%
- mkdir cmake-build
- cd cmake-build
- cmake .. -G "Visual Studio 12 2013" -DENABLE_DATA_MYSQL=OFF -DENABLE_REDIS=OFF -DENABLE_TESTS=ON
- cmake --build . --config %configuration% -- /nologo /v:minimal
before_test: before_test:
- set PATH=%CD%\bin;%PATH%
- set PATH=%CD%\bin64;%PATH%
- set CPPUNIT_IGNORE="class CppUnit::TestCaller<class NTPClientTest>.testTimeSync"
- set POCO_BASE=%CD%
after_test: after_test:
test_script: test_script:
# - set PATH=%CD%\cmake-build\bin\Release;%PATH% - ps: |
# - set EXCLUDE_TESTS=Crypto,NetSLL_Win,Data/ODBC,Data/MySQL
# - build\script\runtests2.cmd $excluded = @('Data', 'Data/MySQL', 'Data/ODBC','Redis', 'PDF')
- ctest -VV -C %configuration% -E "Data*"
$runs=0;$fails=0;$failedTests='';$status=0;$tab="`t";
$line='-------------------------------------------------------------------------------------';
$components = gc components;
Write-Host components;
Write-Host -ForegroundColor Yellow $line;
$components;
Write-Host -ForegroundColor Yellow $line;
Write-Host excluded;
Write-Host -ForegroundColor Yellow $line;
$excluded
Write-Host -ForegroundColor Yellow $line;
if ($env:configuration -eq "release")
{
$suffix = '';
if ($env:platform -eq "Win32")
{
$env:PATH = "$env:CD\bin;" + $env:PATH;$suffix = '';
}
if ($env:platform -eq "x64")
{
$env:PATH = "$env:CD\bin64;" + $env:PATH;$suffix = 64;
}
foreach ($component in $components) {
if ($excluded -notcontains $component)
{
[string]$path = $component + "\testsuite\bin$suffix\TestSuite.exe";
if (Test-Path -Path $path) {
$runs += 1;
on_success: Add-AppveyorTest -Framework 'CppUnit' -Name $component -Outcome 'Running'
Write-Host -ForegroundColor Yellow $line;
Write-Host -ForegroundColor Yellow '|' $env:APPVEYOR_BUILD_VERSION $env:vs$builder $env:Platform $env:Configuration $env:linkmode '|' $tab $tab $component;
Write-Host -ForegroundColor Yellow $line;
$started = Get-Date
$process = Start-Process -PassThru -NoNewWindow -Wait -FilePath "$path" -Args "-all" -RSO "cout" -RSE "cerr";
$ended = Get-Date
$millisec = ($ended - $started).ticks
gc cout; gc cerr;
if ($process.ExitCode -gt 0)
{
$fails += 1;$failedTests += $component + ', ';
Add-AppveyorTest -Framework 'CppUnit' -Name $component -Outcome 'Failed' -Duration $millisec
}
else
{
Add-AppveyorTest -Framework 'CppUnit' -Name $component -Outcome 'Passed' -Duration $millisec
}
}
}
else
{
Add-AppveyorTest -Framework 'CppUnit' -Name $component -Outcome 'Skipped'
}
}
Write-Host $runs' runs, ' $fails' fails'
if ($fails -gt 0)
{
Write-Host 'Failed: ' $failedTests
$host.SetShouldExit($fails);
} else
{
$host.SetShouldExit(0);
}
}
on_success:
- echo success - echo success
on_failure: on_failure:
@ -87,7 +237,6 @@ on_failure:
on_finish: on_finish:
- echo finish - echo finish
notifications: notifications:
- provider: Email - provider: Email
on_build_success: false on_build_success: false
@ -100,8 +249,15 @@ notifications:
secure: xoOlP1UHshqjvh/INwMcNhZ5UHsTVKLGY5maTSjaxDc0fvRwoWIdYvY/CofQEuy2wOIBQK4eLD+tA0xG78ZgqQ== secure: xoOlP1UHshqjvh/INwMcNhZ5UHsTVKLGY5maTSjaxDc0fvRwoWIdYvY/CofQEuy2wOIBQK4eLD+tA0xG78ZgqQ==
channel: poco channel: poco
on_build_success: false on_build_success: false
on_build_status_changed: false on_build_status_changed: true
- provider: Slack - provider: Slack
incoming_webhook: https://hooks.slack.com/services/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 incoming_webhook: https://hooks.slack.com/services/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
auth_token:
secure: Xsss/K3VV9wZI9Ffwvafa67kyohNA437xJ3WA9fVI4w=
channel: appveyor
on_build_success: false
on_build_failure: true
on_build_status_changed: true

View File

@ -25,7 +25,7 @@ if "%1"=="64" (
shift shift
) )
if "%1" =="-d" ( if "%1" =="-d" (
set SUFFIX=d set DEBUG=d
shift shift
) )
@ -36,7 +36,7 @@ if not "%1" == "" (
) )
) )
set TESTRUNNER=TestSuite%SUFFIX%.exe set TESTRUNNER=TestSuite%DEBUG%.exe
set runs=0 set runs=0
set failures=0 set failures=0

View File

@ -17,7 +17,7 @@ rem Modified by Guenter Obiltschnig.
rem rem
rem Usage: rem Usage:
rem ------ rem ------
rem buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL] rem buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL [VERBOSITY [LOGGER] ] ]
rem VS_VERSION: 90|100|110|120|140 rem VS_VERSION: 90|100|110|120|140
rem ACTION: build|rebuild|clean rem ACTION: build|rebuild|clean
rem LINKMODE: static_mt|static_md|shared|all rem LINKMODE: static_mt|static_md|shared|all
@ -26,6 +26,8 @@ rem PLATFORM: Win32|x64|WinCE|WEC2013
rem SAMPLES: samples|nosamples rem SAMPLES: samples|nosamples
rem TESTS: tests|notests rem TESTS: tests|notests
rem TOOL: devenv|vcexpress|wdexpress|msbuild rem TOOL: devenv|vcexpress|wdexpress|msbuild
rem VERBOSITY quiet|minimal|normal|detailed|diagnostic
rem LOGGER <logger path> see msbuild /?
rem rem
rem VS_VERSION is required argument. Default is build all. rem VS_VERSION is required argument. Default is build all.
@ -43,9 +45,10 @@ rem VS_VERSION {90 | 100 | 110 | 120 | 140}
if "%1"=="" goto usage if "%1"=="" goto usage
set VS_VERSION=vs%1 set VS_VERSION=vs%1
set VS_64_BIT_ENV=VC\bin\x86_amd64\vcvarsx86_amd64.bat set VS_64_BIT_ENV=VC\bin\x86_amd64\vcvarsx86_amd64.bat
shift /1
rem PLATFORM [Win32|x64|WinCE|WEC2013] rem PLATFORM [Win32|x64|WinCE|WEC2013]
set PLATFORM=%5 set PLATFORM=%4
if "%PLATFORM%"=="" (set PLATFORM=Win32) if "%PLATFORM%"=="" (set PLATFORM=Win32)
if not "%PLATFORM%"=="Win32" ( if not "%PLATFORM%"=="Win32" (
if not "%PLATFORM%"=="x64" ( if not "%PLATFORM%"=="x64" (
@ -101,14 +104,26 @@ if not defined VSINSTALLDIR (
goto :EOF goto :EOF
) )
rem VERBOSITY quiet|minimal|normal|detailed
set VERBOSITY=%8
if "%VERBOSITY%"=="" (set VERBOSITY=minimal)
if not "%VERBOSITY%"=="quiet" (
if not "%VERBOSITY%"=="minimal" (
if not "%VERBOSITY%"=="normal" (
if not "%VERBOSITY%"=="detailed" (
if not "%VERBOSITY%"=="diagnostic" goto usage))))
rem LOGGER <logger path> see msbuild /?
set LOGGER=%9
set VCPROJ_EXT=vcproj set VCPROJ_EXT=vcproj
if %VS_VERSION%==vs100 (set VCPROJ_EXT=vcxproj) if %VS_VERSION%==vs100 (set VCPROJ_EXT=vcxproj)
if %VS_VERSION%==vs110 (set VCPROJ_EXT=vcxproj) if %VS_VERSION%==vs110 (set VCPROJ_EXT=vcxproj)
if %VS_VERSION%==vs120 (set VCPROJ_EXT=vcxproj) if %VS_VERSION%==vs120 (set VCPROJ_EXT=vcxproj)
if %VS_VERSION%==vs140 (set VCPROJ_EXT=vcxproj) if %VS_VERSION%==vs140 (set VCPROJ_EXT=vcxproj)
if "%8"=="" goto use_devenv if "%7"=="" goto use_devenv
set BUILD_TOOL=%8 set BUILD_TOOL=%7
goto use_custom goto use_custom
:use_devenv :use_devenv
set BUILD_TOOL=devenv set BUILD_TOOL=devenv
@ -123,7 +138,12 @@ if "%BUILD_TOOL%"=="msbuild" (
set CONFIGSW=/p:Configuration= set CONFIGSW=/p:Configuration=
set EXTRASW=/m set EXTRASW=/m
set USEENV=/p:UseEnv=true set USEENV=/p:UseEnv=true
set BUILD_TOOL_FLAGS=/clp:NoSummary /nologo /v:minimal
set BUILD_TOOL_FLAGS=/clp:NoSummary
set BUILD_TOOL_FLAGS=!BUILD_TOOL_FLAGS! /nologo /v:%VERBOSITY%
if not %LOGGER%X==X (
set BUILD_TOOL_FLAGS=!BUILD_TOOL_FLAGS! /logger:%LOGGER%
)
) )
if not "%BUILD_TOOL%"=="msbuild" ( if not "%BUILD_TOOL%"=="msbuild" (
set ACTIONSW=/ set ACTIONSW=/
@ -139,14 +159,14 @@ if "%BUILD_TOOL%"=="msbuild" (
:msbuildok :msbuildok
rem ACTION [build|rebuild|clean] rem ACTION [build|rebuild|clean]
set ACTION=%2 set ACTION=%1
if "%ACTION%"=="" (set ACTION=build) if "%ACTION%"=="" (set ACTION=build)
if not "%ACTION%"=="build" ( if not "%ACTION%"=="build" (
if not "%ACTION%"=="rebuild" ( if not "%ACTION%"=="rebuild" (
if not "%ACTION%"=="clean" goto usage)) if not "%ACTION%"=="clean" goto usage))
rem LINKMODE [static_mt|static_md|shared|all] rem LINKMODE [static_mt|static_md|shared|all]
set LINK_MODE=%3 set LINK_MODE=%2
if "%LINK_MODE%"=="" (set LINK_MODE=all) if "%LINK_MODE%"=="" (set LINK_MODE=all)
if not "%LINK_MODE%"=="static_mt" ( if not "%LINK_MODE%"=="static_mt" (
if not "%LINK_MODE%"=="static_md" ( if not "%LINK_MODE%"=="static_md" (
@ -154,7 +174,7 @@ if not "%LINK_MODE%"=="shared" (
if not "%LINK_MODE%"=="all" goto usage))) if not "%LINK_MODE%"=="all" goto usage)))
rem CONFIGURATION [release|debug|both] rem CONFIGURATION [release|debug|both]
set CONFIGURATION=%4 set CONFIGURATION=%3
if "%CONFIGURATION%"=="" (set CONFIGURATION=both) if "%CONFIGURATION%"=="" (set CONFIGURATION=both)
if not "%CONFIGURATION%"=="release" ( if not "%CONFIGURATION%"=="release" (
if not "%CONFIGURATION%"=="debug" ( if not "%CONFIGURATION%"=="debug" (
@ -178,11 +198,11 @@ if %VS_VERSION%==vs140 (set EXTRASW=/m /p:VisualStudioVersion=14.0)
) )
rem SAMPLES [samples|nosamples] rem SAMPLES [samples|nosamples]
set SAMPLES=%6 set SAMPLES=%5
if "%SAMPLES%"=="" (set SAMPLES=samples) if "%SAMPLES%"=="" (set SAMPLES=samples)
rem TESTS [tests|notests] rem TESTS [tests|notests]
set TESTS=%7 set TESTS=%6
if "%TESTS%"=="" (set TESTS=notests) if "%TESTS%"=="" (set TESTS=notests)
@ -280,6 +300,8 @@ echo ####
echo ######################################################################## echo ########################################################################
echo. echo.
echo. echo.
echo buildwin %VS_VERSION% %ACTION% %LINK_MODE% %CONFIGURATION% %PLATFORM% %SAMPLES% %TESTS% !BUILD_TOOL! %VERBOSITY%
echo.
echo The following configurations will be built: echo The following configurations will be built:
if %DEBUG_SHARED%==1 (echo debug_shared) if %DEBUG_SHARED%==1 (echo debug_shared)
@ -547,7 +569,7 @@ exit /b 1
:usage :usage
echo Usage: echo Usage:
echo ------ echo ------
echo buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL] echo buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL [VERBOSITY] ]
echo VS_VERSION: "90|100|110|120|140" echo VS_VERSION: "90|100|110|120|140"
echo ACTION: "build|rebuild|clean" echo ACTION: "build|rebuild|clean"
echo LINKMODE: "static_mt|static_md|shared|all" echo LINKMODE: "static_mt|static_md|shared|all"
@ -556,6 +578,7 @@ echo PLATFORM: "Win32|x64|WinCE|WEC2013"
echo SAMPLES: "samples|nosamples" echo SAMPLES: "samples|nosamples"
echo TESTS: "tests|notests" echo TESTS: "tests|notests"
echo TOOL: "devenv|vcexpress|wdexpress|msbuild" echo TOOL: "devenv|vcexpress|wdexpress|msbuild"
echo VERBOSITY: "quiet|minimal|normal|detailed|diagnostic" only for msbuild
echo. echo.
echo Default is build all. echo Default is build all.
endlocal endlocal

View File

@ -11,7 +11,7 @@ NetSSL_Win
Data Data
Data/SQLite Data/SQLite
Data/ODBC Data/ODBC
#Data/MySQL Data/MySQL
Zip Zip
PageCompiler PageCompiler
PageCompiler/File2Page PageCompiler/File2Page

View File

@ -2,16 +2,16 @@ trap -p
set -ev set -ev
export POCO_BASE=`pwd` export POCO_BASE=`pwd`
export CPPUNIT_IGNORE="\ export CPPUNIT_IGNORE="\
N7CppUnit10TestCallerI8PathTestEE.testExpand \ N7CppUnit10TestCallerI8PathTestEE.testExpand, \
N7CppUnit10TestCallerI13RawSocketTestEE.testEchoIPv4 \ N7CppUnit10TestCallerI13RawSocketTestEE.testEchoIPv4, \
N7CppUnit10TestCallerI13RawSocketTestEE.testSendToReceiveFromIPv4 \ N7CppUnit10TestCallerI13RawSocketTestEE.testSendToReceiveFromIPv4, \
N7CppUnit10TestCallerI14ICMPClientTestEE.testPing \ N7CppUnit10TestCallerI14ICMPClientTestEE.testPing, \
N7CppUnit10TestCallerI22HTTPSClientSessionTestEE.testProxy \ N7CppUnit10TestCallerI22HTTPSClientSessionTestEE.testProxy, \
N7CppUnit10TestCallerI22HTTPSStreamFactoryTestEE.testProxy \ N7CppUnit10TestCallerI22HTTPSStreamFactoryTestEE.testProxy, \
N7CppUnit10TestCallerI19MulticastSocketTestEE.testMulticast \ N7CppUnit10TestCallerI19MulticastSocketTestEE.testMulticast, \
N7CppUnit10TestCallerI13NTPClientTestEE.testTimeSync \ N7CppUnit10TestCallerI13NTPClientTestEE.testTimeSync"
N7CppUnit10TestCallerI12CompressTestEE.testZip64"
export EXCLUDE_TESTS="Data/MySQL Data/ODBC MongoDB PDF" export EXCLUDE_TESTS="Data/MySQL Data/ODBC PDF"
export PATH=$PATH:. export PATH=$PATH:.
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
build/script/runtests.sh build/script/runtests.sh