Build llcorehttp as part of a viewer dependency with unit tests. This required

boost::thread and the easiest path to that was to go with the 1.48 Boost release
in the 3P tree (eliminating a fork for a modified 1.45 packaging).  One unit test,
the most important one, is failing in test_httprequest but that can be attended
to later.  This test issues a GET to http://localhost:2/ and that is hitting the
wire but the libcurl plumbing isn't delivering the failure, only the eventual
timeout.  An unexpected change in behavior.
master
Monty Brandenberg 2012-05-07 15:16:31 -04:00
parent 438a6431e4
commit 74d59e7128
16 changed files with 68 additions and 46 deletions

View File

@ -186,9 +186,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>d98078791ce345bf6168ce9ba53ca2d7</string>
<string>0c4678ac85395f5f5294b63da1d79007</string>
<key>url</key>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/222752/arch/Darwin/installer/boost-1.45.0-darwin-20110304.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/249117/arch/Darwin/installer/boost-1.48.0-darwin-20120208.tar.bz2</string>
</map>
<key>name</key>
<string>darwin</string>
@ -198,9 +198,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>a34e7fffdb94a6a4d8a2966b1f216da3</string>
<string>848766eac189e0fa785f4a025532acd9</string>
<key>url</key>
<string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.45.0-linux-20110310.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/249117/arch/Linux/installer/boost-1.48.0-linux-20120208.tar.bz2</string>
</map>
<key>name</key>
<string>linux</string>
@ -210,9 +210,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>98be22c8833aa2bca184b9fa09fbb82b</string>
<string>cd1e60a00d40f4475ae5e0aca86f74c1</string>
<key>url</key>
<string>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/boost-1.45.0-windows-20110124.tar.bz2</string>
<string>http://automated-builds-secondlife-com.s3.amazonaws.com/hg/repo/3p-boost/rev/249117/arch/CYGWIN/installer/boost-1.48.0-windows-20120208.tar.bz2</string>
</map>
<key>name</key>
<string>windows</string>

View File

@ -12,12 +12,13 @@ if (STANDALONE)
set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
set(BOOST_SYSTEM_LIBRARY boost_system-mt)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_THREAD_LIBRARY boost_thread-mt)
else (STANDALONE)
use_prebuilt_binary(boost)
set(Boost_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include)
if (WINDOWS)
set(BOOST_VERSION 1_45)
set(BOOST_VERSION 1_48)
if(MSVC80)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized libboost_program_options-vc80-mt-${BOOST_VERSION}
@ -37,22 +38,26 @@ else (STANDALONE)
else(MSVC80)
# MSVC 10.0 config
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized libboost_program_options-vc100-mt-${BOOST_VERSION}
debug libboost_program_options-vc100-mt-gd-${BOOST_VERSION})
optimized libboost_program_options-mt
debug libboost_program_options-mt-gd)
set(BOOST_REGEX_LIBRARY
optimized libboost_regex-vc100-mt-${BOOST_VERSION}
debug libboost_regex-vc100-mt-gd-${BOOST_VERSION})
optimized libboost_regex-mt
debug libboost_regex-mt-gd)
set(BOOST_SYSTEM_LIBRARY
optimized libboost_system-vc100-mt-${BOOST_VERSION}
debug libboost_system-vc100-mt-gd-${BOOST_VERSION})
optimized libboost_system-mt
debug libboost_system-mt-gd)
set(BOOST_FILESYSTEM_LIBRARY
optimized libboost_filesystem-vc100-mt-${BOOST_VERSION}
debug libboost_filesystem-vc100-mt-gd-${BOOST_VERSION})
optimized libboost_filesystem-mt
debug libboost_filesystem-mt-gd)
set(BOOST_THREAD_LIBRARY
optimized libboost_thread-mt
debug libboost_thread-mt-gd)
endif (MSVC80)
elseif (DARWIN OR LINUX)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options)
set(BOOST_REGEX_LIBRARY boost_regex)
set(BOOST_SYSTEM_LIBRARY boost_system)
set(BOOST_FILESYSTEM_LIBRARY boost_filesystem)
set(BOOST_THREAD_LIBRARY boost_thread)
endif (WINDOWS)
endif (STANDALONE)

View File

@ -3,12 +3,14 @@
include(CARes)
include(CURL)
include(OpenSSL)
include(Boost)
set(LLCOREHTTP_INCLUDE_DIRS
${LIBS_OPEN_DIR}/llcorehttp
${CARES_INCLUDE_DIRS}
${CURL_INCLUDE_DIRS}
${OPENSSL_INCLUDE_DIRS}
${BOOST_INCLUDE_DIRS}
)
set(LLCOREHTTP_LIBRARIES llcorehttp)

View File

