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
parent
438a6431e4
commit
74d59e7128
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@
|
|||
/// <TBD>
|
||||
///
|
||||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
#define TEST_LLCORE_HTTP_OPERATION_H_
|
||||
|
||||
#include "_httpoperation.h"
|
||||
#include <core-http/httphandler.h>
|
||||
#include "httphandler.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue