Merge pull request #106 from arvidn/msvc-64bits

fix 64 bit builds on windows
This commit is contained in:
Arvid Norberg 2015-08-30 14:15:03 -04:00
commit 73d6bc8380
5 changed files with 97 additions and 27 deletions

View File

@ -6,21 +6,44 @@ os: Visual Studio 2015
clone_depth: 1 clone_depth: 1
environment: environment:
matrix: matrix:
- variant: test_debug
compiler: msvc-14.0
sim: 1
linkflags32: '"/LIBPATH:C:\\openssl-1.0.1p-vs2015\\lib"'
linkflags64: '"/LIBPATH:C:\\openssl-1.0.1p-vs2015\\lib64"'
include: '"c:\\openssl-1.0.1p-vs2015\\include"'
- variant: test_debug - variant: test_debug
compiler: msvc-12.0 compiler: msvc-12.0
linkflags: '"/LIBPATH:C:\\OpenSSL-Win32\\lib"' x64: 1
linkflags32: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib"'
linkflags64: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib64"'
include: '"c:\\openssl-1.0.1p-vs2013\\include"'
- variant: test_debug
compiler: msvc-12.0
linkflags32: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib"'
linkflags64: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib64"'
include: '"c:\\openssl-1.0.1p-vs2013\\include"'
- variant: test_debug - variant: test_debug
compiler: msvc-10.0 compiler: msvc-10.0
linkflags: '"/LIBPATH:C:\\OpenSSL-Win32\\lib"' linkflags32: '"/LIBPATH:C:\\openssl-1.0.1p-vs2010\\lib"'
- variant: test_debug linkflags64: '"/LIBPATH:C:\\openssl-1.0.1p-vs2010\\lib64"'
compiler: msvc-14.0 include: '"c:\\openssl-1.0.1p-vs2010\\include"'
linkflags: '"/LIBPATH:C:\\OpenSSL-Win32\\lib"'
- variant: test_barebones - variant: test_barebones
compiler: msvc-12.0 compiler: msvc-12.0
linkflags: '"/LIBPATH:C:\\OpenSSL-Win32\\lib"' linkflags32: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib"'
linkflags64: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib64"'
include: '"c:\\openssl-1.0.1p-vs2013\\include"'
- variant: test_barebones
compiler: msvc-12.0
x64: 1
linkflags32: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib"'
linkflags64: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib64"'
include: '"c:\\openssl-1.0.1p-vs2013\\include"'
- variant: test_release - variant: test_release
compiler: msvc-12.0 compiler: msvc-12.0
linkflags: '"/LIBPATH:C:\\OpenSSL-Win32\\lib"' linkflags32: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib"'
linkflags64: '"/LIBPATH:C:\\openssl-1.0.1p-vs2013\\lib64"'
include: '"c:\\openssl-1.0.1p-vs2013\\include"'
# mingw and boost.random don't like each other. Comment this back in once there # mingw and boost.random don't like each other. Comment this back in once there
# is support # is support
@ -33,11 +56,36 @@ install:
- git submodule update --init --recursive - git submodule update --init --recursive
- set ROOT_DIRECTORY=%CD% - set ROOT_DIRECTORY=%CD%
- cd %ROOT_DIRECTORY% - cd %ROOT_DIRECTORY%
- if not exist c:\OpenSSL-Win32\nul ( - if %compiler% == msvc-12.0 (
appveyor DownloadFile https://strcpy.net/packages/Win32OpenSSL-1_0_2a.exe if not exist openssl-1.0.1p-vs2013.7z (
&& Win32OpenSSL-1_0_2a.exe /silent /verysilent /sp- /suppressmsgboxes ) appveyor DownloadFile http://www.npcglib.org/~stathis/downloads/openssl-1.0.1p-vs2013.7z
- copy c:\OpenSSL-Win32\ssleay32.dll %WINDIR%\system32 )
- copy c:\OpenSSL-Win32\libeay32.dll %WINDIR%\system32 & 7z x -oc:\ -aoa openssl-1.0.1p-vs2013.7z
& copy c:\openssl-1.0.1p-vs2013\lib64\ssleay32MT.lib c:\openssl-1.0.1p-vs2013\lib64\ssleay32.lib
& copy c:\openssl-1.0.1p-vs2013\lib64\libeay32MT.lib c:\openssl-1.0.1p-vs2013\lib64\libeay32.lib
& copy c:\openssl-1.0.1p-vs2013\lib\ssleay32MT.lib c:\openssl-1.0.1p-vs2013\lib\ssleay32.lib
& copy c:\openssl-1.0.1p-vs2013\lib\libeay32MT.lib c:\openssl-1.0.1p-vs2013\lib\libeay32.lib
)
- if %compiler% == msvc-10.0 (
if not exist openssl-1.0.1p-vs2010.7z (
appveyor DownloadFile http://www.npcglib.org/~stathis/downloads/openssl-1.0.1p-vs2010.7z
)
& 7z x -oc:\ -aoa openssl-1.0.1p-vs2010.7z
& copy c:\openssl-1.0.1p-vs2010\lib64\ssleay32MT.lib c:\openssl-1.0.1p-vs2010\lib64\ssleay32.lib
& copy c:\openssl-1.0.1p-vs2010\lib64\libeay32MT.lib c:\openssl-1.0.1p-vs2010\lib64\libeay32.lib
& copy c:\openssl-1.0.1p-vs2010\lib\ssleay32MT.lib c:\openssl-1.0.1p-vs2010\lib\ssleay32.lib
& copy c:\openssl-1.0.1p-vs2010\lib\libeay32MT.lib c:\openssl-1.0.1p-vs2010\lib\libeay32.lib
)
- if %compiler% == msvc-14.0 (
if not exist openssl-1.0.1p-vs2015.7z (
appveyor DownloadFile http://www.npcglib.org/~stathis/downloads/openssl-1.0.1p-vs2015.7z
)
& 7z x -oc:\ -aoa openssl-1.0.1p-vs2015.7z
& copy c:\openssl-1.0.1p-vs2015\lib64\ssleay32MT.lib c:\openssl-1.0.1p-vs2015\lib64\ssleay32.lib
& copy c:\openssl-1.0.1p-vs2015\lib64\libeay32MT.lib c:\openssl-1.0.1p-vs2015\lib64\libeay32.lib
& copy c:\openssl-1.0.1p-vs2015\lib\ssleay32MT.lib c:\openssl-1.0.1p-vs2015\lib\ssleay32.lib
& copy c:\openssl-1.0.1p-vs2015\lib\libeay32MT.lib c:\openssl-1.0.1p-vs2015\lib\libeay32.lib
)
- cd %ROOT_DIRECTORY% - cd %ROOT_DIRECTORY%
- set BOOST_ROOT=c:\Libraries\boost - set BOOST_ROOT=c:\Libraries\boost
- set BOOST_BUILD_PATH=%BOOST_ROOT%\tools\build - set BOOST_BUILD_PATH=%BOOST_ROOT%\tools\build
@ -55,16 +103,23 @@ install:
- python --version - python --version
- echo %ROOT_DIRECTORY% - echo %ROOT_DIRECTORY%
cache: cache:
- C:\OpenSSL-Win32 - openssl-1.0.1p-vs2010.7z
- openssl-1.0.1p-vs2013.7z
- openssl-1.0.1p-vs2015.7z
build_script: build_script:
- cd %ROOT_DIRECTORY%\examples
- b2.exe --hash -j2 %compiler% variant=%variant% linkflags=%linkflags% include="C:\\OpenSSL-Win32\\include"
- cd %ROOT_DIRECTORY%\test - cd %ROOT_DIRECTORY%\test
- b2.exe --hash -j2 address-model=32 win-tests %compiler% variant=%variant% link=shared linkflags=%linkflags% include="C:\\OpenSSL-Win32\\include" - if defined x64 (
- cd %ROOT_DIRECTORY%\bindings\python b2.exe --hash -j2 address-model=64 win-tests %compiler% variant=%variant% link=shared linkflags=%linkflags64% include=%include%
- b2.exe --hash -j2 %compiler% variant=%variant% linkflags=%linkflags% include="C:\\OpenSSL-Win32\\include" stage_module ) else (
- python test.py b2.exe --hash -j2 address-model=32 win-tests %compiler% variant=%variant% link=shared linkflags=%linkflags32% include=%include%
- if %variant% == "test_debug" ( & cd %ROOT_DIRECTORY%\examples
& b2.exe --hash -j2 %compiler% variant=%variant% linkflags=%linkflags32% include=%include%
& cd %ROOT_DIRECTORY%\bindings\python
& b2.exe --hash -j2 %compiler% stage_module variant=%variant% linkflags=%linkflags32% include=%include%
& python test.py
)
- if defined sim (
cd %ROOT_DIRECTORY%\simulation cd %ROOT_DIRECTORY%\simulation
&& b2.exe --hash -j2 crypto=built-in %compiler% ) & b2.exe --hash -j2 link=shared crypto=built-in %compiler%
)