@ -15,10 +15,10 @@ if (WINDOWS)
optimized llprimitive
debug libcollada14dom22-d
optimized libcollada14dom22
debug libboost_filesystem-vc100-mt-gd-1_45
optimized libboost_filesystem-vc100-mt-1_45
debug libboost_system-vc100-mt-gd-1_45
optimized libboost_system-vc100-mt-1_45
debug libboost_filesystem-mt-gd
optimized libboost_filesystem-mt
debug libboost_system-mt-gd
optimized libboost_system-mt
)
else (WINDOWS)
set(LLPRIMITIVE_LIBRARIES

View File

@ -82,4 +82,8 @@
#include "llfile.h"
#include "llformat.h"
// Boost 1.45 had version 2 as the default for the filesystem library,
// 1.48 has version 3 as the default. Keep compatibility for now.
#define BOOST_FILESYSTEM_VERSION 2
#endif

View File

@ -73,23 +73,24 @@ target_link_libraries(
${CARES_LIBRARIES}
${OPENSSL_LIBRARIES}
${CRYPTO_LIBRARIES}
${BOOST_THREAD_LIBRARY}
)
# tests
#if (LL_TESTS)
if (LL_TESTS AND 0)
if (LL_TESTS)
#if (LL_TESTS AND 0)
SET(llcorehttp_TEST_SOURCE_FILES
test_allocator.cpp
tests/test_allocator.cpp
)
set(llcorehttp_TEST_HEADER_FILS
test_httpstatus.hpp
test_refcounted.hpp
test_httpoperation.hpp
test_httprequest.hpp
test_httprequestqueue.hpp
test_httpheaders.hpp
test_bufferarray.hpp
tests/test_httpstatus.hpp
tests/test_refcounted.hpp
tests/test_httpoperation.hpp
tests/test_httprequest.hpp
tests/test_httprequestqueue.hpp
tests/test_httpheaders.hpp
tests/test_bufferarray.hpp
)
set_source_files_properties(${llcorehttp_TEST_HEADER_FILES}
@ -105,13 +106,16 @@ if (LL_TESTS AND 0)
${WINDOWS_LIBRARIES}
${LLCOMMON_LIBRARIES}
${GOOGLEMOCK_LIBRARIES}
${CURL_LIBRARIES}
${OPENSSL_LIBRARIES}
${CRYPTO_LIBRARIES}
)
LL_ADD_INTEGRATION_TEST(all
LL_ADD_INTEGRATION_TEST(llcorehttp
"${llcorehttp_TEST_SOURCE_FILES}"
"${test_libs}"
)
#endif (LL_TESTS)
endif (LL_TESTS AND 0)
endif (LL_TESTS)
#endif (LL_TESTS AND 0)

View File

@ -259,6 +259,8 @@ HttpStatus HttpOpRequest::prepareForGet(HttpService * service)
HttpStatus status;
mCurlHandle = curl_easy_init();
curl_easy_setopt(mCurlHandle, CURLOPT_TIMEOUT, 30);
curl_easy_setopt(mCurlHandle, CURLOPT_CONNECTTIMEOUT, 30);
curl_easy_setopt(mCurlHandle, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(mCurlHandle, CURLOPT_NOPROGRESS, 1);
curl_easy_setopt(mCurlHandle, CURLOPT_URL, mReqURL.c_str());

View File

@ -27,10 +27,12 @@
#ifndef LLCOREINT_THREAD_H_
#define LLCOREINT_THREAD_H_
#include <boost/thread.hpp>
#include <boost/function.hpp>
#include "_refcounted.h"
namespace LLCoreInt
{

View File

@ -93,6 +93,8 @@
/// <TBD>
///
#include "linden_common.h"
#include <string>

View File

@ -1,5 +1,5 @@
/**
* @file test_all
* @file llcorehttp_test
* @brief Main test runner
*
* $LicenseInfo:firstyear=2012&license=viewerlgpl$
@ -41,6 +41,7 @@
#include "test_bufferarray.hpp"
#include "test_httprequestqueue.hpp"
#if 0
namespace tut
{
@ -62,3 +63,4 @@ int main()
curl_global_cleanup();
}
#endif

View File

@ -26,7 +26,7 @@
#ifndef TEST_LLCORE_BUFFER_ARRAY_H_
#define TEST_LLCORE_BUFFER_ARRAY_H_
#include <core-http/bufferarray.h>
#include "bufferarray.h"
#include <iostream>
@ -183,7 +183,6 @@ void BufferArrayTestObjectType::test<4>()
char str1[] = "abcdefghij";
size_t str1_len(strlen(str1));
char str2[] = "ABCDEFGHIJ";
size_t str2_len(strlen(str2));
char buffer[256];
size_t len = ba->write(str1, str1_len);

View File

@ -26,7 +26,7 @@
#ifndef TEST_LLCORE_HTTP_HEADERS_H_
#define TEST_LLCORE_HTTP_HEADERS_H_
#include <core-http/httpheaders.h>
#include "httpheaders.h"
#include <iostream>

View File

@ -27,7 +27,7 @@
#define TEST_LLCORE_HTTP_OPERATION_H_
#include "_httpoperation.h"
#include <core-http/httphandler.h>
#include "httphandler.h"
#include <iostream>

View File

@ -26,11 +26,11 @@
#ifndef TEST_LLCORE_HTTP_REQUEST_H_
#define TEST_LLCORE_HTTP_REQUEST_H_
#include <core-http/httprequest.h>
#include <core-http/httphandler.h>
#include <core-http/httpresponse.h>
#include <core-http/_httpservice.h>
#include <core-http/_httprequestqueue.h>
#include "httprequest.h"
#include "httphandler.h"
#include "httpresponse.h"
#include "_httpservice.h"
#include "_httprequestqueue.h"
#include <curl/curl.h>
@ -360,7 +360,7 @@ void HttpRequestTestObjectType::test<5>()
mStatus = HttpStatus(HttpStatus::EXT_CURL_EASY, CURLE_COULDNT_CONNECT);
HttpHandle handle = req->requestGetByteRange(HttpRequest::DEFAULT_POLICY_ID,
0.0f,
"http://localhost:2/nothing/here",
"http://127.0.0.1:2/nothing/here",
0,
0,
NULL,

View File

@ -27,7 +27,7 @@
#ifndef TEST_HTTP_STATUS_H_
#define TEST_HTTP_STATUS_H_
#include <core-http/httpcommon.h>
#include "httpcommon.h"
#include <curl/curl.h>
#include <curl/multi.h>

View File

@ -26,7 +26,7 @@
#ifndef TEST_LLCOREINT_REF_COUNTED_H_
#define TEST_LLCOREINT_REF_COUNTED_H_
#include <_refcounted.h>
#include "_refcounted.h"
#include "test_allocator.h"