View File

@ -193,7 +193,6 @@ test-suite libtorrent :
alias win-tests : alias win-tests :
test_primitives test_primitives
test_pe_crypto test_pe_crypto
test_utp
test_remap_files test_remap_files
test_auto_unchoke test_auto_unchoke
test_torrent test_torrent

View File

@ -335,14 +335,22 @@ bool downloading_alert(libtorrent::alert const* a)
void wait_for_downloading(lt::session& ses, char const* name) void wait_for_downloading(lt::session& ses, char const* name)
{ {
time_point start = clock_type::now();
downloading_done = false; downloading_done = false;
alert const* a = 0; alert const* a = 0;
do do
{ {
print_alerts(ses, name, true, true, true, &downloading_alert, false); print_alerts(ses, name, true, true, true, &downloading_alert, false);
if (downloading_done) break; if (downloading_done) break;
a = ses.wait_for_alert(milliseconds(500)); if (total_seconds(clock_type::now() - start) > 10) break;
a = ses.wait_for_alert(seconds(2));
} while (a); } while (a);
if (!downloading_done)
{
fprintf(stderr, "did not receive a state_changed_alert indicating "
"the torrent is downloading. waited: %d ms\n"
, int(total_milliseconds(clock_type::now() - start)));
}
} }
void print_ses_rate(float time void print_ses_rate(float time

View File

@ -211,23 +211,31 @@ void test_swarm(int flags)
alert const* ret; alert const* ret;
while ((ret = ses1.wait_for_alert(seconds(2)))) while ((ret = ses1.wait_for_alert(seconds(2))))
{ {
fprintf(stderr, "wait returned: %d ms\n"
, int(total_milliseconds(clock_type::now() - start)));
std::vector<alert*> alerts; std::vector<alert*> alerts;
ses1.pop_alerts(&alerts); ses1.pop_alerts(&alerts);
for (std::vector<alert*>::iterator i = alerts.begin() for (std::vector<alert*>::iterator i = alerts.begin()
, end(alerts.end()); i != end; ++i) , end(alerts.end()); i != end; ++i)
{ {
std::cerr << ret->message() << std::endl; fprintf(stderr, "%s\n", ret->message().c_str());
} }
start = clock_type::now(); start = clock_type::now();
} }
fprintf(stderr, "loop returned: %d ms\n"
, int(total_milliseconds(clock_type::now() - start)));
// this allows shutting down the sessions in parallel // this allows shutting down the sessions in parallel
p1 = ses1.abort(); p1 = ses1.abort();
p2 = ses2.abort(); p2 = ses2.abort();
p3 = ses3.abort(); p3 = ses3.abort();
TEST_CHECK(clock_type::now() - start < seconds(3)); time_point end = clock_type::now();
TEST_CHECK(clock_type::now() - start >= seconds(2));
fprintf(stderr, "time: %d ms\n", int(total_milliseconds(end - start)));
TEST_CHECK(end - start < seconds(3));
TEST_CHECK(end - start >= seconds(2));
TEST_CHECK(!exists("tmp1_swarm/temporary")); TEST_CHECK(!exists("tmp1_swarm/temporary"));
TEST_CHECK(!exists("tmp2_swarm/temporary")); TEST_CHECK(!exists("tmp2_swarm/temporary"));