aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/test
diff options
context:
space:
mode:
authorJacek Antonelli2008-09-06 18:24:57 -0500
committerJacek Antonelli2008-09-06 18:25:07 -0500
commit798d367d54a6c6379ad355bd8345fa40e31e7fe9 (patch)
tree1921f1708cd0240648c97bc02df2c2ab5f2fc41e /linden/indra/test
parentSecond Life viewer sources 1.20.15 (diff)
downloadmeta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.zip
meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.gz
meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.bz2
meta-impy-798d367d54a6c6379ad355bd8345fa40e31e7fe9.tar.xz
Second Life viewer sources 1.21.0-RC
Diffstat (limited to 'linden/indra/test')
-rw-r--r--linden/indra/test/CMakeLists.txt153
-rw-r--r--linden/indra/test/MacTester.xcodeproj/project.pbxproj1350
-rw-r--r--linden/indra/test/assembly_tut.cpp86
-rw-r--r--linden/indra/test/common.cpp10
-rw-r--r--linden/indra/test/files.lst51
-rw-r--r--linden/indra/test/inventory.cpp24
-rw-r--r--linden/indra/test/io.cpp14
-rw-r--r--linden/indra/test/llapp_tut.cpp2
-rw-r--r--linden/indra/test/llassetuploadqueue_tut.cpp200
-rw-r--r--linden/indra/test/llblowfish_tut.cpp20
-rw-r--r--linden/indra/test/llcontrol_tut.cpp12
-rw-r--r--linden/indra/test/lldir_tut.cpp264
-rw-r--r--linden/indra/test/llerror_tut.cpp38
-rw-r--r--linden/indra/test/llhost_tut.cpp27
-rw-r--r--linden/indra/test/llhttpclient_tut.cpp6
-rw-r--r--linden/indra/test/llhttpdate_tut.cpp31
-rw-r--r--linden/indra/test/llinventoryparcel_tut.cpp12
-rw-r--r--linden/indra/test/lliohttpserver_tut.cpp21
-rw-r--r--linden/indra/test/llmessageconfig_tut.cpp8
-rw-r--r--linden/indra/test/llmessagetemplateparser_tut.cpp2
-rw-r--r--linden/indra/test/llnamevalue_tut.cpp5
-rw-r--r--linden/indra/test/llquaternion_tut.cpp8
-rw-r--r--linden/indra/test/llsd_new_tut.cpp26
-rwxr-xr-xlinden/indra/test/llsdmessagereader_tut.cpp4
-rw-r--r--linden/indra/test/llsdserialize_tut.cpp16
-rw-r--r--linden/indra/test/llsdtraits.h4
-rw-r--r--linden/indra/test/llsdutil_tut.cpp8
-rw-r--r--linden/indra/test/llstring_tut.cpp544
-rw-r--r--linden/indra/test/lltemplatemessagebuilder_tut.cpp4
-rw-r--r--linden/indra/test/lluri_tut.cpp5
-rw-r--r--linden/indra/test/llxfer_tut.cpp8
-rw-r--r--linden/indra/test/message_tut.cpp49
-rw-r--r--linden/indra/test/mock_http_client.cpp88
-rw-r--r--linden/indra/test/mock_http_client.h196
-rw-r--r--linden/indra/test/test.cpp87
-rw-r--r--linden/indra/test/test.vcproj344
-rw-r--r--linden/indra/test/test_llmanifest.py3
-rw-r--r--linden/indra/test/test_vc8.vcproj455
-rw-r--r--linden/indra/test/test_vc9.vcproj453
-rw-r--r--linden/indra/test/v3dmath_tut.cpp8
-rw-r--r--linden/indra/test/v3math_tut.cpp2
-rw-r--r--linden/indra/test/v4color_tut.cpp4
-rw-r--r--linden/indra/test/v4coloru_tut.cpp2
-rw-r--r--linden/indra/test/v4math_tut.cpp8
44 files changed, 1669 insertions, 2993 deletions
diff --git a/linden/indra/test/CMakeLists.txt b/linden/indra/test/CMakeLists.txt
new file mode 100644
index 0000000..3d085a7
--- /dev/null
+++ b/linden/indra/test/CMakeLists.txt
@@ -0,0 +1,153 @@
1# -*- cmake -*-
2
3project (test)
4
5include(00-Common)
6include(LLCommon)
7include(LLDatabase)
8include(LLInventory)
9include(LLMath)
10include(LLMessage)
11include(LLVFS)
12include(LLXML)
13include(Linking)
14
15include_directories(
16 ${LLCOMMON_INCLUDE_DIRS}
17 ${LLDATABASE_INCLUDE_DIRS}
18 ${LLMATH_INCLUDE_DIRS}
19 ${LLMESSAGE_INCLUDE_DIRS}
20 ${LLINVENTORY_INCLUDE_DIRS}
21 ${LLVFS_INCLUDE_DIRS}
22 ${LLXML_INCLUDE_DIRS}
23 )
24
25set(test_SOURCE_FILES
26 common.cpp
27 inventory.cpp
28 io.cpp
29 llapp_tut.cpp
30 llbase64_tut.cpp
31 llblowfish_tut.cpp
32 llbuffer_tut.cpp
33 lldate_tut.cpp
34 llerror_tut.cpp
35 llhost_tut.cpp
36 llhttpdate_tut.cpp
37 llhttpclient_tut.cpp
38 llhttpnode_tut.cpp
39 llinventoryparcel_tut.cpp
40 lliohttpserver_tut.cpp
41 lljoint_tut.cpp
42 llmime_tut.cpp
43 llmessageconfig_tut.cpp
44 llnamevalue_tut.cpp
45 llpermissions_tut.cpp
46 llpipeutil.cpp
47 llquaternion_tut.cpp
48 llrandom_tut.cpp
49 llsaleinfo_tut.cpp
50 llsdmessagebuilder_tut.cpp
51 llsdmessagereader_tut.cpp
52 llsd_new_tut.cpp
53 llsdserialize_tut.cpp
54 llsdutil_tut.cpp
55 llservicebuilder_tut.cpp
56 llstreamtools_tut.cpp
57 llstring_tut.cpp
58 lltemplatemessagebuilder_tut.cpp
59 lltiming_tut.cpp
60 lltut.cpp
61 lluri_tut.cpp
62 lluuidhashmap_tut.cpp
63 llxfer_tut.cpp
64 math.cpp
65 message_tut.cpp
66 reflection_tut.cpp
67 test.cpp
68 v2math_tut.cpp
69 v3color_tut.cpp
70 v3dmath_tut.cpp
71 v3math_tut.cpp
72 v4color_tut.cpp
73 v4coloru_tut.cpp
74 v4math_tut.cpp
75 )
76
77set(test_HEADER_FILES
78 CMakeLists.txt
79
80 llpipeutil.h
81 llsdtraits.h
82 lltut.h
83 )
84
85if (NOT WINDOWS)
86 list(APPEND test_SOURCE_FILES
87 llmessagetemplateparser_tut.cpp
88 )
89endif (NOT WINDOWS)
90
91set_source_files_properties(${test_HEADER_FILES}
92 PROPERTIES HEADER_FILE_ONLY TRUE)
93
94list(APPEND test_SOURC_FILES ${test_HEADER_FILES})
95
96add_executable(test ${test_SOURCE_FILES})
97
98target_link_libraries(test
99 ${LLDATABASE_LIBRARIES}
100 ${LLINVENTORY_LIBRARIES}
101 ${LLMESSAGE_LIBRARIES}
102 ${LLMATH_LIBRARIES}
103 ${LLVFS_LIBRARIES}
104 ${LLXML_LIBRARIES}
105 ${LLCOMMON_LIBRARIES}
106 ${PTHREAD_LIBRARY}
107 ${WINDOWS_LIBRARIES}
108 )
109
110if (WINDOWS)
111 set_target_properties(test
112 PROPERTIES
113 LINK_FLAGS "/NODEFAULTLIB:MSVCRT"
114 LINK_FLAGS_DEBUG "/NODEFAULTLIB:LIBCMT"
115 )
116endif (WINDOWS)
117
118get_target_property(TEST_EXE test LOCATION)
119
120add_custom_command(
121 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt
122 COMMAND ${TEST_EXE}
123 ARGS
124 --output=${CMAKE_CURRENT_BINARY_DIR}/cpp_test_results.txt
125 --touch=${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt
126 DEPENDS test
127 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
128 COMMENT "C++ unit tests"
129 )
130
131set(test_results ${CMAKE_CURRENT_BINARY_DIR}/cpp_tests_ok.txt)
132
133if (EXISTS /etc/debian_version_FAIL)
134 # The Python tests have all kinds of wacky non-portable assumptions
135 # built in.
136
137 add_custom_command(
138 OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/py_tests_ok.txt
139 COMMAND ${PYTHON_EXECUTABLE}
140 ARGS
141 ${CMAKE_CURRENT_SOURCE_DIR}/test.py
142 --mode=static
143 --output=${CMAKE_CURRENT_BINARY_DIR}/py_test_results.txt
144 --touch=${CMAKE_CURRENT_BINARY_DIR}/py_tests_ok.txt
145 DEPENDS test.py
146 WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
147 COMMENT "Python unit tests"
148 )
149
150 list(APPEND test_results ${CMAKE_CURRENT_BINARY_DIR}/py_tests_ok.txt)
151endif (EXISTS /etc/debian_version_FAIL)
152
153add_custom_target(tests_ok ALL DEPENDS ${test_results})
diff --git a/linden/indra/test/MacTester.xcodeproj/project.pbxproj b/linden/indra/test/MacTester.xcodeproj/project.pbxproj
deleted file mode 100644
index 1aad040..0000000
--- a/linden/indra/test/MacTester.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,1350 +0,0 @@
1// !$*UTF8*$!
2{
3 archiveVersion = 1;
4 classes = {
5 };
6 objectVersion = 42;
7 objects = {
8
9/* Begin PBXAggregateTarget section */
10 FD5DF9A109C0A4F5007E3F78 /* third party libs */ = {
11 isa = PBXAggregateTarget;
12 buildConfigurationList = FD5DF9A209C0A51D007E3F78 /* Build configuration list for PBXAggregateTarget "third party libs" */;
13 buildPhases = (
14 FD5DF9A009C0A4F5007E3F78 /* ShellScript */,
15 );
16 dependencies = (
17 );
18 name = "third party libs";
19 productName = "third party libs";
20 };
21/* End PBXAggregateTarget section */
22
23/* Begin PBXBuildFile section */
24 386C3F070A14C85000CF4511 /* lliosocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 386C3F050A14C85000CF4511 /* lliosocket.cpp */; };
25 386C3F080A14C85000CF4511 /* lliosocket.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 386C3F060A14C85000CF4511 /* lliosocket.h */; };
26 389CFB460A0B69C700EE2094 /* llfile.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 389CFB440A0B69C700EE2094 /* llfile.h */; };
27 389CFB470A0B69C700EE2094 /* llfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 389CFB450A0B69C700EE2094 /* llfile.cpp */; };
28 38A8BEAB0A18A2BC00814862 /* metaclass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 38A8BEAA0A18A2BC00814862 /* metaclass.cpp */; };
29 38A8BF630A18C31D00814862 /* metaproperty.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 38A8BF620A18C31D00814862 /* metaproperty.cpp */; };
30 38A8BF6A0A18C38800814862 /* reflective.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 38A8BF690A18C38800814862 /* reflective.h */; };
31 38A8BF750A18C42900814862 /* reflective.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 38A8BF740A18C42900814862 /* reflective.cpp */; };
32 91469E810B4486F20009E8F9 /* llmime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91469E7F0B4486F20009E8F9 /* llmime.cpp */; };
33 91469E820B4486F20009E8F9 /* llmime.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 91469E800B4486F20009E8F9 /* llmime.h */; };
34 91469E840B44870B0009E8F9 /* llmime_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91469E830B44870B0009E8F9 /* llmime_tut.cpp */; };
35 91469E8D0B4489420009E8F9 /* llquaternion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 91469E8B0B4489420009E8F9 /* llquaternion.cpp */; };
36 91469E8E0B4489420009E8F9 /* llquaternion.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 91469E8C0B4489420009E8F9 /* llquaternion.h */; };
37 DA306B450ACD9E8B008D9B2F /* llsdutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B430ACD9E8B008D9B2F /* llsdutil.cpp */; };
38 DA306B460ACD9E8B008D9B2F /* llstreamtools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B440ACD9E8B008D9B2F /* llstreamtools.cpp */; };
39 DA306B490ACD9EBC008D9B2F /* llapp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B480ACD9EBC008D9B2F /* llapp.cpp */; };
40 DA306B4E0ACD9EFD008D9B2F /* llcommon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B4B0ACD9EFD008D9B2F /* llcommon.cpp */; };
41 DA306B4F0ACD9EFD008D9B2F /* llerrorthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B4C0ACD9EFD008D9B2F /* llerrorthread.cpp */; };
42 DA306B500ACD9EFD008D9B2F /* llrun.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B4D0ACD9EFD008D9B2F /* llrun.cpp */; };
43 DA306B560ACD9F3F008D9B2F /* llapp_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B520ACD9F3F008D9B2F /* llapp_tut.cpp */; };
44 DA306B570ACD9F3F008D9B2F /* llhttpclient_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B530ACD9F3F008D9B2F /* llhttpclient_tut.cpp */; };
45 DA306B580ACD9F3F008D9B2F /* lltiming_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B540ACD9F3F008D9B2F /* lltiming_tut.cpp */; };
46 DA306B590ACD9F3F008D9B2F /* lluri_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B550ACD9F3F008D9B2F /* lluri_tut.cpp */; };
47 DA306B5C0ACD9F6F008D9B2F /* llhttpclient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B5B0ACD9F6F008D9B2F /* llhttpclient.cpp */; };
48 DA4D18170B567E0D0049C10F /* llformat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA4D18150B567E0D0049C10F /* llformat.cpp */; };
49 DA4D18180B567E0D0049C10F /* llformat.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DA4D18160B567E0D0049C10F /* llformat.h */; };
50 DA4D182D0B567ED70049C10F /* llerrorcontrol.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = DA4D182B0B567ED70049C10F /* llerrorcontrol.h */; };
51 DA9C40480B540D8A00DD6F44 /* lllivefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA9C40460B540D8A00DD6F44 /* lllivefile.cpp */; };
52 DAD1C4CC0AE2C78C0054574C /* stats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DAD1C4CB0AE2C78C0054574C /* stats.cpp */; };
53 FD15584D0A06BE2E00DE9AE5 /* io.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD15584C0A06BE2E00DE9AE5 /* io.cpp */; };
54 FD15585C0A06BEB000DE9AE5 /* llbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558500A06BEB000DE9AE5 /* llbuffer.cpp */; };
55 FD15585E0A06BEB000DE9AE5 /* llbufferstream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558520A06BEB000DE9AE5 /* llbufferstream.cpp */; };
56 FD1558600A06BEB000DE9AE5 /* llinstantmessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558540A06BEB000DE9AE5 /* llinstantmessage.cpp */; };
57 FD1558620A06BEB000DE9AE5 /* llioutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558560A06BEB000DE9AE5 /* llioutil.cpp */; };
58 FD1558640A06BEB000DE9AE5 /* llsdrpcclient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558580A06BEB000DE9AE5 /* llsdrpcclient.cpp */; };
59 FD1558660A06BEB000DE9AE5 /* llsdrpcserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD15585A0A06BEB000DE9AE5 /* llsdrpcserver.cpp */; };
60 FD15587F0A06BFAB00DE9AE5 /* llfiltersd2xmlrpc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558770A06BFAB00DE9AE5 /* llfiltersd2xmlrpc.cpp */; };
61 FD1558810A06BFAB00DE9AE5 /* lliohttpserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558790A06BFAB00DE9AE5 /* lliohttpserver.cpp */; };
62 FD1558830A06BFAB00DE9AE5 /* lliopipe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD15587B0A06BFAB00DE9AE5 /* lliopipe.cpp */; };
63 FD1558850A06BFAB00DE9AE5 /* llpumpio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD15587D0A06BFAB00DE9AE5 /* llpumpio.cpp */; };
64 FD15588A0A06BFE400DE9AE5 /* llchainio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558880A06BFE400DE9AE5 /* llchainio.cpp */; };
65 FD15588E0A06BFF100DE9AE5 /* llmemorystream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD15588C0A06BFF100DE9AE5 /* llmemorystream.cpp */; };
66 FD1558930A06C01400DE9AE5 /* llframetimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558910A06C01400DE9AE5 /* llframetimer.cpp */; };
67 FD1558970A06C05100DE9AE5 /* llurlrequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558950A06C05100DE9AE5 /* llurlrequest.cpp */; };
68 FD15589C0A06C08A00DE9AE5 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FD15589B0A06C08A00DE9AE5 /* libcurl.dylib */; };
69 FD1558A70A06C0D000DE9AE5 /* libxmlrpc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD1558A60A06C0D000DE9AE5 /* libxmlrpc.a */; };
70 FD1558AA0A06C14E00DE9AE5 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FD1558A90A06C14E00DE9AE5 /* libiconv.dylib */; };
71 FD155EF40A08F0B300DE9AE5 /* m3math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155EF00A08F0B300DE9AE5 /* m3math.cpp */; };
72 FD155EF60A08F0B300DE9AE5 /* m4math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155EF20A08F0B300DE9AE5 /* m4math.cpp */; };
73 FD155EFA0A08F0DE00DE9AE5 /* llstringtable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155EF80A08F0DE00DE9AE5 /* llstringtable.cpp */; };
74 FD155F030A08F36A00DE9AE5 /* llmemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F010A08F36A00DE9AE5 /* llmemory.cpp */; };
75 FD155F0B0A08F60B00DE9AE5 /* llnullcipher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F090A08F60B00DE9AE5 /* llnullcipher.cpp */; };
76 FD155F0C0A08F60B00DE9AE5 /* llxorcipher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F0A0A08F60B00DE9AE5 /* llxorcipher.cpp */; };
77 FD155F100A08F63200DE9AE5 /* message.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F0E0A08F63200DE9AE5 /* message.cpp */; };
78 FD155F1F0A08F9D200DE9AE5 /* llpacketring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F1D0A08F9D200DE9AE5 /* llpacketring.cpp */; };
79 FD155F240A08F9F600DE9AE5 /* v3math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F220A08F9F600DE9AE5 /* v3math.cpp */; };
80 FD155F2A0A08FA0F00DE9AE5 /* llpacketbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F280A08FA0F00DE9AE5 /* llpacketbuffer.cpp */; };
81 FD155F2F0A08FA9800DE9AE5 /* net.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F2D0A08FA9800DE9AE5 /* net.cpp */; };
82 FD155F340A08FAD900DE9AE5 /* llxfermanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F320A08FAD900DE9AE5 /* llxfermanager.cpp */; };
83 FD155F3F0A08FAF300DE9AE5 /* llxfer_file.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F370A08FAF300DE9AE5 /* llxfer_file.cpp */; };
84 FD155F410A08FAF300DE9AE5 /* llxfer_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F390A08FAF300DE9AE5 /* llxfer_mem.cpp */; };
85 FD155F430A08FAF300DE9AE5 /* llxfer_vfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F3B0A08FAF300DE9AE5 /* llxfer_vfile.cpp */; };
86 FD155F450A08FAF300DE9AE5 /* llxfer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F3D0A08FAF300DE9AE5 /* llxfer.cpp */; };
87 FD155F5D0A08FB5100DE9AE5 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FD155F480A08FB5100DE9AE5 /* Carbon.framework */; };
88 FD155F610A08FD5900DE9AE5 /* llfasttimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F5F0A08FD5900DE9AE5 /* llfasttimer.cpp */; };
89 FD155F670A08FD9100DE9AE5 /* message_string_table.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F660A08FD9100DE9AE5 /* message_string_table.cpp */; };
90 FD23FEB90B4340F3007A29CA /* llhttpnode_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD23FEB70B4340F3007A29CA /* llhttpnode_tut.cpp */; };
91 FD23FEBA0B4340F3007A29CA /* lluserrelations_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD23FEB80B4340F3007A29CA /* lluserrelations_tut.cpp */; };
92 FD23FEBE0B43410C007A29CA /* lluserrelations.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD23FEBC0B43410C007A29CA /* lluserrelations.cpp */; };
93 FD23FEBF0B43410C007A29CA /* lluserrelations.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FD23FEBD0B43410C007A29CA /* lluserrelations.h */; };
94 FD23FEC60B4341E2007A29CA /* llerror_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD23FEC50B4341E2007A29CA /* llerror_tut.cpp */; };
95 FD396CDD0A1D37DF005DCB1F /* lltut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD396CDC0A1D37DF005DCB1F /* lltut.cpp */; };
96 FD396D160A1DFB4B005DCB1F /* reflection_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 386A940D0A0B5F60001DE10D /* reflection_tut.cpp */; };
97 FD506A0609FEB58900E297C2 /* llsdserialize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD506A0409FEB58900E297C2 /* llsdserialize.cpp */; };
98 FD506A2509FEB79700E297C2 /* libaprutil-1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD506A2409FEB79700E297C2 /* libaprutil-1.a */; };
99 FD506A2F09FEC37900E297C2 /* llsdserialize_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD506A2D09FEC37900E297C2 /* llsdserialize_tut.cpp */; };
100 FD506AA909FFC70100E297C2 /* llsdserialize_xml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD506AA709FFC70100E297C2 /* llsdserialize_xml.cpp */; };
101 FD506ADB09FFE09700E297C2 /* libexpat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD506ADA09FFE09700E297C2 /* libexpat.a */; };
102 FD5DF87B09C0A0FB007E3F78 /* test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DF87A09C0A0FB007E3F78 /* test.cpp */; };
103 FD5DF9B609C0A571007E3F78 /* libapr-1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD5DF9B509C0A571007E3F78 /* libapr-1.a */; };
104 FD5DF9F609C0E20E007E3F78 /* llsd_new_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DF9F409C0E20E007E3F78 /* llsd_new_tut.cpp */; };
105 FD5DFA9109C1DF3E007E3F78 /* lldate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFA9009C1DF3E007E3F78 /* lldate.cpp */; };
106 FD5DFA9309C1DF4E007E3F78 /* lluuid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFA9209C1DF4E007E3F78 /* lluuid.cpp */; };
107 FD5DFA9909C1DFB7007E3F78 /* lluri.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFA9709C1DFB7007E3F78 /* lluri.cpp */; };
108 FD5DFAA609C1E01D007E3F78 /* llmd5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAA509C1E01D007E3F78 /* llmd5.cpp */; };
109 FD5DFAA909C1E056007E3F78 /* llerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAA809C1E056007E3F78 /* llerror.cpp */; };
110 FD5DFAAC09C1E09F007E3F78 /* llrand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAAB09C1E09F007E3F78 /* llrand.cpp */; };
111 FD5DFAAF09C1E101007E3F78 /* llapr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAAE09C1E101007E3F78 /* llapr.cpp */; };
112 FD5DFAB109C1E110007E3F78 /* llstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAB009C1E110007E3F78 /* llstring.cpp */; };
113 FD5DFAB309C1E11A007E3F78 /* lltimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAB209C1E11A007E3F78 /* lltimer.cpp */; };
114 FD5DFAB909C1E13A007E3F78 /* u64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAB809C1E13A007E3F78 /* u64.cpp */; };
115 FD7325940A08E7A60072A37B /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325930A08E7A60072A37B /* common.cpp */; };
116 FD7325970A08E8260072A37B /* math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325960A08E8260072A37B /* math.cpp */; };
117 FD73259A0A08E8420072A37B /* inventory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325990A08E8420072A37B /* inventory.cpp */; };
118 FD73259F0A08E8A00072A37B /* llinventory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD73259D0A08E8A00072A37B /* llinventory.cpp */; };
119 FD7325A60A08E8F00072A37B /* llxmlnode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325A40A08E8F00072A37B /* llxmlnode.cpp */; };
120 FD7325AC0A08E9330072A37B /* llpermissions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325AA0A08E9330072A37B /* llpermissions.cpp */; };
121 FD7325B00A08E95F0072A37B /* llsaleinfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325AE0A08E95F0072A37B /* llsaleinfo.cpp */; };
122 FD7325BF0A08EA220072A37B /* lldir_mac.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325B90A08EA220072A37B /* lldir_mac.cpp */; };
123 FD7325C10A08EA220072A37B /* lldir.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325BB0A08EA220072A37B /* lldir.cpp */; };
124 FD7325C30A08EA220072A37B /* llvfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325BD0A08EA220072A37B /* llvfile.cpp */; };
125 FD7325CA0A08EB370072A37B /* llcircuit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325C60A08EB370072A37B /* llcircuit.cpp */; };
126 FD7325CC0A08EB370072A37B /* message_prehash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325C80A08EB370072A37B /* message_prehash.cpp */; };
127 FD7325D30A08EB590072A37B /* llthrottle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325D10A08EB590072A37B /* llthrottle.cpp */; };
128 FD7325D80A08EB6B0072A37B /* lltransfermanager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325D60A08EB6B0072A37B /* lltransfermanager.cpp */; };
129 FD7325E30A08EB970072A37B /* lltransfersourceasset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325DB0A08EB970072A37B /* lltransfersourceasset.cpp */; };
130 FD7325E50A08EB970072A37B /* lltransfersourcefile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325DD0A08EB970072A37B /* lltransfersourcefile.cpp */; };
131 FD7325E70A08EB970072A37B /* lltransfertargetfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325DF0A08EB970072A37B /* lltransfertargetfile.cpp */; };
132 FD7325E90A08EB970072A37B /* lltransfertargetvfile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325E10A08EB970072A37B /* lltransfertargetvfile.cpp */; };
133 FD7325EE0A08EBBF0072A37B /* llqueuedthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325EC0A08EBBF0072A37B /* llqueuedthread.cpp */; };
134 FD7325F20A08EBD20072A37B /* llvfsthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325F00A08EBD20072A37B /* llvfsthread.cpp */; };
135 FD7325F70A08EBE40072A37B /* llvfs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325F50A08EBE40072A37B /* llvfs.cpp */; };
136 FD7325FC0A08EC140072A37B /* llthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325FA0A08EC140072A37B /* llthread.cpp */; };
137 FD7326030A08EC490072A37B /* llassetstorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7326010A08EC490072A37B /* llassetstorage.cpp */; };
138 FD7326070A08EC5B0072A37B /* llassettype.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7326050A08EC5B0072A37B /* llassettype.cpp */; };
139 FD73260E0A08ECB70072A37B /* lldatapacker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD73260C0A08ECB70072A37B /* lldatapacker.cpp */; };
140 FD7326130A08ECD90072A37B /* llhost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7326110A08ECD90072A37B /* llhost.cpp */; };
141 FD73261C0A08ED580072A37B /* llnamevalue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD73261A0A08ED580072A37B /* llnamevalue.cpp */; };
142 FD9996A30A1C15B10057C816 /* llsdhttpserver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD9996A10A1C15AD0057C816 /* llsdhttpserver.cpp */; };
143 FD9996D70A1CA7570057C816 /* llpipeutil.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FD9996D50A1CA7570057C816 /* llpipeutil.h */; };
144 FD9996D80A1CA7570057C816 /* llpipeutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD9996D60A1CA7570057C816 /* llpipeutil.cpp */; };
145 FDBC106B0AEEC3CA00ED2E62 /* libcurl.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = FD15589B0A06C08A00DE9AE5 /* libcurl.dylib */; };
146 FDBC106D0AEEC3DA00ED2E62 /* llsd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DF9BE09C0A68F007E3F78 /* llsd.cpp */; };
147 FDBC106F0AEEC3E900ED2E62 /* lluuid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFA9209C1DF4E007E3F78 /* lluuid.cpp */; };
148 FDBC10710AEEC3F800ED2E62 /* llsdserialize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD506A0409FEB58900E297C2 /* llsdserialize.cpp */; };
149 FDBC10720AEEC3F900ED2E62 /* llsdserialize_xml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD506AA709FFC70100E297C2 /* llsdserialize_xml.cpp */; };
150 FDBC10740AEEC40F00ED2E62 /* libexpat.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD506ADA09FFE09700E297C2 /* libexpat.a */; };
151 FDBC10750AEEC41600ED2E62 /* lldate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFA9009C1DF3E007E3F78 /* lldate.cpp */; };
152 FDBC10760AEEC41B00ED2E62 /* llmd5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAA509C1E01D007E3F78 /* llmd5.cpp */; };
153 FDBC107B0AEEC43200ED2E62 /* lluri.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFA9709C1DFB7007E3F78 /* lluri.cpp */; };
154 FDBC107E0AEEC45100ED2E62 /* lltimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAB209C1E11A007E3F78 /* lltimer.cpp */; };
155 FDBC107F0AEEC45400ED2E62 /* llfasttimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F5F0A08FD5900DE9AE5 /* llfasttimer.cpp */; };
156 FDBC10810AEEC46D00ED2E62 /* llapr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAAE09C1E101007E3F78 /* llapr.cpp */; };
157 FDBC10830AEEC47900ED2E62 /* libapr-1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD5DF9B509C0A571007E3F78 /* libapr-1.a */; };
158 FDBC10840AEEC47A00ED2E62 /* libaprutil-1.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FD506A2409FEB79700E297C2 /* libaprutil-1.a */; };
159 FDBC10860AEEC49800ED2E62 /* lliopipe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD15587B0A06BFAB00DE9AE5 /* lliopipe.cpp */; };
160 FDBC10870AEEC49D00ED2E62 /* llpumpio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD15587D0A06BFAB00DE9AE5 /* llpumpio.cpp */; };
161 FDBC10890AEEC4BA00ED2E62 /* llurlrequest.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558950A06C05100DE9AE5 /* llurlrequest.cpp */; };
162 FDBC108B0AEEC4CD00ED2E62 /* llbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558500A06BEB000DE9AE5 /* llbuffer.cpp */; };
163 FDBC108D0AEEC4E500ED2E62 /* llstring.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAB009C1E110007E3F78 /* llstring.cpp */; };
164 FDBC108F0AEEC50200ED2E62 /* u64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAB809C1E13A007E3F78 /* u64.cpp */; };
165 FDBC10900AEEC50A00ED2E62 /* llmemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD155F010A08F36A00DE9AE5 /* llmemory.cpp */; };
166 FDBC10990AEEC57D00ED2E62 /* llhttpclient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B5B0ACD9F6F008D9B2F /* llhttpclient.cpp */; };
167 FDBC109D0AEEC5EE00ED2E62 /* llbufferstream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558520A06BEB000DE9AE5 /* llbufferstream.cpp */; };
168 FDBC109F0AEEC5FB00ED2E62 /* llchainio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558880A06BFE400DE9AE5 /* llchainio.cpp */; };
169 FDBC10A10AEEC60F00ED2E62 /* llioutil.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558560A06BEB000DE9AE5 /* llioutil.cpp */; };
170 FDBC10A30AEEC62400ED2E62 /* llthread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD7325FA0A08EC140072A37B /* llthread.cpp */; };
171 FDBC10A50AEEC63200ED2E62 /* llerror.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAA809C1E056007E3F78 /* llerror.cpp */; };
172 FDBC10A70AEEC64100ED2E62 /* llrand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DFAAB09C1E09F007E3F78 /* llrand.cpp */; };
173 FDBC10A90AEEC65700ED2E62 /* llstreamtools.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA306B440ACD9E8B008D9B2F /* llstreamtools.cpp */; };
174 FDBC10AB0AEEC66100ED2E62 /* testwebclient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = DA01B2040ADE839D00A44198 /* testwebclient.cpp */; };
175 FDBC10AD0AEEC67700ED2E62 /* llframetimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD1558910A06C01400DE9AE5 /* llframetimer.cpp */; };
176 FDCB2A670AF80D9000C44EBA /* llprocessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDCB2A650AF80D9000C44EBA /* llprocessor.cpp */; };
177 FDCB2A680AF80D9000C44EBA /* llprocessor.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FDCB2A660AF80D9000C44EBA /* llprocessor.h */; };
178 FDE7AD540B7D047700C56FE0 /* llcurl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDE7AD520B7D047700C56FE0 /* llcurl.cpp */; };
179 FDEC4F5509F7EF7A007BAEEC /* llsd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FD5DF9BE09C0A68F007E3F78 /* llsd.cpp */; };
180 FDFAD4210AFFFCC30048A0C7 /* llhttpnode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDFAD41F0AFFFCC30048A0C7 /* llhttpnode.cpp */; };
181 FDFAD4220AFFFCC30048A0C7 /* llhttpnode.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = FDFAD4200AFFFCC30048A0C7 /* llhttpnode.h */; };
182 FDFBED130A1B591B0056E81E /* lliohttpserver_tut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = FDFBED120A1B591B0056E81E /* lliohttpserver_tut.cpp */; };
183/* End PBXBuildFile section */
184
185/* Begin PBXContainerItemProxy section */
186 FD5DF9A809C0A537007E3F78 /* PBXContainerItemProxy */ = {
187 isa = PBXContainerItemProxy;
188 containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
189 proxyType = 1;
190 remoteGlobalIDString = FD5DF9A109C0A4F5007E3F78;
191 remoteInfo = "third party libs";
192 };
193 FDBC10500AEEB7C300ED2E62 /* PBXContainerItemProxy */ = {
194 isa = PBXContainerItemProxy;
195 containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
196 proxyType = 1;
197 remoteGlobalIDString = FD5DF9A109C0A4F5007E3F78;
198 remoteInfo = "third party libs";
199 };
200 FDBC10510AEEB7C300ED2E62 /* PBXContainerItemProxy */ = {
201 isa = PBXContainerItemProxy;
202 containerPortal = 08FB7793FE84155DC02AAC07 /* Project object */;
203 proxyType = 1;
204 remoteGlobalIDString = FD5DF9A109C0A4F5007E3F78;
205 remoteInfo = "third party libs";
206 };
207/* End PBXContainerItemProxy section */
208
209/* Begin PBXCopyFilesBuildPhase section */
210 8DD76F690486A84900D96B5E /* CopyFiles */ = {
211 isa = PBXCopyFilesBuildPhase;
212 buildActionMask = 8;
213 dstPath = /usr/share/man/man1/;
214 dstSubfolderSpec = 0;
215 files = (
216 389CFB460A0B69C700EE2094 /* llfile.h in CopyFiles */,
217 386C3F080A14C85000CF4511 /* lliosocket.h in CopyFiles */,
218 38A8BF6A0A18C38800814862 /* reflective.h in CopyFiles */,
219 FD9996D70A1CA7570057C816 /* llpipeutil.h in CopyFiles */,
220 FDCB2A680AF80D9000C44EBA /* llprocessor.h in CopyFiles */,
221 FDFAD4220AFFFCC30048A0C7 /* llhttpnode.h in CopyFiles */,
222 91469E820B4486F20009E8F9 /* llmime.h in CopyFiles */,
223 91469E8E0B4489420009E8F9 /* llquaternion.h in CopyFiles */,
224 FD23FEBF0B43410C007A29CA /* lluserrelations.h in CopyFiles */,
225 DA4D18180B567E0D0049C10F /* llformat.h in CopyFiles */,
226 DA4D182D0B567ED70049C10F /* llerrorcontrol.h in CopyFiles */,
227 );
228 runOnlyForDeploymentPostprocessing = 1;
229 };
230/* End PBXCopyFilesBuildPhase section */
231
232/* Begin PBXFileReference section */
233 383A14F90A1A1C6700F420F7 /* metapropertyt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = metapropertyt.h; sourceTree = "<group>"; };
234 386A940D0A0B5F60001DE10D /* reflection_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = reflection_tut.cpp; sourceTree = "<group>"; };
235 386C3F050A14C85000CF4511 /* lliosocket.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lliosocket.cpp; sourceTree = "<group>"; };
236 386C3F060A14C85000CF4511 /* lliosocket.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lliosocket.h; sourceTree = "<group>"; };
237 389CFB440A0B69C700EE2094 /* llfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfile.h; sourceTree = "<group>"; };
238 389CFB450A0B69C700EE2094 /* llfile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfile.cpp; sourceTree = "<group>"; };
239 38A8BEAA0A18A2BC00814862 /* metaclass.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = metaclass.cpp; sourceTree = "<group>"; };
240 38A8BF140A18A6FF00814862 /* metaclass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = metaclass.h; sourceTree = "<group>"; };
241 38A8BF620A18C31D00814862 /* metaproperty.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = metaproperty.cpp; sourceTree = "<group>"; };
242 38A8BF690A18C38800814862 /* reflective.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = reflective.h; sourceTree = "<group>"; };
243 38A8BF740A18C42900814862 /* reflective.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = reflective.cpp; sourceTree = "<group>"; };
244 8DD76F6C0486A84900D96B5E /* MacTester */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = MacTester; sourceTree = BUILT_PRODUCTS_DIR; };
245 91469E7F0B4486F20009E8F9 /* llmime.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmime.cpp; sourceTree = "<group>"; };
246 91469E800B4486F20009E8F9 /* llmime.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmime.h; sourceTree = "<group>"; };
247 91469E830B44870B0009E8F9 /* llmime_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmime_tut.cpp; sourceTree = "<group>"; };
248 91469E8B0B4489420009E8F9 /* llquaternion.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llquaternion.cpp; sourceTree = "<group>"; };
249 91469E8C0B4489420009E8F9 /* llquaternion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llquaternion.h; sourceTree = "<group>"; };
250 DA01B1EF0ADE82C400A44198 /* TestWebClient */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TestWebClient; sourceTree = BUILT_PRODUCTS_DIR; };
251 DA01B2040ADE839D00A44198 /* testwebclient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = testwebclient.cpp; sourceTree = "<group>"; };
252 DA306B430ACD9E8B008D9B2F /* llsdutil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsdutil.cpp; sourceTree = "<group>"; };
253 DA306B440ACD9E8B008D9B2F /* llstreamtools.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llstreamtools.cpp; sourceTree = "<group>"; };
254 DA306B480ACD9EBC008D9B2F /* llapp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llapp.cpp; sourceTree = "<group>"; };
255 DA306B4B0ACD9EFD008D9B2F /* llcommon.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llcommon.cpp; sourceTree = "<group>"; };
256 DA306B4C0ACD9EFD008D9B2F /* llerrorthread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llerrorthread.cpp; sourceTree = "<group>"; };
257 DA306B4D0ACD9EFD008D9B2F /* llrun.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llrun.cpp; sourceTree = "<group>"; };
258 DA306B520ACD9F3F008D9B2F /* llapp_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llapp_tut.cpp; sourceTree = "<group>"; };
259 DA306B530ACD9F3F008D9B2F /* llhttpclient_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llhttpclient_tut.cpp; sourceTree = "<group>"; };
260 DA306B540ACD9F3F008D9B2F /* lltiming_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lltiming_tut.cpp; sourceTree = "<group>"; };
261 DA306B550ACD9F3F008D9B2F /* lluri_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lluri_tut.cpp; sourceTree = "<group>"; };
262 DA306B5B0ACD9F6F008D9B2F /* llhttpclient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llhttpclient.cpp; sourceTree = "<group>"; };
263 DA4D18150B567E0D0049C10F /* llformat.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llformat.cpp; sourceTree = "<group>"; };
264 DA4D18160B567E0D0049C10F /* llformat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llformat.h; sourceTree = "<group>"; };
265 DA4D182B0B567ED70049C10F /* llerrorcontrol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llerrorcontrol.h; sourceTree = "<group>"; };
266 DA9C40460B540D8A00DD6F44 /* lllivefile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lllivefile.cpp; sourceTree = "<group>"; };
267 DA9C40470B540D8A00DD6F44 /* lllivefile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lllivefile.h; sourceTree = "<group>"; };
268 DAD1C4CA0AE2C78C0054574C /* stats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stats.h; sourceTree = "<group>"; };
269 DAD1C4CB0AE2C78C0054574C /* stats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = stats.cpp; sourceTree = "<group>"; };
270 FD15584C0A06BE2E00DE9AE5 /* io.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = io.cpp; sourceTree = "<group>"; };
271 FD1558500A06BEB000DE9AE5 /* llbuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llbuffer.cpp; sourceTree = "<group>"; };
272 FD1558510A06BEB000DE9AE5 /* llbuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llbuffer.h; sourceTree = "<group>"; };
273 FD1558520A06BEB000DE9AE5 /* llbufferstream.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llbufferstream.cpp; sourceTree = "<group>"; };
274 FD1558530A06BEB000DE9AE5 /* llbufferstream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llbufferstream.h; sourceTree = "<group>"; };
275 FD1558540A06BEB000DE9AE5 /* llinstantmessage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llinstantmessage.cpp; sourceTree = "<group>"; };
276 FD1558550A06BEB000DE9AE5 /* llinstantmessage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llinstantmessage.h; sourceTree = "<group>"; };
277 FD1558560A06BEB000DE9AE5 /* llioutil.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llioutil.cpp; sourceTree = "<group>"; };
278 FD1558570A06BEB000DE9AE5 /* llioutil.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llioutil.h; sourceTree = "<group>"; };
279 FD1558580A06BEB000DE9AE5 /* llsdrpcclient.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsdrpcclient.cpp; sourceTree = "<group>"; };
280 FD1558590A06BEB000DE9AE5 /* llsdrpcclient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llsdrpcclient.h; sourceTree = "<group>"; };
281 FD15585A0A06BEB000DE9AE5 /* llsdrpcserver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsdrpcserver.cpp; sourceTree = "<group>"; };
282 FD15585B0A06BEB000DE9AE5 /* llsdrpcserver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llsdrpcserver.h; sourceTree = "<group>"; };
283 FD1558770A06BFAB00DE9AE5 /* llfiltersd2xmlrpc.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfiltersd2xmlrpc.cpp; sourceTree = "<group>"; };
284 FD1558780A06BFAB00DE9AE5 /* llfiltersd2xmlrpc.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfiltersd2xmlrpc.h; sourceTree = "<group>"; };
285 FD1558790A06BFAB00DE9AE5 /* lliohttpserver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lliohttpserver.cpp; sourceTree = "<group>"; };
286 FD15587A0A06BFAB00DE9AE5 /* lliohttpserver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lliohttpserver.h; sourceTree = "<group>"; };
287 FD15587B0A06BFAB00DE9AE5 /* lliopipe.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lliopipe.cpp; sourceTree = "<group>"; };
288 FD15587C0A06BFAB00DE9AE5 /* lliopipe.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lliopipe.h; sourceTree = "<group>"; };
289 FD15587D0A06BFAB00DE9AE5 /* llpumpio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpumpio.cpp; sourceTree = "<group>"; };
290 FD15587E0A06BFAB00DE9AE5 /* llpumpio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpumpio.h; sourceTree = "<group>"; };
291 FD1558880A06BFE400DE9AE5 /* llchainio.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llchainio.cpp; sourceTree = "<group>"; };
292 FD1558890A06BFE400DE9AE5 /* llchainio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llchainio.h; sourceTree = "<group>"; };
293 FD15588C0A06BFF100DE9AE5 /* llmemorystream.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmemorystream.cpp; sourceTree = "<group>"; };
294 FD15588D0A06BFF100DE9AE5 /* llmemorystream.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmemorystream.h; sourceTree = "<group>"; };
295 FD1558910A06C01400DE9AE5 /* llframetimer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llframetimer.cpp; sourceTree = "<group>"; };
296 FD1558920A06C01400DE9AE5 /* llframetimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llframetimer.h; sourceTree = "<group>"; };
297 FD1558950A06C05100DE9AE5 /* llurlrequest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llurlrequest.cpp; sourceTree = "<group>"; };
298 FD1558960A06C05100DE9AE5 /* llurlrequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llurlrequest.h; sourceTree = "<group>"; };
299 FD15589B0A06C08A00DE9AE5 /* libcurl.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libcurl.dylib; path = /usr/lib/libcurl.dylib; sourceTree = "<absolute>"; };
300 FD1558A60A06C0D000DE9AE5 /* libxmlrpc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxmlrpc.a; path = build/Debug/libxmlrpc.a; sourceTree = "<group>"; };
301 FD1558A90A06C14E00DE9AE5 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = /usr/lib/libiconv.dylib; sourceTree = "<absolute>"; };
302 FD155EF00A08F0B300DE9AE5 /* m3math.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = m3math.cpp; sourceTree = "<group>"; };
303 FD155EF10A08F0B300DE9AE5 /* m3math.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = m3math.h; sourceTree = "<group>"; };
304 FD155EF20A08F0B300DE9AE5 /* m4math.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = m4math.cpp; sourceTree = "<group>"; };
305 FD155EF30A08F0B300DE9AE5 /* m4math.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = m4math.h; sourceTree = "<group>"; };
306 FD155EF80A08F0DE00DE9AE5 /* llstringtable.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llstringtable.cpp; sourceTree = "<group>"; };
307 FD155EF90A08F0DE00DE9AE5 /* llstringtable.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llstringtable.h; sourceTree = "<group>"; };
308 FD155F010A08F36A00DE9AE5 /* llmemory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmemory.cpp; sourceTree = "<group>"; };
309 FD155F020A08F36A00DE9AE5 /* llmemory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmemory.h; sourceTree = "<group>"; };
310 FD155F050A08F37900DE9AE5 /* llcrypto.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llcrypto.h; sourceTree = "<group>"; };
311 FD155F090A08F60B00DE9AE5 /* llnullcipher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llnullcipher.cpp; sourceTree = "<group>"; };
312 FD155F0A0A08F60B00DE9AE5 /* llxorcipher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxorcipher.cpp; sourceTree = "<group>"; };
313 FD155F0E0A08F63200DE9AE5 /* message.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = message.cpp; sourceTree = "<group>"; };
314 FD155F1D0A08F9D200DE9AE5 /* llpacketring.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpacketring.cpp; sourceTree = "<group>"; };
315 FD155F1E0A08F9D200DE9AE5 /* llpacketring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpacketring.h; sourceTree = "<group>"; };
316 FD155F220A08F9F600DE9AE5 /* v3math.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = v3math.cpp; sourceTree = "<group>"; };
317 FD155F230A08F9F600DE9AE5 /* v3math.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = v3math.h; sourceTree = "<group>"; };
318 FD155F280A08FA0F00DE9AE5 /* llpacketbuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpacketbuffer.cpp; sourceTree = "<group>"; };
319 FD155F290A08FA0F00DE9AE5 /* llpacketbuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpacketbuffer.h; sourceTree = "<group>"; };
320 FD155F2D0A08FA9800DE9AE5 /* net.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = net.cpp; sourceTree = "<group>"; };
321 FD155F2E0A08FA9800DE9AE5 /* net.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = net.h; sourceTree = "<group>"; };
322 FD155F320A08FAD900DE9AE5 /* llxfermanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxfermanager.cpp; sourceTree = "<group>"; };
323 FD155F330A08FAD900DE9AE5 /* llxfermanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llxfermanager.h; sourceTree = "<group>"; };
324 FD155F370A08FAF300DE9AE5 /* llxfer_file.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxfer_file.cpp; sourceTree = "<group>"; };
325 FD155F380A08FAF300DE9AE5 /* llxfer_file.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llxfer_file.h; sourceTree = "<group>"; };
326 FD155F390A08FAF300DE9AE5 /* llxfer_mem.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxfer_mem.cpp; sourceTree = "<group>"; };
327 FD155F3A0A08FAF300DE9AE5 /* llxfer_mem.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llxfer_mem.h; sourceTree = "<group>"; };
328 FD155F3B0A08FAF300DE9AE5 /* llxfer_vfile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxfer_vfile.cpp; sourceTree = "<group>"; };
329 FD155F3C0A08FAF300DE9AE5 /* llxfer_vfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llxfer_vfile.h; sourceTree = "<group>"; };
330 FD155F3D0A08FAF300DE9AE5 /* llxfer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxfer.cpp; sourceTree = "<group>"; };
331 FD155F3E0A08FAF300DE9AE5 /* llxfer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llxfer.h; sourceTree = "<group>"; };
332 FD155F480A08FB5100DE9AE5 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
333 FD155F5F0A08FD5900DE9AE5 /* llfasttimer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfasttimer.cpp; sourceTree = "<group>"; };
334 FD155F600A08FD5900DE9AE5 /* llfasttimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfasttimer.h; sourceTree = "<group>"; };
335 FD155F660A08FD9100DE9AE5 /* message_string_table.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = message_string_table.cpp; sourceTree = "<group>"; };
336 FD23FEB70B4340F3007A29CA /* llhttpnode_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llhttpnode_tut.cpp; sourceTree = "<group>"; };
337 FD23FEB80B4340F3007A29CA /* lluserrelations_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lluserrelations_tut.cpp; sourceTree = "<group>"; };
338 FD23FEBC0B43410C007A29CA /* lluserrelations.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lluserrelations.cpp; sourceTree = "<group>"; };
339 FD23FEBD0B43410C007A29CA /* lluserrelations.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lluserrelations.h; sourceTree = "<group>"; };
340 FD23FEC50B4341E2007A29CA /* llerror_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llerror_tut.cpp; sourceTree = "<group>"; };
341 FD396CD80A1D3768005DCB1F /* lltut.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lltut.h; sourceTree = "<group>"; };
342 FD396CDC0A1D37DF005DCB1F /* lltut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lltut.cpp; sourceTree = "<group>"; };
343 FD506A0409FEB58900E297C2 /* llsdserialize.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsdserialize.cpp; sourceTree = "<group>"; };
344 FD506A0509FEB58900E297C2 /* llsdserialize.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llsdserialize.h; sourceTree = "<group>"; };
345 FD506A2409FEB79700E297C2 /* libaprutil-1.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libaprutil-1.a"; path = "build/Debug/libaprutil-1.a"; sourceTree = "<group>"; };
346 FD506A2D09FEC37900E297C2 /* llsdserialize_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llsdserialize_tut.cpp; sourceTree = "<group>"; };
347 FD506AA609FFC70100E297C2 /* llsdserialize_xml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llsdserialize_xml.h; sourceTree = "<group>"; };
348 FD506AA709FFC70100E297C2 /* llsdserialize_xml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llsdserialize_xml.cpp; sourceTree = "<group>"; };
349 FD506ADA09FFE09700E297C2 /* libexpat.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libexpat.a; path = build/Debug/libexpat.a; sourceTree = "<group>"; };
350 FD5DF87A09C0A0FB007E3F78 /* test.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = test.cpp; sourceTree = "<group>"; };
351 FD5DF88609C0A196007E3F78 /* linden_common.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = linden_common.h; sourceTree = "<group>"; };
352 FD5DF9B509C0A571007E3F78 /* libapr-1.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libapr-1.a"; sourceTree = BUILT_PRODUCTS_DIR; };
353 FD5DF9BE09C0A68F007E3F78 /* llsd.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsd.cpp; sourceTree = "<group>"; };
354 FD5DF9BF09C0A68F007E3F78 /* llsd.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llsd.h; sourceTree = "<group>"; };
355 FD5DF9F409C0E20E007E3F78 /* llsd_new_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llsd_new_tut.cpp; sourceTree = "<group>"; };
356 FD5DFA9009C1DF3E007E3F78 /* lldate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lldate.cpp; sourceTree = "<group>"; };
357 FD5DFA9209C1DF4E007E3F78 /* lluuid.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lluuid.cpp; sourceTree = "<group>"; };
358 FD5DFA9709C1DFB7007E3F78 /* lluri.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lluri.cpp; sourceTree = "<group>"; };
359 FD5DFAA509C1E01D007E3F78 /* llmd5.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmd5.cpp; sourceTree = "<group>"; };
360 FD5DFAA809C1E056007E3F78 /* llerror.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llerror.cpp; sourceTree = "<group>"; };
361 FD5DFAAB09C1E09F007E3F78 /* llrand.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llrand.cpp; sourceTree = "<group>"; };
362 FD5DFAAE09C1E101007E3F78 /* llapr.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llapr.cpp; sourceTree = "<group>"; };
363 FD5DFAB009C1E110007E3F78 /* llstring.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llstring.cpp; sourceTree = "<group>"; };
364 FD5DFAB209C1E11A007E3F78 /* lltimer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lltimer.cpp; sourceTree = "<group>"; };
365 FD5DFAB809C1E13A007E3F78 /* u64.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = u64.cpp; sourceTree = "<group>"; };
366 FD7325790A0834080072A37B /* llapr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llapr.h; sourceTree = "<group>"; };
367 FD73257A0A0834080072A37B /* lldate.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lldate.h; sourceTree = "<group>"; };
368 FD73257B0A0834080072A37B /* llerror.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llerror.h; sourceTree = "<group>"; };
369 FD73257D0A0834080072A37B /* llstring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llstring.h; sourceTree = "<group>"; };
370 FD73257E0A0834080072A37B /* lltimer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lltimer.h; sourceTree = "<group>"; };
371 FD73257F0A0834080072A37B /* lluri.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lluri.h; sourceTree = "<group>"; };
372 FD7325800A0834080072A37B /* u64.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = u64.h; sourceTree = "<group>"; };
373 FD7325930A08E7A60072A37B /* common.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = common.cpp; sourceTree = "<group>"; };
374 FD7325960A08E8260072A37B /* math.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = math.cpp; sourceTree = "<group>"; };
375 FD7325990A08E8420072A37B /* inventory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = inventory.cpp; sourceTree = "<group>"; };
376 FD73259D0A08E8A00072A37B /* llinventory.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llinventory.cpp; sourceTree = "<group>"; };
377 FD73259E0A08E8A00072A37B /* llinventory.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llinventory.h; sourceTree = "<group>"; };
378 FD7325A40A08E8F00072A37B /* llxmlnode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxmlnode.cpp; sourceTree = "<group>"; };
379 FD7325A50A08E8F00072A37B /* llxmlnode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llxmlnode.h; sourceTree = "<group>"; };
380 FD7325AA0A08E9330072A37B /* llpermissions.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpermissions.cpp; sourceTree = "<group>"; };
381 FD7325AB0A08E9330072A37B /* llpermissions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpermissions.h; sourceTree = "<group>"; };
382 FD7325AE0A08E95F0072A37B /* llsaleinfo.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsaleinfo.cpp; sourceTree = "<group>"; };
383 FD7325AF0A08E95F0072A37B /* llsaleinfo.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llsaleinfo.h; sourceTree = "<group>"; };
384 FD7325B30A08E9B10072A37B /* message.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = message.cpp; sourceTree = "<group>"; };
385 FD7325B40A08E9B10072A37B /* message.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = message.h; sourceTree = "<group>"; };
386 FD7325B90A08EA220072A37B /* lldir_mac.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lldir_mac.cpp; sourceTree = "<group>"; };
387 FD7325BA0A08EA220072A37B /* lldir_mac.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lldir_mac.h; sourceTree = "<group>"; };
388 FD7325BB0A08EA220072A37B /* lldir.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lldir.cpp; sourceTree = "<group>"; };
389 FD7325BC0A08EA220072A37B /* lldir.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lldir.h; sourceTree = "<group>"; };
390 FD7325BD0A08EA220072A37B /* llvfile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llvfile.cpp; sourceTree = "<group>"; };
391 FD7325BE0A08EA220072A37B /* llvfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llvfile.h; sourceTree = "<group>"; };
392 FD7325C60A08EB370072A37B /* llcircuit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llcircuit.cpp; sourceTree = "<group>"; };
393 FD7325C70A08EB370072A37B /* llcircuit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llcircuit.h; sourceTree = "<group>"; };
394 FD7325C80A08EB370072A37B /* message_prehash.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = message_prehash.cpp; sourceTree = "<group>"; };
395 FD7325C90A08EB370072A37B /* message_prehash.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = message_prehash.h; sourceTree = "<group>"; };
396 FD7325D10A08EB590072A37B /* llthrottle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llthrottle.cpp; sourceTree = "<group>"; };
397 FD7325D20A08EB590072A37B /* llthrottle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llthrottle.h; sourceTree = "<group>"; };
398 FD7325D60A08EB6B0072A37B /* lltransfermanager.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lltransfermanager.cpp; sourceTree = "<group>"; };
399 FD7325D70A08EB6B0072A37B /* lltransfermanager.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lltransfermanager.h; sourceTree = "<group>"; };
400 FD7325DB0A08EB970072A37B /* lltransfersourceasset.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lltransfersourceasset.cpp; sourceTree = "<group>"; };
401 FD7325DC0A08EB970072A37B /* lltransfersourceasset.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lltransfersourceasset.h; sourceTree = "<group>"; };
402 FD7325DD0A08EB970072A37B /* lltransfersourcefile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lltransfersourcefile.cpp; sourceTree = "<group>"; };
403 FD7325DE0A08EB970072A37B /* lltransfersourcefile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lltransfersourcefile.h; sourceTree = "<group>"; };
404 FD7325DF0A08EB970072A37B /* lltransfertargetfile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lltransfertargetfile.cpp; sourceTree = "<group>"; };
405 FD7325E00A08EB970072A37B /* lltransfertargetfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lltransfertargetfile.h; sourceTree = "<group>"; };
406 FD7325E10A08EB970072A37B /* lltransfertargetvfile.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lltransfertargetvfile.cpp; sourceTree = "<group>"; };
407 FD7325E20A08EB970072A37B /* lltransfertargetvfile.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lltransfertargetvfile.h; sourceTree = "<group>"; };
408 FD7325EC0A08EBBF0072A37B /* llqueuedthread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llqueuedthread.cpp; sourceTree = "<group>"; };
409 FD7325ED0A08EBBF0072A37B /* llqueuedthread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llqueuedthread.h; sourceTree = "<group>"; };
410 FD7325F00A08EBD20072A37B /* llvfsthread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llvfsthread.cpp; sourceTree = "<group>"; };
411 FD7325F10A08EBD20072A37B /* llvfsthread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llvfsthread.h; sourceTree = "<group>"; };
412 FD7325F50A08EBE40072A37B /* llvfs.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llvfs.cpp; sourceTree = "<group>"; };
413 FD7325F60A08EBE40072A37B /* llvfs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llvfs.h; sourceTree = "<group>"; };
414 FD7325FA0A08EC140072A37B /* llthread.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llthread.cpp; sourceTree = "<group>"; };
415 FD7325FB0A08EC140072A37B /* llthread.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llthread.h; sourceTree = "<group>"; };
416 FD7326010A08EC490072A37B /* llassetstorage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llassetstorage.cpp; sourceTree = "<group>"; };
417 FD7326020A08EC490072A37B /* llassetstorage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llassetstorage.h; sourceTree = "<group>"; };
418 FD7326050A08EC5B0072A37B /* llassettype.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llassettype.cpp; sourceTree = "<group>"; };
419 FD7326060A08EC5B0072A37B /* llassettype.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llassettype.h; sourceTree = "<group>"; };
420 FD73260C0A08ECB70072A37B /* lldatapacker.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lldatapacker.cpp; sourceTree = "<group>"; };
421 FD73260D0A08ECB70072A37B /* lldatapacker.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lldatapacker.h; sourceTree = "<group>"; };
422 FD7326110A08ECD90072A37B /* llhost.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llhost.cpp; sourceTree = "<group>"; };
423 FD7326120A08ECD90072A37B /* llhost.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llhost.h; sourceTree = "<group>"; };
424 FD73261A0A08ED580072A37B /* llnamevalue.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llnamevalue.cpp; sourceTree = "<group>"; };
425 FD73261B0A08ED580072A37B /* llnamevalue.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llnamevalue.h; sourceTree = "<group>"; };
426 FD7326220A08ED980072A37B /* llrand.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llrand.h; sourceTree = "<group>"; };
427 FD7326230A08ED980072A37B /* lluuid.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lluuid.h; sourceTree = "<group>"; };
428 FD7326260A08EDA60072A37B /* llmd5.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmd5.h; sourceTree = "<group>"; };
429 FD9996A10A1C15AD0057C816 /* llsdhttpserver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llsdhttpserver.cpp; sourceTree = "<group>"; };
430 FD9996A20A1C15AD0057C816 /* llsdhttpserver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llsdhttpserver.h; sourceTree = "<group>"; };
431 FD9996D50A1CA7570057C816 /* llpipeutil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = llpipeutil.h; sourceTree = "<group>"; };
432 FD9996D60A1CA7570057C816 /* llpipeutil.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = llpipeutil.cpp; sourceTree = "<group>"; };
433 FDBC105C0AEEC30000ED2E62 /* llhttpclient.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llhttpclient.h; sourceTree = "<group>"; };
434 FDBC105F0AEEC33000ED2E62 /* llskipmap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llskipmap.h; sourceTree = "<group>"; };
435 FDBC10620AEEC39000ED2E62 /* lldefs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lldefs.h; sourceTree = "<group>"; };
436 FDBC10630AEEC39000ED2E62 /* stdenums.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = stdenums.h; sourceTree = "<group>"; };
437 FDBC10640AEEC39000ED2E62 /* string_table.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = string_table.h; sourceTree = "<group>"; };
438 FDBC10660AEEC3A600ED2E62 /* llpriqueuemap.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpriqueuemap.h; sourceTree = "<group>"; };
439 FDCB2A650AF80D9000C44EBA /* llprocessor.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llprocessor.cpp; sourceTree = "<group>"; };
440 FDCB2A660AF80D9000C44EBA /* llprocessor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llprocessor.h; sourceTree = "<group>"; };
441 FDE7AD520B7D047700C56FE0 /* llcurl.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llcurl.cpp; sourceTree = "<group>"; };
442 FDE7AD530B7D047700C56FE0 /* llcurl.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llcurl.h; sourceTree = "<group>"; };
443 FDF2E4180ADD7B620003B83E /* TestWebServer */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = TestWebServer; sourceTree = BUILT_PRODUCTS_DIR; };
444 FDF2E5580ADDBB7F0003B83E /* llhttpdelayeddata.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llhttpdelayeddata.cpp; sourceTree = "<group>"; };
445 FDF2E5590ADDBB7F0003B83E /* llhttpdelayeddata.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llhttpdelayeddata.h; sourceTree = "<group>"; };
446 FDF2E55A0ADDBB7F0003B83E /* llwebserver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llwebserver.cpp; sourceTree = "<group>"; };
447 FDF2E55B0ADDBB7F0003B83E /* llwebserver.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llwebserver.h; sourceTree = "<group>"; };
448 FDF2E55C0ADDBB7F0003B83E /* testwebserver.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = testwebserver.cpp; sourceTree = "<group>"; };
449 FDFAD41F0AFFFCC30048A0C7 /* llhttpnode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llhttpnode.cpp; sourceTree = "<group>"; };
450 FDFAD4200AFFFCC30048A0C7 /* llhttpnode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llhttpnode.h; sourceTree = "<group>"; };
451 FDFBED120A1B591B0056E81E /* lliohttpserver_tut.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lliohttpserver_tut.cpp; sourceTree = "<group>"; };
452/* End PBXFileReference section */
453
454/* Begin PBXFrameworksBuildPhase section */
455 8DD76F660486A84900D96B5E /* Frameworks */ = {
456 isa = PBXFrameworksBuildPhase;
457 buildActionMask = 2147483647;
458 files = (
459 FD5DF9B609C0A571007E3F78 /* libapr-1.a in Frameworks */,
460 FD506A2509FEB79700E297C2 /* libaprutil-1.a in Frameworks */,
461 FD506ADB09FFE09700E297C2 /* libexpat.a in Frameworks */,
462 FD15589C0A06C08A00DE9AE5 /* libcurl.dylib in Frameworks */,
463 FD1558A70A06C0D000DE9AE5 /* libxmlrpc.a in Frameworks */,
464 FD1558AA0A06C14E00DE9AE5 /* libiconv.dylib in Frameworks */,
465 FD155F5D0A08FB5100DE9AE5 /* Carbon.framework in Frameworks */,
466 );
467 runOnlyForDeploymentPostprocessing = 0;
468 };
469 DA01B1E80ADE82C400A44198 /* Frameworks */ = {
470 isa = PBXFrameworksBuildPhase;
471 buildActionMask = 2147483647;
472 files = (
473 FDBC106B0AEEC3CA00ED2E62 /* libcurl.dylib in Frameworks */,
474 FDBC10740AEEC40F00ED2E62 /* libexpat.a in Frameworks */,
475 FDBC10830AEEC47900ED2E62 /* libapr-1.a in Frameworks */,
476 FDBC10840AEEC47A00ED2E62 /* libaprutil-1.a in Frameworks */,
477 );
478 runOnlyForDeploymentPostprocessing = 0;
479 };
480 FDF2E4160ADD7B620003B83E /* Frameworks */ = {
481 isa = PBXFrameworksBuildPhase;
482 buildActionMask = 2147483647;
483 files = (
484 );
485 runOnlyForDeploymentPostprocessing = 0;
486 };
487/* End PBXFrameworksBuildPhase section */
488
489/* Begin PBXGroup section */
490 08FB7794FE84155DC02AAC07 /* MacTester */ = {
491 isa = PBXGroup;
492 children = (
493 FD5DF88009C0A17D007E3F78 /* llcommon */,
494 FD73259C0A08E8520072A37B /* llinventory */,
495 FD5DF9CD09C0A72C007E3F78 /* llmath */,
496 FD15584F0A06BE4100DE9AE5 /* llmessage */,
497 FD7325B80A08E9FC0072A37B /* llvfs */,
498 FD7325A80A08E8F50072A37B /* llxml */,
499 08FB7795FE84155DC02AAC07 /* test */,
500 FD15589A0A06C07A00DE9AE5 /* System Libraries */,
501 FD5DF9B309C0A550007E3F78 /* Third Party Libs */,
502 1AB674ADFE9D54B511CA2CBB /* Products */,
503 );
504 name = MacTester;
505 sourceTree = "<group>";
506 };
507 08FB7795FE84155DC02AAC07 /* test */ = {
508 isa = PBXGroup;
509 children = (
510 FD23FEC50B4341E2007A29CA /* llerror_tut.cpp */,
511 FD23FEB70B4340F3007A29CA /* llhttpnode_tut.cpp */,
512 FD23FEB80B4340F3007A29CA /* lluserrelations_tut.cpp */,
513 DA01B1F10ADE831200A44198 /* testwebclient */,
514 FDF2E5600ADDBB900003B83E /* testwebserver */,
515 91469E830B44870B0009E8F9 /* llmime_tut.cpp */,
516 DA306B520ACD9F3F008D9B2F /* llapp_tut.cpp */,
517 DA306B530ACD9F3F008D9B2F /* llhttpclient_tut.cpp */,
518 DA306B540ACD9F3F008D9B2F /* lltiming_tut.cpp */,
519 DA306B550ACD9F3F008D9B2F /* lluri_tut.cpp */,
520 386A940D0A0B5F60001DE10D /* reflection_tut.cpp */,
521 FD7325930A08E7A60072A37B /* common.cpp */,
522 FD7325990A08E8420072A37B /* inventory.cpp */,
523 FD15584C0A06BE2E00DE9AE5 /* io.cpp */,
524 FD5DF9F409C0E20E007E3F78 /* llsd_new_tut.cpp */,
525 FD506A2D09FEC37900E297C2 /* llsdserialize_tut.cpp */,
526 FD7325960A08E8260072A37B /* math.cpp */,
527 FD5DF87A09C0A0FB007E3F78 /* test.cpp */,
528 FDFBED120A1B591B0056E81E /* lliohttpserver_tut.cpp */,
529 FD9996D50A1CA7570057C816 /* llpipeutil.h */,
530 FD9996D60A1CA7570057C816 /* llpipeutil.cpp */,
531 FD396CD80A1D3768005DCB1F /* lltut.h */,
532 FD396CDC0A1D37DF005DCB1F /* lltut.cpp */,
533 );
534 name = test;
535 sourceTree = "<group>";
536 };
537 1AB674ADFE9D54B511CA2CBB /* Products */ = {
538 isa = PBXGroup;
539 children = (
540 8DD76F6C0486A84900D96B5E /* MacTester */,
541 FDF2E4180ADD7B620003B83E /* TestWebServer */,
542 DA01B1EF0ADE82C400A44198 /* TestWebClient */,
543 );
544 name = Products;
545 sourceTree = "<group>";
546 };
547 DA01B1F10ADE831200A44198 /* testwebclient */ = {
548 isa = PBXGroup;
549 children = (
550 DA01B2040ADE839D00A44198 /* testwebclient.cpp */,
551 DAD1C4CA0AE2C78C0054574C /* stats.h */,
552 DAD1C4CB0AE2C78C0054574C /* stats.cpp */,
553 );
554 path = testwebclient;
555 sourceTree = "<group>";
556 };
557 FD15584F0A06BE4100DE9AE5 /* llmessage */ = {
558 isa = PBXGroup;
559 children = (
560 FDE7AD520B7D047700C56FE0 /* llcurl.cpp */,
561 FDE7AD530B7D047700C56FE0 /* llcurl.h */,
562 91469E7F0B4486F20009E8F9 /* llmime.cpp */,
563 91469E800B4486F20009E8F9 /* llmime.h */,
564 FDFAD41F0AFFFCC30048A0C7 /* llhttpnode.cpp */,
565 FDFAD4200AFFFCC30048A0C7 /* llhttpnode.h */,
566 FDBC105C0AEEC30000ED2E62 /* llhttpclient.h */,
567 DA306B5B0ACD9F6F008D9B2F /* llhttpclient.cpp */,
568 FD9996A10A1C15AD0057C816 /* llsdhttpserver.cpp */,
569 FD9996A20A1C15AD0057C816 /* llsdhttpserver.h */,
570 386C3F050A14C85000CF4511 /* lliosocket.cpp */,
571 386C3F060A14C85000CF4511 /* lliosocket.h */,
572 FD7326010A08EC490072A37B /* llassetstorage.cpp */,
573 FD7326020A08EC490072A37B /* llassetstorage.h */,
574 FD1558500A06BEB000DE9AE5 /* llbuffer.cpp */,
575 FD1558510A06BEB000DE9AE5 /* llbuffer.h */,
576 FD1558520A06BEB000DE9AE5 /* llbufferstream.cpp */,
577 FD1558530A06BEB000DE9AE5 /* llbufferstream.h */,
578 FD1558880A06BFE400DE9AE5 /* llchainio.cpp */,
579 FD1558890A06BFE400DE9AE5 /* llchainio.h */,
580 FD7325C60A08EB370072A37B /* llcircuit.cpp */,
581 FD7325C70A08EB370072A37B /* llcircuit.h */,
582 FD155F050A08F37900DE9AE5 /* llcrypto.h */,
583 FD73260C0A08ECB70072A37B /* lldatapacker.cpp */,
584 FD73260D0A08ECB70072A37B /* lldatapacker.h */,
585 FD1558770A06BFAB00DE9AE5 /* llfiltersd2xmlrpc.cpp */,
586 FD1558780A06BFAB00DE9AE5 /* llfiltersd2xmlrpc.h */,
587 FD7326110A08ECD90072A37B /* llhost.cpp */,
588 FD7326120A08ECD90072A37B /* llhost.h */,
589 FD1558540A06BEB000DE9AE5 /* llinstantmessage.cpp */,
590 FD1558550A06BEB000DE9AE5 /* llinstantmessage.h */,
591 FD1558790A06BFAB00DE9AE5 /* lliohttpserver.cpp */,
592 FD15587A0A06BFAB00DE9AE5 /* lliohttpserver.h */,
593 FD15587B0A06BFAB00DE9AE5 /* lliopipe.cpp */,
594 FD15587C0A06BFAB00DE9AE5 /* lliopipe.h */,
595 FD1558560A06BEB000DE9AE5 /* llioutil.cpp */,
596 FD1558570A06BEB000DE9AE5 /* llioutil.h */,
597 FD73261A0A08ED580072A37B /* llnamevalue.cpp */,
598 FD73261B0A08ED580072A37B /* llnamevalue.h */,
599 FD155F090A08F60B00DE9AE5 /* llnullcipher.cpp */,
600 FD155F280A08FA0F00DE9AE5 /* llpacketbuffer.cpp */,
601 FD155F290A08FA0F00DE9AE5 /* llpacketbuffer.h */,
602 FD155F1D0A08F9D200DE9AE5 /* llpacketring.cpp */,
603 FD155F1E0A08F9D200DE9AE5 /* llpacketring.h */,
604 FD15587D0A06BFAB00DE9AE5 /* llpumpio.cpp */,
605 FD15587E0A06BFAB00DE9AE5 /* llpumpio.h */,
606 FD1558580A06BEB000DE9AE5 /* llsdrpcclient.cpp */,
607 FD1558590A06BEB000DE9AE5 /* llsdrpcclient.h */,
608 FD15585A0A06BEB000DE9AE5 /* llsdrpcserver.cpp */,
609 FD15585B0A06BEB000DE9AE5 /* llsdrpcserver.h */,
610 FD7325D10A08EB590072A37B /* llthrottle.cpp */,
611 FD7325D20A08EB590072A37B /* llthrottle.h */,
612 FD7325D60A08EB6B0072A37B /* lltransfermanager.cpp */,
613 FD7325D70A08EB6B0072A37B /* lltransfermanager.h */,
614 FD7325DB0A08EB970072A37B /* lltransfersourceasset.cpp */,
615 FD7325DC0A08EB970072A37B /* lltransfersourceasset.h */,
616 FD7325DD0A08EB970072A37B /* lltransfersourcefile.cpp */,
617 FD7325DE0A08EB970072A37B /* lltransfersourcefile.h */,
618 FD7325DF0A08EB970072A37B /* lltransfertargetfile.cpp */,
619 FD7325E00A08EB970072A37B /* lltransfertargetfile.h */,
620 FD7325E10A08EB970072A37B /* lltransfertargetvfile.cpp */,
621 FD7325E20A08EB970072A37B /* lltransfertargetvfile.h */,
622 FD1558950A06C05100DE9AE5 /* llurlrequest.cpp */,
623 FD1558960A06C05100DE9AE5 /* llurlrequest.h */,
624 FD155F3D0A08FAF300DE9AE5 /* llxfer.cpp */,
625 FD155F3E0A08FAF300DE9AE5 /* llxfer.h */,
626 FD155F370A08FAF300DE9AE5 /* llxfer_file.cpp */,
627 FD155F380A08FAF300DE9AE5 /* llxfer_file.h */,
628 FD155F390A08FAF300DE9AE5 /* llxfer_mem.cpp */,
629 FD155F3A0A08FAF300DE9AE5 /* llxfer_mem.h */,
630 FD155F3B0A08FAF300DE9AE5 /* llxfer_vfile.cpp */,
631 FD155F3C0A08FAF300DE9AE5 /* llxfer_vfile.h */,
632 FD155F320A08FAD900DE9AE5 /* llxfermanager.cpp */,
633 FD155F330A08FAD900DE9AE5 /* llxfermanager.h */,
634 FD155F0A0A08F60B00DE9AE5 /* llxorcipher.cpp */,
635 FD155F0E0A08F63200DE9AE5 /* message.cpp */,
636 FD7325B40A08E9B10072A37B /* message.h */,
637 FD7325C80A08EB370072A37B /* message_prehash.cpp */,
638 FD7325C90A08EB370072A37B /* message_prehash.h */,
639 FD155F660A08FD9100DE9AE5 /* message_string_table.cpp */,
640 FD155F2D0A08FA9800DE9AE5 /* net.cpp */,
641 FD155F2E0A08FA9800DE9AE5 /* net.h */,
642 FD7325B30A08E9B10072A37B /* message.cpp */,
643 FD7325B40A08E9B10072A37B /* message.h */,
644 );
645 name = llmessage;
646 path = ../llmessage;
647 sourceTree = "<group>";
648 };
649 FD15589A0A06C07A00DE9AE5 /* System Libraries */ = {
650 isa = PBXGroup;
651 children = (
652 FD155F480A08FB5100DE9AE5 /* Carbon.framework */,
653 FD1558A90A06C14E00DE9AE5 /* libiconv.dylib */,
654 FD15589B0A06C08A00DE9AE5 /* libcurl.dylib */,
655 );
656 name = "System Libraries";
657 sourceTree = "<group>";
658 };
659 FD5DF88009C0A17D007E3F78 /* llcommon */ = {
660 isa = PBXGroup;
661 children = (
662 DA4D18150B567E0D0049C10F /* llformat.cpp */,
663 DA4D18160B567E0D0049C10F /* llformat.h */,
664 DA9C40460B540D8A00DD6F44 /* lllivefile.cpp */,
665 DA9C40470B540D8A00DD6F44 /* lllivefile.h */,
666 FDCB2A650AF80D9000C44EBA /* llprocessor.cpp */,
667 FDCB2A660AF80D9000C44EBA /* llprocessor.h */,
668 FDBC10660AEEC3A600ED2E62 /* llpriqueuemap.h */,
669 FDBC10620AEEC39000ED2E62 /* lldefs.h */,
670 FDBC10630AEEC39000ED2E62 /* stdenums.h */,
671 FDBC10640AEEC39000ED2E62 /* string_table.h */,
672 FDBC105F0AEEC33000ED2E62 /* llskipmap.h */,
673 DA306B4B0ACD9EFD008D9B2F /* llcommon.cpp */,
674 DA306B4C0ACD9EFD008D9B2F /* llerrorthread.cpp */,
675 DA306B4D0ACD9EFD008D9B2F /* llrun.cpp */,
676 DA306B480ACD9EBC008D9B2F /* llapp.cpp */,
677 DA306B430ACD9E8B008D9B2F /* llsdutil.cpp */,
678 DA306B440ACD9E8B008D9B2F /* llstreamtools.cpp */,
679 FD5DF88609C0A196007E3F78 /* linden_common.h */,
680 FD5DFAAE09C1E101007E3F78 /* llapr.cpp */,
681 FD7325790A0834080072A37B /* llapr.h */,
682 FD7326050A08EC5B0072A37B /* llassettype.cpp */,
683 FD7326060A08EC5B0072A37B /* llassettype.h */,
684 FD5DFA9009C1DF3E007E3F78 /* lldate.cpp */,
685 FD73257A0A0834080072A37B /* lldate.h */,
686 FD5DFAA809C1E056007E3F78 /* llerror.cpp */,
687 FD73257B0A0834080072A37B /* llerror.h */,
688 FD155F5F0A08FD5900DE9AE5 /* llfasttimer.cpp */,
689 FD155F600A08FD5900DE9AE5 /* llfasttimer.h */,
690 389CFB450A0B69C700EE2094 /* llfile.cpp */,
691 389CFB440A0B69C700EE2094 /* llfile.h */,
692 FD1558910A06C01400DE9AE5 /* llframetimer.cpp */,
693 FD1558920A06C01400DE9AE5 /* llframetimer.h */,
694 FD155F010A08F36A00DE9AE5 /* llmemory.cpp */,
695 FD155F020A08F36A00DE9AE5 /* llmemory.h */,
696 FD15588C0A06BFF100DE9AE5 /* llmemorystream.cpp */,
697 FD15588D0A06BFF100DE9AE5 /* llmemorystream.h */,
698 FD7325EC0A08EBBF0072A37B /* llqueuedthread.cpp */,
699 FD7325ED0A08EBBF0072A37B /* llqueuedthread.h */,
700 FD5DF9BE09C0A68F007E3F78 /* llsd.cpp */,
701 FD5DF9BF09C0A68F007E3F78 /* llsd.h */,
702 FD506A0409FEB58900E297C2 /* llsdserialize.cpp */,
703 FD506A0509FEB58900E297C2 /* llsdserialize.h */,
704 FD506AA709FFC70100E297C2 /* llsdserialize_xml.cpp */,
705 FD506AA609FFC70100E297C2 /* llsdserialize_xml.h */,
706 FD5DFAB009C1E110007E3F78 /* llstring.cpp */,
707 FD73257D0A0834080072A37B /* llstring.h */,
708 FD155EF80A08F0DE00DE9AE5 /* llstringtable.cpp */,
709 FD155EF90A08F0DE00DE9AE5 /* llstringtable.h */,
710 FD7325FA0A08EC140072A37B /* llthread.cpp */,
711 FD7325FB0A08EC140072A37B /* llthread.h */,
712 FD5DFAB209C1E11A007E3F78 /* lltimer.cpp */,
713 FD73257E0A0834080072A37B /* lltimer.h */,
714 FD5DFA9709C1DFB7007E3F78 /* lluri.cpp */,
715 FD73257F0A0834080072A37B /* lluri.h */,
716 38A8BEAA0A18A2BC00814862 /* metaclass.cpp */,
717 38A8BF140A18A6FF00814862 /* metaclass.h */,
718 38A8BF620A18C31D00814862 /* metaproperty.cpp */,
719 383A14F90A1A1C6700F420F7 /* metapropertyt.h */,
720 38A8BF740A18C42900814862 /* reflective.cpp */,
721 38A8BF690A18C38800814862 /* reflective.h */,
722 FD5DFAB809C1E13A007E3F78 /* u64.cpp */,
723 FD7325800A0834080072A37B /* u64.h */,
724 DA4D182B0B567ED70049C10F /* llerrorcontrol.h */,
725 );
726 name = llcommon;
727 path = ../llcommon;
728 sourceTree = SOURCE_ROOT;
729 };
730 FD5DF9B309C0A550007E3F78 /* Third Party Libs */ = {
731 isa = PBXGroup;
732 children = (
733 FD1558A60A06C0D000DE9AE5 /* libxmlrpc.a */,
734 FD506ADA09FFE09700E297C2 /* libexpat.a */,
735 FD506A2409FEB79700E297C2 /* libaprutil-1.a */,
736 FD5DF9B509C0A571007E3F78 /* libapr-1.a */,
737 );
738 name = "Third Party Libs";
739 sourceTree = "<group>";
740 };
741 FD5DF9CD09C0A72C007E3F78 /* llmath */ = {
742 isa = PBXGroup;
743 children = (
744 91469E8B0B4489420009E8F9 /* llquaternion.cpp */,
745 91469E8C0B4489420009E8F9 /* llquaternion.h */,
746 FD5DFAA509C1E01D007E3F78 /* llmd5.cpp */,
747 FD7326260A08EDA60072A37B /* llmd5.h */,
748 FD5DFAAB09C1E09F007E3F78 /* llrand.cpp */,
749 FD7326220A08ED980072A37B /* llrand.h */,
750 FD5DFA9209C1DF4E007E3F78 /* lluuid.cpp */,
751 FD7326230A08ED980072A37B /* lluuid.h */,
752 FD155EF00A08F0B300DE9AE5 /* m3math.cpp */,
753 FD155EF10A08F0B300DE9AE5 /* m3math.h */,
754 FD155EF20A08F0B300DE9AE5 /* m4math.cpp */,
755 FD155EF30A08F0B300DE9AE5 /* m4math.h */,
756 FD155F220A08F9F600DE9AE5 /* v3math.cpp */,
757 FD155F230A08F9F600DE9AE5 /* v3math.h */,
758 );
759 name = llmath;
760 path = ../llmath;
761 sourceTree = SOURCE_ROOT;
762 };
763 FD73259C0A08E8520072A37B /* llinventory */ = {
764 isa = PBXGroup;
765 children = (
766 FD23FEBC0B43410C007A29CA /* lluserrelations.cpp */,
767 FD23FEBD0B43410C007A29CA /* lluserrelations.h */,
768 FD73259D0A08E8A00072A37B /* llinventory.cpp */,
769 FD73259E0A08E8A00072A37B /* llinventory.h */,
770 FD7325AA0A08E9330072A37B /* llpermissions.cpp */,
771 FD7325AB0A08E9330072A37B /* llpermissions.h */,
772 FD7325AE0A08E95F0072A37B /* llsaleinfo.cpp */,
773 FD7325AF0A08E95F0072A37B /* llsaleinfo.h */,
774 );
775 name = llinventory;
776 path = ../llinventory;
777 sourceTree = "<group>";
778 };
779 FD7325A80A08E8F50072A37B /* llxml */ = {
780 isa = PBXGroup;
781 children = (
782 FD7325A40A08E8F00072A37B /* llxmlnode.cpp */,
783 FD7325A50A08E8F00072A37B /* llxmlnode.h */,
784 );
785 name = llxml;
786 path = ../llxml;
787 sourceTree = "<group>";
788 };
789 FD7325B80A08E9FC0072A37B /* llvfs */ = {
790 isa = PBXGroup;
791 children = (
792 FD7325BB0A08EA220072A37B /* lldir.cpp */,
793 FD7325BC0A08EA220072A37B /* lldir.h */,
794 FD7325B90A08EA220072A37B /* lldir_mac.cpp */,
795 FD7325BA0A08EA220072A37B /* lldir_mac.h */,
796 FD7325BD0A08EA220072A37B /* llvfile.cpp */,
797 FD7325BE0A08EA220072A37B /* llvfile.h */,
798 FD7325F50A08EBE40072A37B /* llvfs.cpp */,
799 FD7325F60A08EBE40072A37B /* llvfs.h */,
800 FD7325F00A08EBD20072A37B /* llvfsthread.cpp */,
801 FD7325F10A08EBD20072A37B /* llvfsthread.h */,
802 );
803 name = llvfs;
804 path = ../llvfs;
805 sourceTree = "<group>";
806 };
807 FDF2E5600ADDBB900003B83E /* testwebserver */ = {
808 isa = PBXGroup;
809 children = (
810 FDF2E5580ADDBB7F0003B83E /* llhttpdelayeddata.cpp */,
811 FDF2E5590ADDBB7F0003B83E /* llhttpdelayeddata.h */,
812 FDF2E55A0ADDBB7F0003B83E /* llwebserver.cpp */,
813 FDF2E55B0ADDBB7F0003B83E /* llwebserver.h */,
814 FDF2E55C0ADDBB7F0003B83E /* testwebserver.cpp */,
815 );
816 path = testwebserver;
817 sourceTree = "<group>";
818 };
819/* End PBXGroup section */
820
821/* Begin PBXNativeTarget section */
822 8DD76F620486A84900D96B5E /* MacTester */ = {
823 isa = PBXNativeTarget;
824 buildConfigurationList = 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "MacTester" */;
825 buildPhases = (
826 8DD76F640486A84900D96B5E /* Sources */,
827 8DD76F660486A84900D96B5E /* Frameworks */,
828 8DD76F690486A84900D96B5E /* CopyFiles */,
829 );
830 buildRules = (
831 );
832 dependencies = (
833 FD5DF9A909C0A537007E3F78 /* PBXTargetDependency */,
834 );
835 name = MacTester;
836 productInstallPath = "$(HOME)/bin";
837 productName = MacTester;
838 productReference = 8DD76F6C0486A84900D96B5E /* MacTester */;
839 productType = "com.apple.product-type.tool";
840 };
841 DA01B1C40ADE82C400A44198 /* TestWebClient */ = {
842 isa = PBXNativeTarget;
843 buildConfigurationList = DA01B1EC0ADE82C400A44198 /* Build configuration list for PBXNativeTarget "TestWebClient" */;
844 buildPhases = (
845 DA01B1C70ADE82C400A44198 /* Sources */,
846 DA01B1E80ADE82C400A44198 /* Frameworks */,
847 );
848 buildRules = (
849 );
850 dependencies = (
851 DA01B1C50ADE82C400A44198 /* PBXTargetDependency */,
852 );
853 name = TestWebClient;
854 productName = TestWebServer;
855 productReference = DA01B1EF0ADE82C400A44198 /* TestWebClient */;
856 productType = "com.apple.product-type.tool";
857 };
858 FDF2E4170ADD7B620003B83E /* TestWebServer */ = {
859 isa = PBXNativeTarget;
860 buildConfigurationList = FDF2E41E0ADD7B8D0003B83E /* Build configuration list for PBXNativeTarget "TestWebServer" */;
861 buildPhases = (
862 FDF2E4150ADD7B620003B83E /* Sources */,
863 FDF2E4160ADD7B620003B83E /* Frameworks */,
864 );
865 buildRules = (
866 );
867 dependencies = (
868 FDF2E41B0ADD7B690003B83E /* PBXTargetDependency */,
869 );
870 name = TestWebServer;
871 productName = TestWebServer;
872 productReference = FDF2E4180ADD7B620003B83E /* TestWebServer */;
873 productType = "com.apple.product-type.tool";
874 };
875/* End PBXNativeTarget section */
876
877/* Begin PBXProject section */
878 08FB7793FE84155DC02AAC07 /* Project object */ = {
879 isa = PBXProject;
880 buildConfigurationList = 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "MacTester" */;
881 hasScannedForEncodings = 1;
882 mainGroup = 08FB7794FE84155DC02AAC07 /* MacTester */;
883 projectDirPath = "";
884 targets = (
885 FD5DF9A109C0A4F5007E3F78 /* third party libs */,
886 8DD76F620486A84900D96B5E /* MacTester */,
887 FDF2E4170ADD7B620003B83E /* TestWebServer */,
888 DA01B1C40ADE82C400A44198 /* TestWebClient */,
889 );
890 };
891/* End PBXProject section */
892
893/* Begin PBXShellScriptBuildPhase section */
894 FD5DF9A009C0A4F5007E3F78 /* ShellScript */ = {
895 isa = PBXShellScriptBuildPhase;
896 buildActionMask = 2147483647;
897 files = (
898 );
899 inputPaths = (
900 );
901 outputPaths = (
902 );
903 runOnlyForDeploymentPostprocessing = 0;
904 shellPath = /bin/sh;
905 shellScript = "LIBS=\"apr-1 aprutil-1 expat xmlrpc\"\nLIBDIR=\"${SRCROOT}/../../libraries\"\n\ncd \"${LIBDIR}\"\n\nif [ \\! -e ppc-darwin ]\nthen\n\tln -s powerpc-darwin ppc-darwin\nfi\n\nmkdir -p \"${BUILT_PRODUCTS_DIR}\"\n\nfor i in ${LIBS}; do\n\tIN_i386=\"i386-darwin/lib_release/lib$i.a\"\n\tIN_ppc=\"ppc-darwin/lib_release/lib$i.a\"\n\tOUT=\"${BUILT_PRODUCTS_DIR}/lib$i.a\"\necho out is $OUT\necho in is $IN_i386 and $IN_ppc\n\n\tif [ \"$IN_i386\" -nt \"$OUT\" -o \"$IN_ppc\" -nt \"$OUT\" ]; then\n\t\techo lib$i.a building via libtool\n#\t\techo libtool -static -o \"$OUT\" \"$IN_i386\" \"$IN_ppc\"\n\t\tlibtool -static -o \"$OUT\" \"$IN_i386\" \"$IN_ppc\"\n\telse\n\t\techo lib$i.a up to date\n\tfi\ndone\n";
906 };
907/* End PBXShellScriptBuildPhase section */
908
909/* Begin PBXSourcesBuildPhase section */
910 8DD76F640486A84900D96B5E /* Sources */ = {
911 isa = PBXSourcesBuildPhase;
912 buildActionMask = 2147483647;
913 files = (
914 FD5DF87B09C0A0FB007E3F78 /* test.cpp in Sources */,
915 FD5DF9F609C0E20E007E3F78 /* llsd_new_tut.cpp in Sources */,
916 FD5DFA9109C1DF3E007E3F78 /* lldate.cpp in Sources */,
917 FD5DFA9309C1DF4E007E3F78 /* lluuid.cpp in Sources */,
918 FD5DFA9909C1DFB7007E3F78 /* lluri.cpp in Sources */,
919 FD5DFAA609C1E01D007E3F78 /* llmd5.cpp in Sources */,
920 FD5DFAA909C1E056007E3F78 /* llerror.cpp in Sources */,
921 FD5DFAAC09C1E09F007E3F78 /* llrand.cpp in Sources */,
922 FD5DFAAF09C1E101007E3F78 /* llapr.cpp in Sources */,
923 FD5DFAB109C1E110007E3F78 /* llstring.cpp in Sources */,
924 FD5DFAB309C1E11A007E3F78 /* lltimer.cpp in Sources */,
925 FD5DFAB909C1E13A007E3F78 /* u64.cpp in Sources */,
926 FDEC4F5509F7EF7A007BAEEC /* llsd.cpp in Sources */,
927 FD506A0609FEB58900E297C2 /* llsdserialize.cpp in Sources */,
928 FD506A2F09FEC37900E297C2 /* llsdserialize_tut.cpp in Sources */,
929 FD506AA909FFC70100E297C2 /* llsdserialize_xml.cpp in Sources */,
930 FD15584D0A06BE2E00DE9AE5 /* io.cpp in Sources */,
931 FD15585C0A06BEB000DE9AE5 /* llbuffer.cpp in Sources */,
932 FD15585E0A06BEB000DE9AE5 /* llbufferstream.cpp in Sources */,
933 FD1558600A06BEB000DE9AE5 /* llinstantmessage.cpp in Sources */,
934 FD1558620A06BEB000DE9AE5 /* llioutil.cpp in Sources */,
935 FD1558640A06BEB000DE9AE5 /* llsdrpcclient.cpp in Sources */,
936 FD1558660A06BEB000DE9AE5 /* llsdrpcserver.cpp in Sources */,
937 FD15587F0A06BFAB00DE9AE5 /* llfiltersd2xmlrpc.cpp in Sources */,
938 FD1558810A06BFAB00DE9AE5 /* lliohttpserver.cpp in Sources */,
939 FD1558830A06BFAB00DE9AE5 /* lliopipe.cpp in Sources */,
940 FD1558850A06BFAB00DE9AE5 /* llpumpio.cpp in Sources */,
941 FD15588A0A06BFE400DE9AE5 /* llchainio.cpp in Sources */,
942 FD15588E0A06BFF100DE9AE5 /* llmemorystream.cpp in Sources */,
943 FD1558930A06C01400DE9AE5 /* llframetimer.cpp in Sources */,
944 FD1558970A06C05100DE9AE5 /* llurlrequest.cpp in Sources */,
945 FD7325940A08E7A60072A37B /* common.cpp in Sources */,
946 FD7325970A08E8260072A37B /* math.cpp in Sources */,
947 FD73259A0A08E8420072A37B /* inventory.cpp in Sources */,
948 FD73259F0A08E8A00072A37B /* llinventory.cpp in Sources */,
949 FD7325A60A08E8F00072A37B /* llxmlnode.cpp in Sources */,
950 FD7325AC0A08E9330072A37B /* llpermissions.cpp in Sources */,
951 FD7325B00A08E95F0072A37B /* llsaleinfo.cpp in Sources */,
952 FD7325BF0A08EA220072A37B /* lldir_mac.cpp in Sources */,
953 FD7325C10A08EA220072A37B /* lldir.cpp in Sources */,
954 FD7325C30A08EA220072A37B /* llvfile.cpp in Sources */,
955 FD7325CA0A08EB370072A37B /* llcircuit.cpp in Sources */,
956 FD7325CC0A08EB370072A37B /* message_prehash.cpp in Sources */,
957 FD7325D30A08EB590072A37B /* llthrottle.cpp in Sources */,
958 FD7325D80A08EB6B0072A37B /* lltransfermanager.cpp in Sources */,
959 FD7325E30A08EB970072A37B /* lltransfersourceasset.cpp in Sources */,
960 FD7325E50A08EB970072A37B /* lltransfersourcefile.cpp in Sources */,
961 FD7325E70A08EB970072A37B /* lltransfertargetfile.cpp in Sources */,
962 FD7325E90A08EB970072A37B /* lltransfertargetvfile.cpp in Sources */,
963 FD7325EE0A08EBBF0072A37B /* llqueuedthread.cpp in Sources */,
964 FD7325F20A08EBD20072A37B /* llvfsthread.cpp in Sources */,
965 FD7325F70A08EBE40072A37B /* llvfs.cpp in Sources */,
966 FD7325FC0A08EC140072A37B /* llthread.cpp in Sources */,
967 FD7326030A08EC490072A37B /* llassetstorage.cpp in Sources */,
968 FD7326070A08EC5B0072A37B /* llassettype.cpp in Sources */,
969 FD73260E0A08ECB70072A37B /* lldatapacker.cpp in Sources */,
970 FD7326130A08ECD90072A37B /* llhost.cpp in Sources */,
971 FD73261C0A08ED580072A37B /* llnamevalue.cpp in Sources */,
972 FD155EF40A08F0B300DE9AE5 /* m3math.cpp in Sources */,
973 FD155EF60A08F0B300DE9AE5 /* m4math.cpp in Sources */,
974 FD155EFA0A08F0DE00DE9AE5 /* llstringtable.cpp in Sources */,
975 FD155F030A08F36A00DE9AE5 /* llmemory.cpp in Sources */,
976 FD155F0B0A08F60B00DE9AE5 /* llnullcipher.cpp in Sources */,
977 FD155F0C0A08F60B00DE9AE5 /* llxorcipher.cpp in Sources */,
978 FD155F100A08F63200DE9AE5 /* message.cpp in Sources */,
979 FD155F1F0A08F9D200DE9AE5 /* llpacketring.cpp in Sources */,
980 FD155F240A08F9F600DE9AE5 /* v3math.cpp in Sources */,
981 FD155F2A0A08FA0F00DE9AE5 /* llpacketbuffer.cpp in Sources */,
982 FD155F2F0A08FA9800DE9AE5 /* net.cpp in Sources */,
983 FD155F340A08FAD900DE9AE5 /* llxfermanager.cpp in Sources */,
984 FD155F3F0A08FAF300DE9AE5 /* llxfer_file.cpp in Sources */,
985 FD155F410A08FAF300DE9AE5 /* llxfer_mem.cpp in Sources */,
986 FD155F430A08FAF300DE9AE5 /* llxfer_vfile.cpp in Sources */,
987 FD155F450A08FAF300DE9AE5 /* llxfer.cpp in Sources */,
988 FD155F610A08FD5900DE9AE5 /* llfasttimer.cpp in Sources */,
989 FD155F670A08FD9100DE9AE5 /* message_string_table.cpp in Sources */,
990 389CFB470A0B69C700EE2094 /* llfile.cpp in Sources */,
991 386C3F070A14C85000CF4511 /* lliosocket.cpp in Sources */,
992 38A8BEAB0A18A2BC00814862 /* metaclass.cpp in Sources */,
993 38A8BF630A18C31D00814862 /* metaproperty.cpp in Sources */,
994 38A8BF750A18C42900814862 /* reflective.cpp in Sources */,
995 FDFBED130A1B591B0056E81E /* lliohttpserver_tut.cpp in Sources */,
996 FD9996A30A1C15B10057C816 /* llsdhttpserver.cpp in Sources */,
997 FD9996D80A1CA7570057C816 /* llpipeutil.cpp in Sources */,
998 FD396CDD0A1D37DF005DCB1F /* lltut.cpp in Sources */,
999 FD396D160A1DFB4B005DCB1F /* reflection_tut.cpp in Sources */,
1000 DA306B450ACD9E8B008D9B2F /* llsdutil.cpp in Sources */,
1001 DA306B460ACD9E8B008D9B2F /* llstreamtools.cpp in Sources */,
1002 DA306B490ACD9EBC008D9B2F /* llapp.cpp in Sources */,
1003 DA306B4E0ACD9EFD008D9B2F /* llcommon.cpp in Sources */,
1004 DA306B4F0ACD9EFD008D9B2F /* llerrorthread.cpp in Sources */,
1005 DA306B500ACD9EFD008D9B2F /* llrun.cpp in Sources */,
1006 DA306B560ACD9F3F008D9B2F /* llapp_tut.cpp in Sources */,
1007 DA306B570ACD9F3F008D9B2F /* llhttpclient_tut.cpp in Sources */,
1008 DA306B580ACD9F3F008D9B2F /* lltiming_tut.cpp in Sources */,
1009 DA306B590ACD9F3F008D9B2F /* lluri_tut.cpp in Sources */,
1010 DA306B5C0ACD9F6F008D9B2F /* llhttpclient.cpp in Sources */,
1011 FDCB2A670AF80D9000C44EBA /* llprocessor.cpp in Sources */,
1012 FDFAD4210AFFFCC30048A0C7 /* llhttpnode.cpp in Sources */,
1013 91469E810B4486F20009E8F9 /* llmime.cpp in Sources */,
1014 91469E840B44870B0009E8F9 /* llmime_tut.cpp in Sources */,
1015 91469E8D0B4489420009E8F9 /* llquaternion.cpp in Sources */,
1016 FD23FEB90B4340F3007A29CA /* llhttpnode_tut.cpp in Sources */,
1017 FD23FEBA0B4340F3007A29CA /* lluserrelations_tut.cpp in Sources */,
1018 FD23FEBE0B43410C007A29CA /* lluserrelations.cpp in Sources */,
1019 FD23FEC60B4341E2007A29CA /* llerror_tut.cpp in Sources */,
1020 DA9C40480B540D8A00DD6F44 /* lllivefile.cpp in Sources */,
1021 DA4D18170B567E0D0049C10F /* llformat.cpp in Sources */,
1022 );
1023 runOnlyForDeploymentPostprocessing = 0;
1024 };
1025 DA01B1C70ADE82C400A44198 /* Sources */ = {
1026 isa = PBXSourcesBuildPhase;
1027 buildActionMask = 2147483647;
1028 files = (
1029 DAD1C4CC0AE2C78C0054574C /* stats.cpp in Sources */,
1030 FDBC106D0AEEC3DA00ED2E62 /* llsd.cpp in Sources */,
1031 FDBC106F0AEEC3E900ED2E62 /* lluuid.cpp in Sources */,
1032 FDBC10710AEEC3F800ED2E62 /* llsdserialize.cpp in Sources */,
1033 FDBC10720AEEC3F900ED2E62 /* llsdserialize_xml.cpp in Sources */,
1034 FDBC10750AEEC41600ED2E62 /* lldate.cpp in Sources */,
1035 FDBC10760AEEC41B00ED2E62 /* llmd5.cpp in Sources */,
1036 FDBC107B0AEEC43200ED2E62 /* lluri.cpp in Sources */,
1037 FDBC107E0AEEC45100ED2E62 /* lltimer.cpp in Sources */,
1038 FDBC107F0AEEC45400ED2E62 /* llfasttimer.cpp in Sources */,
1039 FDBC10810AEEC46D00ED2E62 /* llapr.cpp in Sources */,
1040 FDBC10860AEEC49800ED2E62 /* lliopipe.cpp in Sources */,
1041 FDBC10870AEEC49D00ED2E62 /* llpumpio.cpp in Sources */,
1042 FDBC10890AEEC4BA00ED2E62 /* llurlrequest.cpp in Sources */,
1043 FDBC108B0AEEC4CD00ED2E62 /* llbuffer.cpp in Sources */,
1044 FDBC108D0AEEC4E500ED2E62 /* llstring.cpp in Sources */,
1045 FDBC108F0AEEC50200ED2E62 /* u64.cpp in Sources */,
1046 FDBC10900AEEC50A00ED2E62 /* llmemory.cpp in Sources */,
1047 FDBC10990AEEC57D00ED2E62 /* llhttpclient.cpp in Sources */,
1048 FDBC109D0AEEC5EE00ED2E62 /* llbufferstream.cpp in Sources */,
1049 FDBC109F0AEEC5FB00ED2E62 /* llchainio.cpp in Sources */,
1050 FDBC10A10AEEC60F00ED2E62 /* llioutil.cpp in Sources */,
1051 FDBC10A30AEEC62400ED2E62 /* llthread.cpp in Sources */,
1052 FDBC10A50AEEC63200ED2E62 /* llerror.cpp in Sources */,
1053 FDBC10A70AEEC64100ED2E62 /* llrand.cpp in Sources */,
1054 FDBC10A90AEEC65700ED2E62 /* llstreamtools.cpp in Sources */,
1055 FDBC10AB0AEEC66100ED2E62 /* testwebclient.cpp in Sources */,
1056 FDBC10AD0AEEC67700ED2E62 /* llframetimer.cpp in Sources */,
1057 FDE7AD540B7D047700C56FE0 /* llcurl.cpp in Sources */,
1058 );
1059 runOnlyForDeploymentPostprocessing = 0;
1060 };
1061 FDF2E4150ADD7B620003B83E /* Sources */ = {
1062 isa = PBXSourcesBuildPhase;
1063 buildActionMask = 2147483647;
1064 files = (
1065 );
1066 runOnlyForDeploymentPostprocessing = 0;
1067 };
1068/* End PBXSourcesBuildPhase section */
1069
1070/* Begin PBXTargetDependency section */
1071 DA01B1C50ADE82C400A44198 /* PBXTargetDependency */ = {
1072 isa = PBXTargetDependency;
1073 target = FD5DF9A109C0A4F5007E3F78 /* third party libs */;
1074 targetProxy = FDBC10510AEEB7C300ED2E62 /* PBXContainerItemProxy */;
1075 };
1076 FD5DF9A909C0A537007E3F78 /* PBXTargetDependency */ = {
1077 isa = PBXTargetDependency;
1078 target = FD5DF9A109C0A4F5007E3F78 /* third party libs */;
1079 targetProxy = FD5DF9A809C0A537007E3F78 /* PBXContainerItemProxy */;
1080 };
1081 FDF2E41B0ADD7B690003B83E /* PBXTargetDependency */ = {
1082 isa = PBXTargetDependency;
1083 target = FD5DF9A109C0A4F5007E3F78 /* third party libs */;
1084 targetProxy = FDBC10500AEEB7C300ED2E62 /* PBXContainerItemProxy */;
1085 };
1086/* End PBXTargetDependency section */
1087
1088/* Begin XCBuildConfiguration section */
1089 1DEB923208733DC60010E9CD /* Debug */ = {
1090 isa = XCBuildConfiguration;
1091 buildSettings = {
1092 INSTALL_PATH = "$(HOME)/bin";
1093 PRODUCT_NAME = MacTester;
1094 };
1095 name = Debug;
1096 };
1097 1DEB923308733DC60010E9CD /* Release */ = {
1098 isa = XCBuildConfiguration;
1099 buildSettings = {
1100 ARCHS = (
1101 ppc,
1102 i386,
1103 );
1104 INSTALL_PATH = "$(HOME)/bin";
1105 PRODUCT_NAME = MacTester;
1106 };
1107 name = Release;
1108 };
1109 1DEB923608733DC60010E9CD /* Debug */ = {
1110 isa = XCBuildConfiguration;
1111 buildSettings = {
1112 GCC_ALTIVEC_EXTENSIONS = YES;
1113 GCC_OPTIMIZATION_LEVEL = 1;
1114 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
1115 HEADER_SEARCH_PATHS = (
1116 "../../libraries/$(arch)-darwin/include",
1117 ../../libraries/include,
1118 ../llcommon,
1119 );
1120 OTHER_CFLAGS = (
1121 "-DLL_DARWIN=1",
1122 "-DLL_DEBUG=1",
1123 "-D_DEBUG",
1124 "-fconstant-cfstrings",
1125 );
1126 OTHER_CPLUSPLUSFLAGS = (
1127 "$(OTHER_CFLAGS)",
1128 "-ffor-scope",
1129 "-Wno-reorder",
1130 );
1131 PREBINDING = NO;
1132 WARNING_CFLAGS = (
1133 "-Wmost",
1134 "-Wno-sign-compare",
1135 "-Wno-switch",
1136 );
1137 };
1138 name = Debug;
1139 };
1140 1DEB923708733DC60010E9CD /* Release */ = {
1141 isa = XCBuildConfiguration;
1142 buildSettings = {
1143 GCC_ALTIVEC_EXTENSIONS = YES;
1144 GCC_OPTIMIZATION_LEVEL = 3;
1145 GCC_PREPROCESSOR_DEFINITIONS = "LL_DARWIN=1";
1146 GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
1147 HEADER_SEARCH_PATHS = (
1148 "../../libraries/$(arch)-darwin/include",
1149 ../../libraries/include,
1150 ../llcommon,
1151 );
1152 OTHER_CFLAGS = (
1153 "-DLL_DARWIN=1",
1154 "-DLL_RELEASE=1",
1155 "-DLL_RELEASE_FOR_DOWNLOAD=1",
1156 "-DNDEBUG",
1157 "-fconstant-cfstrings",
1158 );
1159 OTHER_CPLUSPLUSFLAGS = (
1160 "$(OTHER_CFLAGS)",
1161 "-ffor-scope",
1162 "-Wno-reorder",
1163 );
1164 PREBINDING = NO;
1165 WARNING_CFLAGS = (
1166 "-Wmost",
1167 "-Wno-sign-compare",
1168 "-Wno-switch",
1169 );
1170 };
1171 name = Release;
1172 };
1173 DA01B1ED0ADE82C400A44198 /* Debug */ = {
1174 isa = XCBuildConfiguration;
1175 buildSettings = {
1176 COPY_PHASE_STRIP = NO;
1177 GCC_DYNAMIC_NO_PIC = NO;
1178 GCC_ENABLE_FIX_AND_CONTINUE = YES;
1179 GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
1180 GCC_MODEL_TUNING = G5;
1181 GCC_OPTIMIZATION_LEVEL = 0;
1182 GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
1183 HEADER_SEARCH_PATHS = (
1184 "${PROJECT_DIR}/../../libraries/${CURRENT_ARCH}-darwin/include",
1185 "${PROJECT_DIR}/../../libraries/include",
1186 );
1187 INSTALL_PATH = "$(HOME)/bin";
1188 LIBRARY_SEARCH_PATHS = (
1189 "$(inherited)",
1190 "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
1191 "$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
1192 );
1193 LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Debug\"";
1194 LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/build/Debug\"";
1195 PREBINDING = NO;
1196 PRODUCT_NAME = TestWebClient;
1197 ZERO_LINK = YES;
1198 };
1199 name = Debug;
1200 };
1201 DA01B1EE0ADE82C400A44198 /* Release */ = {
1202 isa = XCBuildConfiguration;
1203 buildSettings = {
1204 COPY_PHASE_STRIP = YES;
1205 GCC_ENABLE_FIX_AND_CONTINUE = NO;
1206 GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
1207 GCC_MODEL_TUNING = G5;
1208 GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
1209 HEADER_SEARCH_PATHS = (
1210 "${PROJECT_DIR}/../../libraries/${CURRENT_ARCH}-darwin/include",
1211 "${PROJECT_DIR}/../../libraries/include",
1212 );
1213 INSTALL_PATH = "$(HOME)/bin";
1214 LIBRARY_SEARCH_PATHS = (
1215 "$(inherited)",
1216 "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
1217 "$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
1218 );
1219 LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Debug\"";
1220 LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/build/Debug\"";
1221 PREBINDING = NO;
1222 PRODUCT_NAME = TestWebClient;
1223 ZERO_LINK = NO;
1224 };
1225 name = Release;
1226 };
1227 FD5DF9A309C0A51D007E3F78 /* Debug */ = {
1228 isa = XCBuildConfiguration;
1229 buildSettings = {
1230 COPY_PHASE_STRIP = NO;
1231 GCC_DYNAMIC_NO_PIC = NO;
1232 GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
1233 GCC_OPTIMIZATION_LEVEL = 0;
1234 PRODUCT_NAME = "third party libs";
1235 };
1236 name = Debug;
1237 };
1238 FD5DF9A409C0A51D007E3F78 /* Release */ = {
1239 isa = XCBuildConfiguration;
1240 buildSettings = {
1241 COPY_PHASE_STRIP = YES;
1242 GCC_ENABLE_FIX_AND_CONTINUE = NO;
1243 GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
1244 PRODUCT_NAME = "third party libs";
1245 ZERO_LINK = NO;
1246 };
1247 name = Release;
1248 };
1249 FDF2E41F0ADD7B8D0003B83E /* Debug */ = {
1250 isa = XCBuildConfiguration;
1251 buildSettings = {
1252 COPY_PHASE_STRIP = NO;
1253 GCC_DYNAMIC_NO_PIC = NO;
1254 GCC_ENABLE_FIX_AND_CONTINUE = YES;
1255 GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
1256 GCC_MODEL_TUNING = G5;
1257 GCC_OPTIMIZATION_LEVEL = 0;
1258 GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
1259 HEADER_SEARCH_PATHS = (
1260 "${PROJECT_DIR}/../../libraries/${CURRENT_ARCH}-darwin/include",
1261 "${PROJECT_DIR}/../../libraries/include",
1262 );
1263 INSTALL_PATH = "$(HOME)/bin";
1264 LIBRARY_SEARCH_PATHS = (
1265 "$(inherited)",
1266 "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
1267 );
1268 LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Debug\"";
1269 PREBINDING = NO;
1270 PRODUCT_NAME = TestWebServer;
1271 ZERO_LINK = YES;
1272 };
1273 name = Debug;
1274 };
1275 FDF2E4200ADD7B8D0003B83E /* Release */ = {
1276 isa = XCBuildConfiguration;
1277 buildSettings = {
1278 COPY_PHASE_STRIP = YES;
1279 GCC_ENABLE_FIX_AND_CONTINUE = NO;
1280 GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
1281 GCC_MODEL_TUNING = G5;
1282 GCC_TREAT_NONCONFORMANT_CODE_ERRORS_AS_WARNINGS = YES;
1283 HEADER_SEARCH_PATHS = (
1284 "${PROJECT_DIR}/../../libraries/${CURRENT_ARCH}-darwin/include",
1285 "${PROJECT_DIR}/../../libraries/include",
1286 );
1287 INSTALL_PATH = "$(HOME)/bin";
1288 LIBRARY_SEARCH_PATHS = (
1289 "$(inherited)",
1290 "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
1291 );
1292 LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/build/Debug\"";
1293 PREBINDING = NO;
1294 PRODUCT_NAME = TestWebServer;
1295 ZERO_LINK = NO;
1296 };
1297 name = Release;
1298 };
1299/* End XCBuildConfiguration section */
1300
1301/* Begin XCConfigurationList section */
1302 1DEB923108733DC60010E9CD /* Build configuration list for PBXNativeTarget "MacTester" */ = {
1303 isa = XCConfigurationList;
1304 buildConfigurations = (
1305 1DEB923208733DC60010E9CD /* Debug */,
1306 1DEB923308733DC60010E9CD /* Release */,
1307 );
1308 defaultConfigurationIsVisible = 0;
1309 defaultConfigurationName = Release;
1310 };
1311 1DEB923508733DC60010E9CD /* Build configuration list for PBXProject "MacTester" */ = {
1312 isa = XCConfigurationList;
1313 buildConfigurations = (
1314 1DEB923608733DC60010E9CD /* Debug */,
1315 1DEB923708733DC60010E9CD /* Release */,
1316 );
1317 defaultConfigurationIsVisible = 0;
1318 defaultConfigurationName = Release;
1319 };
1320 DA01B1EC0ADE82C400A44198 /* Build configuration list for PBXNativeTarget "TestWebClient" */ = {
1321 isa = XCConfigurationList;
1322 buildConfigurations = (
1323 DA01B1ED0ADE82C400A44198 /* Debug */,
1324 DA01B1EE0ADE82C400A44198 /* Release */,
1325 );
1326 defaultConfigurationIsVisible = 0;
1327 defaultConfigurationName = Release;
1328 };
1329 FD5DF9A209C0A51D007E3F78 /* Build configuration list for PBXAggregateTarget "third party libs" */ = {
1330 isa = XCConfigurationList;
1331 buildConfigurations = (
1332 FD5DF9A309C0A51D007E3F78 /* Debug */,
1333 FD5DF9A409C0A51D007E3F78 /* Release */,
1334 );
1335 defaultConfigurationIsVisible = 0;
1336 defaultConfigurationName = Release;
1337 };
1338 FDF2E41E0ADD7B8D0003B83E /* Build configuration list for PBXNativeTarget "TestWebServer" */ = {
1339 isa = XCConfigurationList;
1340 buildConfigurations = (
1341 FDF2E41F0ADD7B8D0003B83E /* Debug */,
1342 FDF2E4200ADD7B8D0003B83E /* Release */,
1343 );
1344 defaultConfigurationIsVisible = 0;
1345 defaultConfigurationName = Release;
1346 };
1347/* End XCConfigurationList section */
1348 };
1349 rootObject = 08FB7793FE84155DC02AAC07 /* Project object */;
1350}
diff --git a/linden/indra/test/assembly_tut.cpp b/linden/indra/test/assembly_tut.cpp
new file mode 100644
index 0000000..0b5aeb6
--- /dev/null
+++ b/linden/indra/test/assembly_tut.cpp
@@ -0,0 +1,86 @@
1/**
2 * @file assembly_tut.cpp
3 * @brief Tests for lscript/lscript_execute_mono
4 *
5 * $LicenseInfo:firstyear=2007&license=internal$
6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc.
8 *
9 * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of
10 * this source code is governed by the Linden Lab Source Code Disclosure
11 * Agreement ("Agreement") previously entered between you and Linden
12 * Lab. By accessing, using, copying, modifying or distributing this
13 * software, you acknowledge that you have been informed of your
14 * obligations under the Agreement and agree to abide by those obligations.
15 *
16 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
17 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
18 * COMPLETENESS OR PERFORMANCE.
19 * $/LicenseInfo$
20 */
21
22#include "linden_common.h"
23#include "lltut.h"
24
25#include "lscript_execute_mono/assembly.cpp"
26
27#include <string>
28#include <map>
29
30
31namespace tut
32{
33 struct assembly_data
34 {
35 };
36 typedef test_group<assembly_data> assembly_test;
37 typedef assembly_test::object assembly_object;
38 tut::assembly_test assembly("assembly");
39
40 // Create some random junk, its not important at the moment.
41 U8* createTestBuffer(U32 size)
42 {
43 U8* result = new U8[size];
44 memset(result, 0, size);
45 return result;
46 }
47
48 template<> template<>
49 void assembly_object::test<1>()
50 {
51 ensure("Assembly map not empty before creation", sAssemblyMap.empty());
52 {
53 U32 size = 10;
54 U8* buffer = createTestBuffer(size);
55 boost::intrusive_ptr<LLAssembly> assembly1 = LLAssembly::create("Assembly1",
56 buffer, size);
57
58 ensure("created assembly with ref count of 1",
59 assembly1->mRefCount == 1);
60
61 ensure("sAssemblyMap.size() == 1", sAssemblyMap.size() == 1);
62
63 size = 200;
64 buffer = createTestBuffer(size);
65 boost::intrusive_ptr<LLAssembly> assembly2 = LLAssembly::create("Assembly2",
66 buffer, size);
67
68 ensure("created second assembly with ref count == 1",
69 assembly2->mRefCount == 1);
70
71 ensure("sAssemblyMap.size() == 2", sAssemblyMap.size() == 2);
72
73 size = 10;
74 buffer = createTestBuffer(size);
75 boost::intrusive_ptr<LLAssembly> assembly3 = LLAssembly::create("Assembly1",
76 buffer, size);
77
78 ensure("created with ref count of 2",
79 assembly3->mRefCount == 2);
80
81 ensure("sAssemblyMap.size() == 2", sAssemblyMap.size() == 2);
82 }
83
84 ensure("Assembly map not empty after creation", sAssemblyMap.empty());
85 }
86}
diff --git a/linden/indra/test/common.cpp b/linden/indra/test/common.cpp
index 0bf0de4..b4235ed 100644
--- a/linden/indra/test/common.cpp
+++ b/linden/indra/test/common.cpp
@@ -49,6 +49,11 @@
49#include "llsdserialize.h" 49#include "llsdserialize.h"
50#include "u64.h" 50#include "u64.h"
51 51
52#if LL_WINDOWS
53// disable overflow warnings
54#pragma warning(disable: 4307)
55#endif
56
52namespace tut 57namespace tut
53{ 58{
54 struct sd_data 59 struct sd_data
@@ -369,6 +374,9 @@ namespace tut
369 template<> template<> 374 template<> template<>
370 void sd_object::test<14>() 375 void sd_object::test<14>()
371 { 376 {
377//#if LL_WINDOWS && _MSC_VER >= 1400
378// skip_fail("Fails on VS2005 due to broken LLSDSerialize::fromNotation() parser.");
379//#endif
372 std::string param = "[{'version':i1},{'data':{'binary_bucket':b(0)\"\"},'from_id':u3c115e51-04f4-523c-9fa6-98aff1034730,'from_name':'Phoenix Linden','id':u004e45e5-5576-277a-fba7-859d6a4cb5c8,'message':'hey','offline':i0,'timestamp':i0,'to_id':u3c5f1bb4-5182-7546-6401-1d329b4ff2f8,'type':i0},{'agent_id':u3c115e51-04f4-523c-9fa6-98aff1034730,'god_level':i0,'limited_to_estate':i1}]"; 380 std::string param = "[{'version':i1},{'data':{'binary_bucket':b(0)\"\"},'from_id':u3c115e51-04f4-523c-9fa6-98aff1034730,'from_name':'Phoenix Linden','id':u004e45e5-5576-277a-fba7-859d6a4cb5c8,'message':'hey','offline':i0,'timestamp':i0,'to_id':u3c5f1bb4-5182-7546-6401-1d329b4ff2f8,'type':i0},{'agent_id':u3c115e51-04f4-523c-9fa6-98aff1034730,'god_level':i0,'limited_to_estate':i1}]";
373 std::istringstream istr; 381 std::istringstream istr;
374 istr.str(param); 382 istr.str(param);
@@ -548,7 +556,7 @@ namespace tut
548 ensure_equals("str_to_U64 converted 2.1", val, result); 556 ensure_equals("str_to_U64 converted 2.1", val, result);
549 557
550 val = U64L(0); // empty string 558 val = U64L(0); // empty string
551 result = str_to_U64(""); 559 result = str_to_U64(LLStringUtil::null);
552 ensure_equals("str_to_U64 converted 2.2", val, result); 560 ensure_equals("str_to_U64 converted 2.2", val, result);
553 561
554 val = U64L(0); // 0 562 val = U64L(0); // 0
diff --git a/linden/indra/test/files.lst b/linden/indra/test/files.lst
deleted file mode 100644
index b335dbf..0000000
--- a/linden/indra/test/files.lst
+++ /dev/null
@@ -1,51 +0,0 @@
1test/common.cpp
2test/inventory.cpp
3test/io.cpp
4test/llapp_tut.cpp
5test/llbase64_tut.cpp
6test/llblowfish_tut.cpp
7test/llbuffer_tut.cpp
8test/llcontrol_tut.cpp
9test/lldate_tut.cpp
10test/llerror_tut.cpp
11test/llhost_tut.cpp
12test/llhttpdate_tut.cpp
13test/llhttpclient_tut.cpp
14test/llhttpnode_tut.cpp
15test/llinventoryparcel_tut.cpp
16test/lliohttpserver_tut.cpp
17test/lljoint_tut.cpp
18test/llmime_tut.cpp
19test/llmessageconfig_tut.cpp
20test/llmessagetemplateparser_tut.cpp
21test/llnamevalue_tut.cpp
22test/llpermissions_tut.cpp
23test/llpipeutil.cpp
24test/llquaternion_tut.cpp
25test/llrandom_tut.cpp
26test/llsaleinfo_tut.cpp
27test/llsdmessagebuilder_tut.cpp
28test/llsdmessagereader_tut.cpp
29test/llsd_new_tut.cpp
30test/llsdserialize_tut.cpp
31test/llsdutil_tut.cpp
32test/llservicebuilder_tut.cpp
33test/llstreamtools_tut.cpp
34test/lltemplatemessagebuilder_tut.cpp
35test/lltiming_tut.cpp
36test/lltut.cpp
37test/lluri_tut.cpp
38test/lluuidhashmap_tut.cpp
39test/llxfer_tut.cpp
40test/math.cpp
41test/message_tut.cpp
42test/prim_linkability_tut.cpp
43test/reflection_tut.cpp
44test/test.cpp
45test/v2math_tut.cpp
46test/v3color_tut.cpp
47test/v3dmath_tut.cpp
48test/v3math_tut.cpp
49test/v4color_tut.cpp
50test/v4coloru_tut.cpp
51test/v4math_tut.cpp
diff --git a/linden/indra/test/inventory.cpp b/linden/indra/test/inventory.cpp
index a4a4599..97a36d8 100644
--- a/linden/indra/test/inventory.cpp
+++ b/linden/indra/test/inventory.cpp
@@ -36,6 +36,11 @@
36#include "llinventory.h" 36#include "llinventory.h"
37#include "llsd.h" 37#include "llsd.h"
38 38
39#if LL_WINDOWS
40// disable unreachable code warnings
41#pragma warning(disable: 4702)
42#endif
43
39LLPointer<LLInventoryItem> create_random_inventory_item() 44LLPointer<LLInventoryItem> create_random_inventory_item()
40{ 45{
41 LLUUID item_id; 46 LLUUID item_id;
@@ -67,8 +72,8 @@ LLPointer<LLInventoryItem> create_random_inventory_item()
67 asset_id, 72 asset_id,
68 LLAssetType::AT_OBJECT, 73 LLAssetType::AT_OBJECT,
69 LLInventoryType::IT_ATTACHMENT, 74 LLInventoryType::IT_ATTACHMENT,
70 "Sample Object", 75 std::string("Sample Object"),
71 "Used for Testing", 76 std::string("Used for Testing"),
72 sale_info, 77 sale_info,
73 flags, 78 flags,
74 creation); 79 creation);
@@ -86,7 +91,7 @@ LLPointer<LLInventoryCategory> create_random_inventory_cat()
86 item_id, 91 item_id,
87 parent_id, 92 parent_id,
88 LLAssetType::AT_NONE, 93 LLAssetType::AT_NONE,
89 "Sample category"); 94 std::string("Sample category"));
90 return cat; 95 return cat;
91} 96}
92 97
@@ -105,10 +110,10 @@ namespace tut
105 template<> template<> 110 template<> template<>
106 void inventory_object::test<1>() 111 void inventory_object::test<1>()
107 { 112 {
108 LLInventoryType::EType retType = LLInventoryType::lookup("sound"); 113 LLInventoryType::EType retType = LLInventoryType::lookup(std::string("sound"));
109 ensure("1.LLInventoryType::lookup(char*) failed", retType == LLInventoryType::IT_SOUND); 114 ensure("1.LLInventoryType::lookup(char*) failed", retType == LLInventoryType::IT_SOUND);
110 115
111 retType = LLInventoryType::lookup("snapshot"); 116 retType = LLInventoryType::lookup(std::string("snapshot"));
112 ensure("2.LLInventoryType::lookup(char*) failed", retType == LLInventoryType::IT_SNAPSHOT); 117 ensure("2.LLInventoryType::lookup(char*) failed", retType == LLInventoryType::IT_SNAPSHOT);
113 } 118 }
114 119
@@ -173,7 +178,7 @@ namespace tut
173 new_parent_id.generate(); 178 new_parent_id.generate();
174 src->setParent(new_parent_id); 179 src->setParent(new_parent_id);
175 180
176 LLString new_name = "LindenLab"; 181 std::string new_name = "LindenLab";
177 src->rename(new_name); 182 src->rename(new_name);
178 183
179 src->setType(LLAssetType::AT_SOUND); 184 src->setType(LLAssetType::AT_SOUND);
@@ -182,7 +187,7 @@ namespace tut
182 new_asset_id.generate(); 187 new_asset_id.generate();
183 188
184 src->setAssetUUID(new_asset_id); 189 src->setAssetUUID(new_asset_id);
185 LLString new_desc = "SecondLife Testing"; 190 std::string new_desc = "SecondLife Testing";
186 src->setDescription(new_desc); 191 src->setDescription(new_desc);
187 192
188 S32 new_price = rand(); 193 S32 new_price = rand();
@@ -244,7 +249,7 @@ namespace tut
244 new_parent_id.generate(); 249 new_parent_id.generate();
245 src->setParent(new_parent_id); 250 src->setParent(new_parent_id);
246 251
247 LLString new_name = "LindenLab"; 252 std::string new_name = "LindenLab";
248 src->rename(new_name); 253 src->rename(new_name);
249 254
250 src->setType(LLAssetType::AT_SOUND); 255 src->setType(LLAssetType::AT_SOUND);
@@ -253,7 +258,7 @@ namespace tut
253 new_asset_id.generate(); 258 new_asset_id.generate();
254 259
255 src->setAssetUUID(new_asset_id); 260 src->setAssetUUID(new_asset_id);
256 LLString new_desc = "SecondLife Testing"; 261 std::string new_desc = "SecondLife Testing";
257 src->setDescription(new_desc); 262 src->setDescription(new_desc);
258 263
259 S32 new_price = rand(); 264 S32 new_price = rand();
@@ -453,7 +458,6 @@ namespace tut
453 ensure_equals("9.sale price::getSalePrice() failed price", src1->getSaleInfo().getSalePrice(), src2->getSaleInfo().getSalePrice()); 458 ensure_equals("9.sale price::getSalePrice() failed price", src1->getSaleInfo().getSalePrice(), src2->getSaleInfo().getSalePrice());
454 ensure_equals("10.name::getName() failed", src1->getName(), src2->getName()); 459 ensure_equals("10.name::getName() failed", src1->getName(), src2->getName());
455 ensure_equals("11.description::getDescription() failed", src1->getDescription(), src2->getDescription()); 460 ensure_equals("11.description::getDescription() failed", src1->getDescription(), src2->getDescription());
456 //skip_fail("12.creation::getCreationDate()");
457 ensure_equals("12.creation::getCreationDate() failed", src1->getCreationDate(), src2->getCreationDate()); 461 ensure_equals("12.creation::getCreationDate() failed", src1->getCreationDate(), src2->getCreationDate());
458 } 462 }
459 463
diff --git a/linden/indra/test/io.cpp b/linden/indra/test/io.cpp
index 408b7c8..50df73c 100644
--- a/linden/indra/test/io.cpp
+++ b/linden/indra/test/io.cpp
@@ -36,7 +36,7 @@
36 36
37#include <iterator> 37#include <iterator>
38 38
39#include <apr-1/apr_pools.h> 39#include "apr_pools.h"
40 40
41#include "llbuffer.h" 41#include "llbuffer.h"
42#include "llbufferstream.h" 42#include "llbufferstream.h"
@@ -706,6 +706,9 @@ namespace tut
706 template<> template<> 706 template<> template<>
707 void bas_object::test<10>() 707 void bas_object::test<10>()
708 { 708 {
709//#if LL_WINDOWS && _MSC_VER >= 1400
710// skip_fail("Fails on VS2005 due to broken LLSDSerialize::fromNotation() parser.");
711//#endif
709 const char LOGIN_STREAM[] = "{'method':'login', 'parameter': [ {" 712 const char LOGIN_STREAM[] = "{'method':'login', 'parameter': [ {"
710 "'uri': 'sl-am:kellys.region.siva.lindenlab.com/location?start=url&px=128&py=128&pz=128&lx=0&ly=0&lz=0'}, " 713 "'uri': 'sl-am:kellys.region.siva.lindenlab.com/location?start=url&px=128&py=128&pz=128&lx=0&ly=0&lz=0'}, "
711 "{'version': i1}, {'texture_data': [ '61d724fb-ad79-f637-2186-5cf457560daa', '6e38b9be-b7cc-e77a-8aec-029a42b0b416', " 714 "{'version': i1}, {'texture_data': [ '61d724fb-ad79-f637-2186-5cf457560daa', '6e38b9be-b7cc-e77a-8aec-029a42b0b416', "
@@ -791,6 +794,9 @@ namespace tut
791 template<> template<> 794 template<> template<>
792 void bas_object::test<12>() 795 void bas_object::test<12>()
793 { 796 {
797//#if LL_WINDOWS && _MSC_VER >= 1400
798// skip_fail("Fails on VS2005 due to broken LLSDSerialize::fromNotation() parser.");
799//#endif
794 std::string val = "{!'foo':[i1,'hi',{@'bar'#:[$i2%,^'baz'&]*}+]=}"; 800 std::string val = "{!'foo':[i1,'hi',{@'bar'#:[$i2%,^'baz'&]*}+]=}";
795 std::istringstream istr; 801 std::istringstream istr;
796 istr.str(val); 802 istr.str(val);
@@ -1309,6 +1315,9 @@ namespace tut
1309 template<> template<> 1315 template<> template<>
1310 void rpc_server_object::test<2>() 1316 void rpc_server_object::test<2>()
1311 { 1317 {
1318//#if LL_WINDOWS && _MSC_VER >= 1400
1319// skip_fail("Fails on VS2005 due to broken LLSDSerialize::fromNotation() parser.");
1320//#endif
1312 std::string uri("sl-am:66.150.244.180:12035/location?start=region&px=70.9247&py=254.378&pz=38.7304&lx=-0.043753&ly=-0.999042&lz=0"); 1321 std::string uri("sl-am:66.150.244.180:12035/location?start=region&px=70.9247&py=254.378&pz=38.7304&lx=-0.043753&ly=-0.999042&lz=0");
1313 std::stringstream stream; 1322 std::stringstream stream;
1314 stream << "{'task_id':ucc706f2d-0b68-68f8-11a4-f1043ff35ca0}\n{\n\tname\tObject|\n\tpermissions 0\n}"; 1323 stream << "{'task_id':ucc706f2d-0b68-68f8-11a4-f1043ff35ca0}\n{\n\tname\tObject|\n\tpermissions 0\n}";
@@ -1397,6 +1406,9 @@ namespace tut
1397 template<> template<> 1406 template<> template<>
1398 void rpc_server_object::test<3>() 1407 void rpc_server_object::test<3>()
1399 { 1408 {
1409//#if LL_WINDOWS && _MSC_VER >= 1400
1410// skip_fail("Fails on VS2005 due to broken LLSDSerialize::fromNotation() parser.");
1411//#endif
1400 std::string uri("sl-am:66.150.244.180:12035/location?start=region&px=70.9247&py=254.378&pz=38.7304&lx=-0.043753&ly=-0.999042&lz=0"); 1412 std::string uri("sl-am:66.150.244.180:12035/location?start=region&px=70.9247&py=254.378&pz=38.7304&lx=-0.043753&ly=-0.999042&lz=0");
1401 1413
1402 LLBufferArray buffer; 1414 LLBufferArray buffer;
diff --git a/linden/indra/test/llapp_tut.cpp b/linden/indra/test/llapp_tut.cpp
index a233dbf..fc069f8 100644
--- a/linden/indra/test/llapp_tut.cpp
+++ b/linden/indra/test/llapp_tut.cpp
@@ -67,7 +67,7 @@ namespace tut
67 void application_object_t::test<1>() 67 void application_object_t::test<1>()
68 { 68 {
69 LLSD defaults; 69 LLSD defaults;
70 defaults["template"] = "../../scripts/messages/message_template.msg"; 70 defaults["template"] = "../../../scripts/messages/message_template.msg";
71 defaults["configdir"] = "."; 71 defaults["configdir"] = ".";
72 defaults["db_host"] = "mysql.durga.lindenlab.com"; 72 defaults["db_host"] = "mysql.durga.lindenlab.com";
73 defaults["db_user"] = "linden"; 73 defaults["db_user"] = "linden";
diff --git a/linden/indra/test/llassetuploadqueue_tut.cpp b/linden/indra/test/llassetuploadqueue_tut.cpp
new file mode 100644
index 0000000..13c8fea
--- /dev/null
+++ b/linden/indra/test/llassetuploadqueue_tut.cpp
@@ -0,0 +1,200 @@
1/**
2 * @file asset_upload_queue_tut.cpp
3 * @brief Tests for newview/llassetuploadqueue.cpp
4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#include "linden_common.h"
33#include "lltut.h"
34
35#include "mock_http_client.h"
36#include "../newview/llassetuploadqueue.cpp"
37
38// Mock implementation.
39LLAssetUploadResponder::LLAssetUploadResponder(const LLSD& post_data,
40 const LLUUID& vfile_id,
41 LLAssetType::EType asset_type)
42{
43}
44
45LLAssetUploadResponder::LLAssetUploadResponder(const LLSD& post_data, const std::string& file_name)
46{
47}
48
49LLAssetUploadResponder::~LLAssetUploadResponder()
50{
51}
52
53void LLAssetUploadResponder::error(U32 statusNum, const std::string& reason)
54{
55}
56
57void LLAssetUploadResponder::result(const LLSD& content)
58{
59}
60
61void LLAssetUploadResponder::uploadUpload(const LLSD& content)
62{
63}
64
65void LLAssetUploadResponder::uploadComplete(const LLSD& content)
66{
67}
68
69void LLAssetUploadResponder::uploadFailure(const LLSD& content)
70{
71}
72
73LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data,
74 const LLUUID& vfile_id,
75 LLAssetType::EType asset_type) :
76 LLAssetUploadResponder(post_data, vfile_id, asset_type)
77{
78}
79
80LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data,
81 const std::string& file_name) :
82 LLAssetUploadResponder(post_data, file_name)
83{
84}
85
86LLUpdateTaskInventoryResponder::LLUpdateTaskInventoryResponder(const LLSD& post_data,
87 const std::string& file_name,
88 const LLUUID& queue_id) :
89 LLAssetUploadResponder(post_data, file_name)
90{
91}
92
93void LLUpdateTaskInventoryResponder::uploadComplete(const LLSD& content)
94{
95}
96
97namespace tut
98{
99 class asset_upload_queue_test_data : public MockHttpClient {};
100 typedef test_group<asset_upload_queue_test_data> asset_upload_queue_test;
101 typedef asset_upload_queue_test::object asset_upload_queue_object;
102 tut::asset_upload_queue_test asset_upload_queue("asset_upload_queue");
103
104 void queue(LLAssetUploadQueue& q, const std::string& filename)
105 {
106 LLUUID task_id;
107 LLUUID item_id;
108 BOOL is_running = FALSE;
109 BOOL is_target_mono = TRUE;
110 LLUUID queue_id;
111 q.queue(filename, task_id, item_id, is_running, is_target_mono, queue_id);
112 }
113
114 class LLTestSupplier : public LLAssetUploadQueueSupplier
115 {
116 public:
117
118 void set(LLAssetUploadQueue* queue) {mQueue = queue;}
119
120 virtual LLAssetUploadQueue* get() const
121 {
122 return mQueue;
123 }
124
125 private:
126 LLAssetUploadQueue* mQueue;
127 };
128
129 template<> template<>
130 void asset_upload_queue_object::test<1>()
131 {
132 setupTheServer();
133 reset();
134 LLTestSupplier* supplier = new LLTestSupplier();
135 LLAssetUploadQueue q("http://localhost:8888/test/success", supplier);
136 supplier->set(&q);
137 queue(q, "foo.bar");
138 ensure("upload queue not empty before request", q.isEmpty());
139 runThePump(10);
140 ensure("upload queue not empty after request", q.isEmpty());
141 }
142
143 template<> template<>
144 void asset_upload_queue_object::test<2>()
145 {
146 reset();
147 LLTestSupplier* supplier = new LLTestSupplier();
148 LLAssetUploadQueue q("http://localhost:8888/test/error", supplier);
149 supplier->set(&q);
150 queue(q, "foo.bar");
151 ensure("upload queue not empty before request", q.isEmpty());
152 runThePump(10);
153 ensure("upload queue not empty after request", q.isEmpty());
154 }
155
156 template<> template<>
157 void asset_upload_queue_object::test<3>()
158 {
159 reset();
160 LLTestSupplier* supplier = new LLTestSupplier();
161 LLAssetUploadQueue q("http://localhost:8888/test/timeout", supplier);
162 supplier->set(&q);
163 queue(q, "foo.bar");
164 ensure("upload queue not empty before request", q.isEmpty());
165 runThePump(10);
166 ensure("upload queue not empty after request", q.isEmpty());
167 }
168
169 template<> template<>
170 void asset_upload_queue_object::test<4>()
171 {
172 reset();
173 LLTestSupplier* supplier = new LLTestSupplier();
174 LLAssetUploadQueue q("http://localhost:8888/test/success", supplier);
175 supplier->set(&q);
176 queue(q, "foo.bar");
177 queue(q, "baz.bar");
178 ensure("upload queue empty before request", !q.isEmpty());
179 runThePump(10);
180 ensure("upload queue not empty before request", q.isEmpty());
181 runThePump(10);
182 ensure("upload queue not empty after request", q.isEmpty());
183 }
184
185 template<> template<>
186 void asset_upload_queue_object::test<5>()
187 {
188 reset();
189 LLTestSupplier* supplier = new LLTestSupplier();
190 LLAssetUploadQueue q("http://localhost:8888/test/success", supplier);
191 supplier->set(&q);
192 queue(q, "foo.bar");
193 runThePump(10);
194 ensure("upload queue not empty before request", q.isEmpty());
195 queue(q, "baz.bar");
196 ensure("upload queue not empty after request", q.isEmpty());
197 runThePump(10);
198 killServer();
199 }
200}
diff --git a/linden/indra/test/llblowfish_tut.cpp b/linden/indra/test/llblowfish_tut.cpp
index 78253cd..ac40896 100644
--- a/linden/indra/test/llblowfish_tut.cpp
+++ b/linden/indra/test/llblowfish_tut.cpp
@@ -57,8 +57,8 @@ namespace tut
57 mInputSize = 36; 57 mInputSize = 36;
58 } 58 }
59 59
60 bool matchFile(const char* filename, 60 bool matchFile(const std::string& filename,
61 const std::string& data) 61 const std::string& data)
62 { 62 {
63 LLFILE* fp = LLFile::fopen(filename, "rb"); 63 LLFILE* fp = LLFile::fopen(filename, "rb");
64 if (!fp) 64 if (!fp)
@@ -66,7 +66,7 @@ namespace tut
66 // sometimes test is run inside the indra directory 66 // sometimes test is run inside the indra directory
67 std::string path = "test/"; 67 std::string path = "test/";
68 path += filename; 68 path += filename;
69 fp = LLFile::fopen(path.c_str(), "rb"); 69 fp = LLFile::fopen(path, "rb");
70 } 70 }
71 if (!fp) 71 if (!fp)
72 { 72 {
@@ -93,6 +93,9 @@ namespace tut
93 template<> template<> 93 template<> template<>
94 void blowfish_object::test<1>() 94 void blowfish_object::test<1>()
95 { 95 {
96#if !LL_LINUX
97 skip_fail("Blowfish only supported on Linux.");
98#else
96 LLUUID blank; 99 LLUUID blank;
97 LLBlowfishCipher cipher(&blank.mData[0], UUID_BYTES); 100 LLBlowfishCipher cipher(&blank.mData[0], UUID_BYTES);
98 101
@@ -105,11 +108,15 @@ namespace tut
105 dst_len = cipher.requiredEncryptionSpace(8); 108 dst_len = cipher.requiredEncryptionSpace(8);
106 ensure("encryption space 8", 109 ensure("encryption space 8",
107 (dst_len == 16) ); 110 (dst_len == 16) );
111#endif // !LL_LINUX
108 } 112 }
109 113
110 template<> template<> 114 template<> template<>
111 void blowfish_object::test<2>() 115 void blowfish_object::test<2>()
112 { 116 {
117#if !LL_LINUX
118 skip_fail("Blowfish only supported on Linux.");
119#else
113 LLUUID blank; 120 LLUUID blank;
114 LLBlowfishCipher cipher(&blank.mData[0], UUID_BYTES); 121 LLBlowfishCipher cipher(&blank.mData[0], UUID_BYTES);
115 122
@@ -123,12 +130,16 @@ namespace tut
123 result.resize(count); 130 result.resize(count);
124 131
125 ensure("encrypt null key", matchFile("blowfish.1.bin", result)); 132 ensure("encrypt null key", matchFile("blowfish.1.bin", result));
133#endif // !LL_LINUX
126 } 134 }
127 135
128 template<> template<> 136 template<> template<>
129 void blowfish_object::test<3>() 137 void blowfish_object::test<3>()
130 { 138 {
131 // same as base64 test id 139#if !LL_LINUX
140 skip_fail("Blowfish only supported on Linux.");
141#else
142 // same as base64 test id
132 LLUUID id("526a1e07-a19d-baed-84c4-ff08a488d15e"); 143 LLUUID id("526a1e07-a19d-baed-84c4-ff08a488d15e");
133 LLBlowfishCipher cipher(&id.mData[0], UUID_BYTES); 144 LLBlowfishCipher cipher(&id.mData[0], UUID_BYTES);
134 145
@@ -142,5 +153,6 @@ namespace tut
142 result.resize(count); 153 result.resize(count);
143 154
144 ensure("encrypt real key", matchFile("blowfish.2.bin", result)); 155 ensure("encrypt real key", matchFile("blowfish.2.bin", result));
156#endif // !LL_LINUX
145 } 157 }
146} 158}
diff --git a/linden/indra/test/llcontrol_tut.cpp b/linden/indra/test/llcontrol_tut.cpp
index aabe205..cdf916e 100644
--- a/linden/indra/test/llcontrol_tut.cpp
+++ b/linden/indra/test/llcontrol_tut.cpp
@@ -44,8 +44,8 @@ namespace tut
44 struct control_group 44 struct control_group
45 { 45 {
46 LLControlGroup* mCG; 46 LLControlGroup* mCG;
47 LLString mTestConfigDir; 47 std::string mTestConfigDir;
48 LLString mTestConfigFile; 48 std::string mTestConfigFile;
49 static bool mListenerFired; 49 static bool mListenerFired;
50 control_group() 50 control_group()
51 { 51 {
@@ -57,7 +57,7 @@ namespace tut
57 oStr << "/tmp/llcontrol-test-" << random << "/"; 57 oStr << "/tmp/llcontrol-test-" << random << "/";
58 mTestConfigDir = oStr.str(); 58 mTestConfigDir = oStr.str();
59 mTestConfigFile = mTestConfigDir + "settings.xml"; 59 mTestConfigFile = mTestConfigDir + "settings.xml";
60 LLFile::mkdir(mTestConfigDir.c_str()); 60 LLFile::mkdir(mTestConfigDir);
61 LLSD config; 61 LLSD config;
62 config["TestSetting"]["Comment"] = "Dummy setting used for testing"; 62 config["TestSetting"]["Comment"] = "Dummy setting used for testing";
63 config["TestSetting"]["Persist"] = 1; 63 config["TestSetting"]["Persist"] = 1;
@@ -72,7 +72,7 @@ namespace tut
72 } 72 }
73 void writeSettingsFile(const LLSD& config) 73 void writeSettingsFile(const LLSD& config)
74 { 74 {
75 llofstream file(mTestConfigFile.c_str()); 75 llofstream file(mTestConfigFile);
76 if (file.is_open()) 76 if (file.is_open())
77 { 77 {
78 LLSDSerialize::toPrettyXML(config, file); 78 LLSDSerialize::toPrettyXML(config, file);
@@ -109,7 +109,7 @@ namespace tut
109 mCG->setU32("TestSetting", 13); 109 mCG->setU32("TestSetting", 13);
110 ensure_equals("value of changed setting", mCG->getU32("TestSetting"), 13); 110 ensure_equals("value of changed setting", mCG->getU32("TestSetting"), 13);
111 LLControlGroup test_cg; 111 LLControlGroup test_cg;
112 LLString temp_test_file = (mTestConfigDir + "setting_llsd_temp.xml"); 112 std::string temp_test_file = (mTestConfigDir + "setting_llsd_temp.xml");
113 mCG->saveToFile(temp_test_file.c_str(), TRUE); 113 mCG->saveToFile(temp_test_file.c_str(), TRUE);
114 results = test_cg.loadFromFile(temp_test_file.c_str()); 114 results = test_cg.loadFromFile(temp_test_file.c_str());
115 ensure("number of changed settings loaded", (results == 1)); 115 ensure("number of changed settings loaded", (results == 1));
@@ -126,7 +126,7 @@ namespace tut
126 control->setValue(new_value, FALSE); 126 control->setValue(new_value, FALSE);
127 ensure_equals("value of changed setting", mCG->getU32("TestSetting"), 13); 127 ensure_equals("value of changed setting", mCG->getU32("TestSetting"), 13);
128 LLControlGroup test_cg; 128 LLControlGroup test_cg;
129 LLString temp_test_file = (mTestConfigDir + "setting_llsd_persist_temp.xml"); 129 std::string temp_test_file = (mTestConfigDir + "setting_llsd_persist_temp.xml");
130 mCG->saveToFile(temp_test_file.c_str(), TRUE); 130 mCG->saveToFile(temp_test_file.c_str(), TRUE);
131 results = test_cg.loadFromFile(temp_test_file.c_str()); 131 results = test_cg.loadFromFile(temp_test_file.c_str());
132 //If we haven't changed any settings, then we shouldn't have any settings to load 132 //If we haven't changed any settings, then we shouldn't have any settings to load
diff --git a/linden/indra/test/lldir_tut.cpp b/linden/indra/test/lldir_tut.cpp
new file mode 100644
index 0000000..99f4cd3
--- /dev/null
+++ b/linden/indra/test/lldir_tut.cpp
@@ -0,0 +1,264 @@
1/**
2 * @file lldir_tut.cpp
3 * @date 2008-05
4 * @brief LLDir test cases.
5 *
6 * $LicenseInfo:firstyear=2008&license=viewergpl$
7 *
8 * Copyright (c) 2008, Linden Research, Inc.
9 *
10 * Second Life Viewer Source Code
11 * The source code in this file ("Source Code") is provided by Linden Lab
12 * to you under the terms of the GNU General Public License, version 2.0
13 * ("GPL"), unless you have obtained a separate licensing agreement
14 * ("Other License"), formally executed by you and Linden Lab. Terms of
15 * the GPL can be found in doc/GPL-license.txt in this distribution, or
16 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
17 *
18 * There are special exceptions to the terms and conditions of the GPL as
19 * it is applied to this Source Code. View the full text of the exception
20 * in the file doc/FLOSS-exception.txt in this software distribution, or
21 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
22 *
23 * By copying, modifying or distributing this software, you acknowledge
24 * that you have read and understood your obligations described above,
25 * and agree to abide by those obligations.
26 *
27 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
28 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
29 * COMPLETENESS OR PERFORMANCE.
30 * $/LicenseInfo$
31 */
32
33#include <tut/tut.h>
34#include "linden_common.h"
35#include "lltut.h"
36
37#include "lldir.h"
38
39namespace tut
40{
41 struct LLDirTest
42 {
43 };
44 typedef test_group<LLDirTest> LLDirTest_t;
45 typedef LLDirTest_t::object LLDirTest_object_t;
46 tut::LLDirTest_t tut_LLDirTest("LLDir");
47
48 template<> template<>
49 void LLDirTest_object_t::test<1>()
50 // getDirDelimiter
51 {
52 ensure("getDirDelimiter", !gDirUtilp->getDirDelimiter().empty());
53 }
54
55 template<> template<>
56 void LLDirTest_object_t::test<2>()
57 // getBaseFileName
58 {
59 std::string delim = gDirUtilp->getDirDelimiter();
60 std::string rawFile = "foo";
61 std::string rawFileExt = "foo.bAr";
62 std::string rawFileNullExt = "foo.";
63 std::string rawExt = ".bAr";
64 std::string rawDot = ".";
65 std::string pathNoExt = "aa" + delim + "bb" + delim + "cc" + delim + "dd" + delim + "ee";
66 std::string pathExt = pathNoExt + ".eXt";
67 std::string dottedPathNoExt = "aa" + delim + "bb" + delim + "cc.dd" + delim + "ee";
68 std::string dottedPathExt = dottedPathNoExt + ".eXt";
69
70 // foo[.bAr]
71
72 ensure_equals("getBaseFileName/r-no-ext/no-strip-exten",
73 gDirUtilp->getBaseFileName(rawFile, false),
74 "foo");
75
76 ensure_equals("getBaseFileName/r-no-ext/strip-exten",
77 gDirUtilp->getBaseFileName(rawFile, true),
78 "foo");
79
80 ensure_equals("getBaseFileName/r-ext/no-strip-exten",
81 gDirUtilp->getBaseFileName(rawFileExt, false),
82 "foo.bAr");
83
84 ensure_equals("getBaseFileName/r-ext/strip-exten",
85 gDirUtilp->getBaseFileName(rawFileExt, true),
86 "foo");
87
88 // foo.
89
90 ensure_equals("getBaseFileName/rn-no-ext/no-strip-exten",
91 gDirUtilp->getBaseFileName(rawFileNullExt, false),
92 "foo.");
93
94 ensure_equals("getBaseFileName/rn-no-ext/strip-exten",
95 gDirUtilp->getBaseFileName(rawFileNullExt, true),
96 "foo");
97
98 // .bAr
99 // interesting case - with no basename, this IS the basename, not the extension.
100
101 ensure_equals("getBaseFileName/e-ext/no-strip-exten",
102 gDirUtilp->getBaseFileName(rawExt, false),
103 ".bAr");
104
105 ensure_equals("getBaseFileName/e-ext/strip-exten",
106 gDirUtilp->getBaseFileName(rawExt, true),
107 ".bAr");
108
109 // .
110
111 ensure_equals("getBaseFileName/d/no-strip-exten",
112 gDirUtilp->getBaseFileName(rawDot, false),
113 ".");
114
115 ensure_equals("getBaseFileName/d/strip-exten",
116 gDirUtilp->getBaseFileName(rawDot, true),
117 ".");
118
119 // aa/bb/cc/dd/ee[.eXt]
120
121 ensure_equals("getBaseFileName/no-ext/no-strip-exten",
122 gDirUtilp->getBaseFileName(pathNoExt, false),
123 "ee");
124
125 ensure_equals("getBaseFileName/no-ext/strip-exten",
126 gDirUtilp->getBaseFileName(pathNoExt, true),
127 "ee");
128
129 ensure_equals("getBaseFileName/ext/no-strip-exten",
130 gDirUtilp->getBaseFileName(pathExt, false),
131 "ee.eXt");
132
133 ensure_equals("getBaseFileName/ext/strip-exten",
134 gDirUtilp->getBaseFileName(pathExt, true),
135 "ee");
136
137 // aa/bb/cc.dd/ee[.eXt]
138
139 ensure_equals("getBaseFileName/d-no-ext/no-strip-exten",
140 gDirUtilp->getBaseFileName(dottedPathNoExt, false),
141 "ee");
142
143 ensure_equals("getBaseFileName/d-no-ext/strip-exten",
144 gDirUtilp->getBaseFileName(dottedPathNoExt, true),
145 "ee");
146
147 ensure_equals("getBaseFileName/d-ext/no-strip-exten",
148 gDirUtilp->getBaseFileName(dottedPathExt, false),
149 "ee.eXt");
150
151 ensure_equals("getBaseFileName/d-ext/strip-exten",
152 gDirUtilp->getBaseFileName(dottedPathExt, true),
153 "ee");
154 }
155
156 template<> template<>
157 void LLDirTest_object_t::test<3>()
158 // getDirName
159 {
160 std::string delim = gDirUtilp->getDirDelimiter();
161 std::string rawFile = "foo";
162 std::string rawFileExt = "foo.bAr";
163 std::string pathNoExt = "aa" + delim + "bb" + delim + "cc" + delim + "dd" + delim + "ee";
164 std::string pathExt = pathNoExt + ".eXt";
165 std::string dottedPathNoExt = "aa" + delim + "bb" + delim + "cc.dd" + delim + "ee";
166 std::string dottedPathExt = dottedPathNoExt + ".eXt";
167
168 // foo[.bAr]
169
170 ensure_equals("getDirName/r-no-ext",
171 gDirUtilp->getDirName(rawFile),
172 "");
173
174 ensure_equals("getDirName/r-ext",
175 gDirUtilp->getDirName(rawFileExt),
176 "");
177
178 // aa/bb/cc/dd/ee[.eXt]
179
180 ensure_equals("getDirName/no-ext",
181 gDirUtilp->getDirName(pathNoExt),
182 "aa" + delim + "bb" + delim + "cc" + delim + "dd");
183
184 ensure_equals("getDirName/ext",
185 gDirUtilp->getDirName(pathExt),
186 "aa" + delim + "bb" + delim + "cc" + delim + "dd");
187
188 // aa/bb/cc.dd/ee[.eXt]
189
190 ensure_equals("getDirName/d-no-ext",
191 gDirUtilp->getDirName(dottedPathNoExt),
192 "aa" + delim + "bb" + delim + "cc.dd");
193
194 ensure_equals("getDirName/d-ext",
195 gDirUtilp->getDirName(dottedPathExt),
196 "aa" + delim + "bb" + delim + "cc.dd");
197 }
198
199 template<> template<>
200 void LLDirTest_object_t::test<4>()
201 // getExtension
202 {
203 std::string delim = gDirUtilp->getDirDelimiter();
204 std::string rawFile = "foo";
205 std::string rawFileExt = "foo.bAr";
206 std::string rawFileNullExt = "foo.";
207 std::string rawExt = ".bAr";
208 std::string rawDot = ".";
209 std::string pathNoExt = "aa" + delim + "bb" + delim + "cc" + delim + "dd" + delim + "ee";
210 std::string pathExt = pathNoExt + ".eXt";
211 std::string dottedPathNoExt = "aa" + delim + "bb" + delim + "cc.dd" + delim + "ee";
212 std::string dottedPathExt = dottedPathNoExt + ".eXt";
213
214 // foo[.bAr]
215
216 ensure_equals("getExtension/r-no-ext",
217 gDirUtilp->getExtension(rawFile),
218 "");
219
220 ensure_equals("getExtension/r-ext",
221 gDirUtilp->getExtension(rawFileExt),
222 "bar");
223
224 // foo.
225
226 ensure_equals("getExtension/rn-no-ext",
227 gDirUtilp->getExtension(rawFileNullExt),
228 "");
229
230 // .bAr
231 // interesting case - with no basename, this IS the basename, not the extension.
232
233 ensure_equals("getExtension/e-ext",
234 gDirUtilp->getExtension(rawExt),
235 "");
236
237 // .
238
239 ensure_equals("getExtension/d",
240 gDirUtilp->getExtension(rawDot),
241 "");
242
243 // aa/bb/cc/dd/ee[.eXt]
244
245 ensure_equals("getExtension/no-ext",
246 gDirUtilp->getExtension(pathNoExt),
247 "");
248
249 ensure_equals("getExtension/ext",
250 gDirUtilp->getExtension(pathExt),
251 "ext");
252
253 // aa/bb/cc.dd/ee[.eXt]
254
255 ensure_equals("getExtension/d-no-ext",
256 gDirUtilp->getExtension(dottedPathNoExt),
257 "");
258
259 ensure_equals("getExtension/d-ext",
260 gDirUtilp->getExtension(dottedPathExt),
261 "ext");
262 }
263}
264
diff --git a/linden/indra/test/llerror_tut.cpp b/linden/indra/test/llerror_tut.cpp
index 46a5707..a240980 100644
--- a/linden/indra/test/llerror_tut.cpp
+++ b/linden/indra/test/llerror_tut.cpp
@@ -372,27 +372,21 @@ namespace
372 std::string logFromClassWithLogTypeMember(bool id) { ClassWithLogType c; return c.logFromMember(id); } 372 std::string logFromClassWithLogTypeMember(bool id) { ClassWithLogType c; return c.logFromMember(id); }
373 std::string logFromClassWithLogTypeStatic(bool id) { return ClassWithLogType::logFromStatic(id); } 373 std::string logFromClassWithLogTypeStatic(bool id) { return ClassWithLogType::logFromStatic(id); }
374 374
375 void ensure_has_once(const std::string& message, 375 void ensure_has(const std::string& message,
376 const std::string& actual, const std::string& expected) 376 const std::string& actual, const std::string& expected)
377 { 377 {
378 std::string::size_type n1 = actual.find(expected); 378 std::string::size_type n1 = actual.find(expected);
379 std::string::size_type n2 = std::string::npos; 379 if (n1 == std::string::npos)
380 if (n1 != std::string::npos)
381 {
382 n2 = std::string(actual, n1 + expected.size()).find(expected);
383 }
384
385 if (n1 == std::string::npos || n2 != std::string::npos)
386 { 380 {
387 std::stringstream ss; 381 std::stringstream ss;
388 ss << message << ": " << "expected to find one copy of " << expected 382 ss << message << ": " << "expected to find a copy of " << expected
389 << " in actual " << actual; 383 << " in actual " << actual;
390 throw tut::failure(ss.str().c_str()); 384 throw tut::failure(ss.str().c_str());
391 } 385 }
392 } 386 }
393 387
394 typedef std::string (*LogFromFunction)(bool); 388 typedef std::string (*LogFromFunction)(bool);
395 void testLogNameOnce(TestRecorder& recorder, LogFromFunction f, 389 void testLogName(TestRecorder& recorder, LogFromFunction f,
396 const std::string& class_name = "") 390 const std::string& class_name = "")
397 { 391 {
398 recorder.clearMessages(); 392 recorder.clearMessages();
@@ -402,16 +396,16 @@ namespace
402 std::string messageWithoutName = recorder.message(0); 396 std::string messageWithoutName = recorder.message(0);
403 std::string messageWithName = recorder.message(1); 397 std::string messageWithName = recorder.message(1);
404 398
405 ensure_has_once(name + " logged without name", 399 ensure_has(name + " logged without name",
406 messageWithoutName, name); 400 messageWithoutName, name);
407 ensure_has_once(name + " logged with name", 401 ensure_has(name + " logged with name",
408 messageWithName, name); 402 messageWithName, name);
409 403
410 if (!class_name.empty()) 404 if (!class_name.empty())
411 { 405 {
412 ensure_has_once(name + "logged without name", 406 ensure_has(name + "logged without name",
413 messageWithoutName, class_name); 407 messageWithoutName, class_name);
414 ensure_has_once(name + "logged with name", 408 ensure_has(name + "logged with name",
415 messageWithName, class_name); 409 messageWithName, class_name);
416 } 410 }
417 } 411 }
@@ -423,15 +417,15 @@ namespace tut
423 // class/function information in output 417 // class/function information in output
424 void ErrorTestObject::test<6>() 418 void ErrorTestObject::test<6>()
425 { 419 {
426 testLogNameOnce(mRecorder, logFromGlobal); 420 testLogName(mRecorder, logFromGlobal);
427 testLogNameOnce(mRecorder, logFromStatic); 421 testLogName(mRecorder, logFromStatic);
428 testLogNameOnce(mRecorder, logFromAnon); 422 testLogName(mRecorder, logFromAnon);
429 testLogNameOnce(mRecorder, logFromNamespace); 423 testLogName(mRecorder, logFromNamespace);
430 //testLogNameOnce(mRecorder, logFromClassWithNoLogTypeMember, "ClassWithNoLogType"); 424 //testLogName(mRecorder, logFromClassWithNoLogTypeMember, "ClassWithNoLogType");
431 //testLogNameOnce(mRecorder, logFromClassWithNoLogTypeStatic, "ClassWithNoLogType"); 425 //testLogName(mRecorder, logFromClassWithNoLogTypeStatic, "ClassWithNoLogType");
432 // XXX: figure out what the exepcted response is for these 426 // XXX: figure out what the exepcted response is for these
433 testLogNameOnce(mRecorder, logFromClassWithLogTypeMember, "ClassWithLogType"); 427 testLogName(mRecorder, logFromClassWithLogTypeMember, "ClassWithLogType");
434 testLogNameOnce(mRecorder, logFromClassWithLogTypeStatic, "ClassWithLogType"); 428 testLogName(mRecorder, logFromClassWithLogTypeStatic, "ClassWithLogType");
435 } 429 }
436} 430}
437 431
diff --git a/linden/indra/test/llhost_tut.cpp b/linden/indra/test/llhost_tut.cpp
index fc2aee3..f1ad4e0 100644
--- a/linden/indra/test/llhost_tut.cpp
+++ b/linden/indra/test/llhost_tut.cpp
@@ -91,7 +91,7 @@ namespace tut
91 U32 ip = ip_string_to_u32("192.168.1.1"); 91 U32 ip = ip_string_to_u32("192.168.1.1");
92 U32 port = 8080; 92 U32 port = 8080;
93 93
94 LLHost host(ip_port_string.c_str()); 94 LLHost host(ip_port_string);
95 ensure("IP address from IP:port is invalid", ip == host.getAddress()); 95 ensure("IP address from IP:port is invalid", ip == host.getAddress());
96 ensure("Port Number from from IP:port is invalid", port == host.getPort()); 96 ensure("Port Number from from IP:port is invalid", port == host.getPort());
97 } 97 }
@@ -138,23 +138,16 @@ namespace tut
138 template<> template<> 138 template<> template<>
139 void host_object::test<8>() 139 void host_object::test<8>()
140 { 140 {
141 char buffer[50]; 141 const std::string str("192.168.1.1");
142 char buffer1[50];
143 const char* str = "192.168.1.1";
144 U32 port = 8080; 142 U32 port = 8080;
145 LLHost host; 143 LLHost host;
146 host.set(str,port); 144 host.set(str,port);
147 host.getString(buffer, 50);
148 ensure("Function Failed", (0 == strcmp("192.168.1.1:8080", buffer)));
149
150 host.getIPString(buffer1, 50);
151 ensure("Function Failed", (0 == strcmp(str, buffer1)));
152 145
153 std::string ip_string = host.getIPString(); 146 std::string ip_string = host.getIPString();
154 ensure("Function Failed", (0 == strcmp(str, buffer1))); 147 ensure("Function Failed", (ip_string == str));
155 148
156 std::string ip_string_port = host.getIPandPort(); 149 std::string ip_string_port = host.getIPandPort();
157 ensure("Function Failed", (0 == strcmp("192.168.1.1:8080", buffer))); 150 ensure("Function Failed", (ip_string_port == "192.168.1.1:8080"));
158 } 151 }
159 152
160 153
@@ -163,17 +156,15 @@ namespace tut
163 void host_object::test<9>() 156 void host_object::test<9>()
164 { 157 {
165 std::string hostStr = "google.com"; 158 std::string hostStr = "google.com";
166 char buffer[50] = {0};
167 LLHost host; 159 LLHost host;
168 host.setHostByName(hostStr.c_str()); 160 host.setHostByName(hostStr);
169 host.getHostName(buffer, 50); 161
170 // reverse DNS will likely result in appending of some 162 // reverse DNS will likely result in appending of some
171 // sub-domain to the main hostname. so look for 163 // sub-domain to the main hostname. so look for
172 // the main domain name and not do the exact compare 164 // the main domain name and not do the exact compare
173 ensure("getHostName failed", (NULL != strstr(buffer, hostStr.c_str())));
174 165
175 LLString hostname = host.getHostName(); 166 std::string hostname = host.getHostName();
176 ensure("getHostName failed", (NULL != strstr(hostname.c_str(), hostStr.c_str()))); 167 ensure("getHostName failed", hostname.find(hostStr) != std::string::npos);
177 } 168 }
178 169
179// setHostByName for dotted IP 170// setHostByName for dotted IP
@@ -182,7 +173,7 @@ namespace tut
182 { 173 {
183 std::string hostStr = "64.233.167.99"; 174 std::string hostStr = "64.233.167.99";
184 LLHost host; 175 LLHost host;
185 host.setHostByName(hostStr.c_str()); 176 host.setHostByName(hostStr);
186 ensure("SetHostByName for dotted IP Address failed", host.getAddress() == ip_string_to_u32(hostStr.c_str())); 177 ensure("SetHostByName for dotted IP Address failed", host.getAddress() == ip_string_to_u32(hostStr.c_str()));
187 } 178 }
188 179
diff --git a/linden/indra/test/llhttpclient_tut.cpp b/linden/indra/test/llhttpclient_tut.cpp
index 1a2267c..1c41947 100644
--- a/linden/indra/test/llhttpclient_tut.cpp
+++ b/linden/indra/test/llhttpclient_tut.cpp
@@ -259,7 +259,7 @@ namespace tut
259 template<> template<> 259 template<> template<>
260 void HTTPClientTestObject::test<1>() 260 void HTTPClientTestObject::test<1>()
261 { 261 {
262 LLHTTPClient::get("http://www.secondlife.com/", newResult()); 262 LLHTTPClient::get("http://www.google.com/", newResult());
263 runThePump(); 263 runThePump();
264 ensureStatusOK(); 264 ensureStatusOK();
265 ensure("result object wasn't destroyed", mResultDeleted); 265 ensure("result object wasn't destroyed", mResultDeleted);
@@ -365,7 +365,7 @@ namespace tut
365 { 365 {
366 // This is testing for the presence of the Header in the returned results 366 // This is testing for the presence of the Header in the returned results
367 // from an HTTP::get call. 367 // from an HTTP::get call.
368 LLHTTPClient::get("http://www.secondlife.com/", newResult()); 368 LLHTTPClient::get("http://www.google.com/", newResult());
369 runThePump(); 369 runThePump();
370 ensureStatusOK(); 370 ensureStatusOK();
371 LLSD header = getHeader(); 371 LLSD header = getHeader();
@@ -374,7 +374,7 @@ namespace tut
374 template<> template<> 374 template<> template<>
375 void HTTPClientTestObject::test<9>() 375 void HTTPClientTestObject::test<9>()
376 { 376 {
377 LLHTTPClient::head("http://www.secondlife.com/", newResult()); 377 LLHTTPClient::head("http://www.google.com/", newResult());
378 runThePump(); 378 runThePump();
379 ensureStatusOK(); 379 ensureStatusOK();
380 ensure("result object wasn't destroyed", mResultDeleted); 380 ensure("result object wasn't destroyed", mResultDeleted);
diff --git a/linden/indra/test/llhttpdate_tut.cpp b/linden/indra/test/llhttpdate_tut.cpp
index a07b11f..8e096cb 100644
--- a/linden/indra/test/llhttpdate_tut.cpp
+++ b/linden/indra/test/llhttpdate_tut.cpp
@@ -69,24 +69,25 @@ namespace tut
69 time_t sometime; 69 time_t sometime;
70 time(&sometime); 70 time(&sometime);
71 some_date = LLDate((F64) sometime); 71 some_date = LLDate((F64) sometime);
72 struct tm result; 72 struct tm *result;
73 char expected[255], *actual; 73 char expected[255];
74 std::string actual;
74 75
75 gmtime_r((time_t *)&sometime, &result); 76 result = gmtime(&sometime);
76 /* 77 /*
77 std::cout << " seconds: "<< result.tm_sec 78 std::cout << " seconds: "<< result->tm_sec
78 << ", minutes: " << result.tm_min 79 << ", minutes: " << result->tm_min
79 << ", hours: " << result.tm_hour 80 << ", hours: " << result->tm_hour
80 << ", day of the month: " << result.tm_mday 81 << ", day of the month: " << result->tm_mday
81 << ", month: " << result.tm_mon 82 << ", month: " << result->tm_mon
82 << ", year: " << result.tm_year 83 << ", year: " << result->tm_year
83 << ", day of the week: " << result.tm_wday 84 << ", day of the week: " << result->tm_wday
84 << ", day in the year: " << result.tm_yday 85 << ", day in the year: " << result->tm_yday
85 << ", DST: " << result.tm_isdst << std::endl; 86 << ", DST: " << result->tm_isdst << std::endl;
86 */ 87 */
87 strftime(expected, 255, "%A, %d %h %Y %H:%M:%S GMT", &result); 88 strftime(expected, 255, "%A, %d %b %Y %H:%M:%S GMT", result);
88 actual = (char *) some_date.asRFC1123().c_str(); 89 actual = some_date.asRFC1123();
89 // probably not a good idea to use strcmp but this is just a unit test 90 // probably not a good idea to use strcmp but this is just a unit test
90 ensure("Current time in RFC 1123", (strcmp(expected, actual) == 0)); 91 ensure("Current time in RFC 1123", (strcmp(expected, actual.c_str()) == 0));
91 } 92 }
92} 93}
diff --git a/linden/indra/test/llinventoryparcel_tut.cpp b/linden/indra/test/llinventoryparcel_tut.cpp
index 17c7244..8c30c38 100644
--- a/linden/indra/test/llinventoryparcel_tut.cpp
+++ b/linden/indra/test/llinventoryparcel_tut.cpp
@@ -51,22 +51,22 @@ namespace tut
51 { 51 {
52 for (S32 i=0; i<LLParcel::C_COUNT; ++i) 52 for (S32 i=0; i<LLParcel::C_COUNT; ++i)
53 { 53 {
54 const char *catstring = LLParcel::getCategoryString(LLParcel::ECategory(i)); 54 const std::string& catstring = LLParcel::getCategoryString(LLParcel::ECategory(i));
55 ensure("LLParcel::getCategoryString(i)", 55 ensure("LLParcel::getCategoryString(i)",
56 NULL != catstring); 56 !catstring.empty());
57 57
58 const char *catuistring = LLParcel::getCategoryUIString(LLParcel::ECategory(i)); 58 const std::string& catuistring = LLParcel::getCategoryUIString(LLParcel::ECategory(i));
59 ensure("LLParcel::getCategoryUIString(i)", 59 ensure("LLParcel::getCategoryUIString(i)",
60 NULL != catuistring); 60 !catuistring.empty());
61 61
62 ensure_equals("LLParcel::ECategory mapping of string back to enum", LLParcel::getCategoryFromString(catstring), i); 62 ensure_equals("LLParcel::ECategory mapping of string back to enum", LLParcel::getCategoryFromString(catstring), i);
63 ensure_equals("LLParcel::ECategory mapping of uistring back to enum", LLParcel::getCategoryFromUIString(catuistring), i); 63 ensure_equals("LLParcel::ECategory mapping of uistring back to enum", LLParcel::getCategoryFromUIString(catuistring), i);
64 } 64 }
65 65
66 // test the C_ANY case, which has to work for UI strings 66 // test the C_ANY case, which has to work for UI strings
67 const char *catuistring = LLParcel::getCategoryUIString(LLParcel::C_ANY); 67 const std::string& catuistring = LLParcel::getCategoryUIString(LLParcel::C_ANY);
68 ensure("LLParcel::getCategoryUIString(C_ANY)", 68 ensure("LLParcel::getCategoryUIString(C_ANY)",
69 NULL != catuistring); 69 !catuistring.empty());
70 70
71 ensure_equals("LLParcel::ECategory mapping of uistring back to enum", LLParcel::getCategoryFromUIString(catuistring), LLParcel::C_ANY); 71 ensure_equals("LLParcel::ECategory mapping of uistring back to enum", LLParcel::getCategoryFromUIString(catuistring), LLParcel::C_ANY);
72 } 72 }
diff --git a/linden/indra/test/lliohttpserver_tut.cpp b/linden/indra/test/lliohttpserver_tut.cpp
index e9b04c9..e450cc4 100644
--- a/linden/indra/test/lliohttpserver_tut.cpp
+++ b/linden/indra/test/lliohttpserver_tut.cpp
@@ -125,7 +125,7 @@ namespace tut
125 pump->addChain(chain, DEFAULT_CHAIN_EXPIRY_SECS); 125 pump->addChain(chain, DEFAULT_CHAIN_EXPIRY_SECS);
126 126
127 pumpPipe(pump, 10); 127 pumpPipe(pump, 10);
128 if(mResponse && (! timeout)) 128 if(mResponse.notNull() && (! timeout))
129 { 129 {
130 mResponse->result(mResult); 130 mResponse->result(mResult);
131 mResponse = NULL; 131 mResponse = NULL;
@@ -138,7 +138,7 @@ namespace tut
138 delete pump; 138 delete pump;
139 apr_pool_destroy(pool); 139 apr_pool_destroy(pool);
140 140
141 if(mResponse && timeout) 141 if(mResponse.notNull() && timeout)
142 { 142 {
143 mResponse->result(mResult); 143 mResponse->result(mResult);
144 mResponse = NULL; 144 mResponse = NULL;
@@ -327,6 +327,23 @@ namespace tut
327 ensure_starts_with("large echo status", result, "HTTP/1.0 200 OK\r\n"); 327 ensure_starts_with("large echo status", result, "HTTP/1.0 200 OK\r\n");
328 } 328 }
329 329
330 template<> template<>
331 void HTTPServiceTestObject::test<8>()
332 {
333 // test the OPTIONS http method -- the default implementation
334 // should return the X-Documentation-URL
335 std::ostringstream http_request;
336 http_request << "OPTIONS / HTTP/1.0\r\nHost: localhost\r\n\r\n";
337 bool timeout = false;
338 std::string result = makeRequest("/", http_request.str(), timeout);
339 ensure_starts_with("OPTIONS verb ok", result, "HTTP/1.0 200 OK\r\n");
340 ensure_contains(
341 "Doc url header exists",
342 result,
343 "X-Documentation-URL: http://localhost");
344 }
345
346
330 /* TO DO: 347 /* TO DO:
331 test generation of not found and method not allowed errors 348 test generation of not found and method not allowed errors
332 */ 349 */
diff --git a/linden/indra/test/llmessageconfig_tut.cpp b/linden/indra/test/llmessageconfig_tut.cpp
index 869070e..1f71d5f 100644
--- a/linden/indra/test/llmessageconfig_tut.cpp
+++ b/linden/indra/test/llmessageconfig_tut.cpp
@@ -56,7 +56,7 @@ namespace tut
56 oStr << "/tmp/llmessage-config-test-" << random; 56 oStr << "/tmp/llmessage-config-test-" << random;
57#endif 57#endif
58 mTestConfigDir = oStr.str(); 58 mTestConfigDir = oStr.str();
59 LLFile::mkdir(mTestConfigDir.c_str()); 59 LLFile::mkdir(mTestConfigDir);
60 writeConfigFile(LLSD()); 60 writeConfigFile(LLSD());
61 LLMessageConfig::initClass("simulator", mTestConfigDir); 61 LLMessageConfig::initClass("simulator", mTestConfigDir);
62 } 62 }
@@ -64,16 +64,16 @@ namespace tut
64 ~LLMessageConfigTestData() 64 ~LLMessageConfigTestData()
65 { 65 {
66 // rm contents of temp dir 66 // rm contents of temp dir
67 int rmfile = LLFile::remove((mTestConfigDir + "/message.xml").c_str()); 67 int rmfile = LLFile::remove((mTestConfigDir + "/message.xml"));
68 ensure_equals("rmfile value", rmfile, 0); 68 ensure_equals("rmfile value", rmfile, 0);
69 // rm temp dir 69 // rm temp dir
70 int rmdir = LLFile::rmdir(mTestConfigDir.c_str()); 70 int rmdir = LLFile::rmdir(mTestConfigDir);
71 ensure_equals("rmdir value", rmdir, 0); 71 ensure_equals("rmdir value", rmdir, 0);
72 } 72 }
73 73
74 void writeConfigFile(const LLSD& config) 74 void writeConfigFile(const LLSD& config)
75 { 75 {
76 llofstream file((mTestConfigDir + "/message.xml").c_str()); 76 llofstream file((mTestConfigDir + "/message.xml"));
77 if (file.is_open()) 77 if (file.is_open())
78 { 78 {
79 LLSDSerialize::toPrettyXML(config, file); 79 LLSDSerialize::toPrettyXML(config, file);
diff --git a/linden/indra/test/llmessagetemplateparser_tut.cpp b/linden/indra/test/llmessagetemplateparser_tut.cpp
index 7634e90..b90efbb 100644
--- a/linden/indra/test/llmessagetemplateparser_tut.cpp
+++ b/linden/indra/test/llmessagetemplateparser_tut.cpp
@@ -292,7 +292,7 @@ namespace tut
292 delete message; 292 delete message;
293 } 293 }
294 294
295 void LLMessageTemplateParserTestObject::test<8>() 295 template<> template<> void LLMessageTemplateParserTestObject::test<8>()
296 // tests message parsing on RezMultipleAttachmentsFromInv, a possibly-faulty message 296 // tests message parsing on RezMultipleAttachmentsFromInv, a possibly-faulty message
297 { 297 {
298 std::string message_skel( 298 std::string message_skel(
diff --git a/linden/indra/test/llnamevalue_tut.cpp b/linden/indra/test/llnamevalue_tut.cpp
index f604e84..0655f55 100644
--- a/linden/indra/test/llnamevalue_tut.cpp
+++ b/linden/indra/test/llnamevalue_tut.cpp
@@ -36,6 +36,11 @@
36#include "llnamevalue.h" 36#include "llnamevalue.h"
37#include "llsdserialize.h" 37#include "llsdserialize.h"
38 38
39#if LL_WINDOWS
40// disable unreachable code warnings
41#pragma warning(disable: 4702)
42#endif
43
39namespace tut 44namespace tut
40{ 45{
41 struct namevalue_test 46 struct namevalue_test
diff --git a/linden/indra/test/llquaternion_tut.cpp b/linden/indra/test/llquaternion_tut.cpp
index 5b8a6ef..d560a54 100644
--- a/linden/indra/test/llquaternion_tut.cpp
+++ b/linden/indra/test/llquaternion_tut.cpp
@@ -299,7 +299,7 @@ namespace tut
299 ensure("2. LLQuaternion Operator* failed", (4543086.5f == result.mQ[0]) && 299 ensure("2. LLQuaternion Operator* failed", (4543086.5f == result.mQ[0]) &&
300 (8567578.0f == result.mQ[1]) && 300 (8567578.0f == result.mQ[1]) &&
301 (3967591.25f == result.mQ[2]) && 301 (3967591.25f == result.mQ[2]) &&
302 (-2047783.25f == result.mQ[3])); 302 is_approx_equal(-2047783.25f, result.mQ[3]));
303 303
304 //inline LLQuaternion operator+(const LLQuaternion &a, const LLQuaternion &b)fn. 304 //inline LLQuaternion operator+(const LLQuaternion &a, const LLQuaternion &b)fn.
305 result = quat1 + quat2; 305 result = quat1 + quat2;
@@ -343,11 +343,11 @@ namespace tut
343 LLVector4 result = vect * quat; 343 LLVector4 result = vect * quat;
344 ensure( 344 ensure(
345 "1. LLVector4 operator*(const LLVector4 &a, const LLQuaternion &rot) failed", 345 "1. LLVector4 operator*(const LLVector4 &a, const LLQuaternion &rot) failed",
346 (39928406016.0f == result.mV[0]) && 346 is_approx_equal(39928406016.0f, result.mV[0]) &&
347 // gcc on x86 actually gives us more precision than we were expecting, verified with -ffloat-store - we forgive this 347 // gcc on x86 actually gives us more precision than we were expecting, verified with -ffloat-store - we forgive this
348 (1457802240.0f >= result.mV[1]) && // gcc+x86+linux 348 (1457802240.0f >= result.mV[1]) && // gcc+x86+linux
349 (1457801728.0f <= result.mV[1]) && // elsewhere 349 (1457800960.0f <= result.mV[1]) && // elsewhere
350 (200580612096.0f == result.mV[2]) && 350 is_approx_equal(200580612096.0f, result.mV[2]) &&
351 (75.099998f == result.mV[3])); 351 (75.099998f == result.mV[3]));
352 352
353 LLVector4 vect1(22.0f, 45.0f, 40.0f, 78.1f); 353 LLVector4 vect1(22.0f, 45.0f, 40.0f, 78.1f);
diff --git a/linden/indra/test/llsd_new_tut.cpp b/linden/indra/test/llsd_new_tut.cpp
index 2ab8668..6c8d96a 100644
--- a/linden/indra/test/llsd_new_tut.cpp
+++ b/linden/indra/test/llsd_new_tut.cpp
@@ -132,13 +132,11 @@ namespace tut
132 v = newUUID; ensureTypeAndValue("set to new UUID", v, newUUID); 132 v = newUUID; ensureTypeAndValue("set to new UUID", v, newUUID);
133 v = nullUUID; ensureTypeAndValue("set to null again", v, nullUUID); 133 v = nullUUID; ensureTypeAndValue("set to null again", v, nullUUID);
134 134
135 // strings must be tested with three (!) types of string objects 135 // strings must be tested with two types of string objects
136 std::string s = "now is the time"; 136 std::string s = "now is the time";
137 LLString ls = "for all good zorks"; 137 const char* cs = "for all good zorks";
138 const char* cs = "to come to the air of their planet";
139 138
140 v = s; ensureTypeAndValue("set to std::string", v, s); 139 v = s; ensureTypeAndValue("set to std::string", v, s);
141 v = ls; ensureTypeAndValue("set to LLString", v, ls);
142 v = cs; ensureTypeAndValue("set to const char*", v, cs); 140 v = cs; ensureTypeAndValue("set to const char*", v, cs);
143 141
144 LLDate epoch; 142 LLDate epoch;
@@ -186,10 +184,10 @@ namespace tut
186 ensureTypeAndValue("construct std::string", ss1, "abc"); 184 ensureTypeAndValue("construct std::string", ss1, "abc");
187 LLSD ss2 = std::string("abc"); 185 LLSD ss2 = std::string("abc");
188 ensureTypeAndValue("initialize std::string",ss2, "abc"); 186 ensureTypeAndValue("initialize std::string",ss2, "abc");
189 LLSD sl1(LLString("def")); 187 LLSD sl1(std::string("def"));
190 ensureTypeAndValue("construct LLString", sl1, "def"); 188 ensureTypeAndValue("construct std::string", sl1, "def");
191 LLSD sl2 = LLString("def"); 189 LLSD sl2 = std::string("def");
192 ensureTypeAndValue("initialize LLString", sl2, "def"); 190 ensureTypeAndValue("initialize std::string", sl2, "def");
193 LLSD sc1("ghi"); 191 LLSD sc1("ghi");
194 ensureTypeAndValue("construct const char*", sc1, "ghi"); 192 ensureTypeAndValue("construct const char*", sc1, "ghi");
195 LLSD sc2 = "ghi"; 193 LLSD sc2 = "ghi";
@@ -432,10 +430,6 @@ namespace tut
432// SAD s = v; ensure_equals("assign to string", s, " 42.375"); 430// SAD s = v; ensure_equals("assign to string", s, " 42.375");
433 s = (std::string)v; ensure_equals("cast to string", s, " 42.375"); 431 s = (std::string)v; ensure_equals("cast to string", s, " 42.375");
434 432
435 LLString t = "yo";
436// SAD t = v; ensure_equals("assign to LLString", t, " 42.375");
437 t = (LLString)v; ensure_equals("cast to LLString", t, " 42.375");
438
439 std::string uuidStr = "b1e50c2b-b627-4d23-8a86-a65d97b6319b"; 433 std::string uuidStr = "b1e50c2b-b627-4d23-8a86-a65d97b6319b";
440 v = uuidStr; 434 v = uuidStr;
441 LLUUID u; 435 LLUUID u;
@@ -486,10 +480,10 @@ namespace tut
486 ensure_equals("contruct string", s1, " 42.375"); 480 ensure_equals("contruct string", s1, " 42.375");
487 ensure_equals("initialize string", s2, " 42.375"); 481 ensure_equals("initialize string", s2, " 42.375");
488 482
489 LLString t1(v); 483 std::string t1(v);
490 LLString t2 = v.asString(); // SAD 484 std::string t2 = v.asString(); // SAD
491 ensure_equals("contruct LLString", t1, " 42.375"); 485 ensure_equals("contruct std::string", t1, " 42.375");
492 ensure_equals("initialize LLString", t2, " 42.375"); 486 ensure_equals("initialize std::string", t2, " 42.375");
493 487
494 std::string uuidStr = "b1e50c2b-b627-4d23-8a86-a65d97b6319b"; 488 std::string uuidStr = "b1e50c2b-b627-4d23-8a86-a65d97b6319b";
495 v = uuidStr; 489 v = uuidStr;
diff --git a/linden/indra/test/llsdmessagereader_tut.cpp b/linden/indra/test/llsdmessagereader_tut.cpp
index 04861c4..9fd4dfc 100755
--- a/linden/indra/test/llsdmessagereader_tut.cpp
+++ b/linden/indra/test/llsdmessagereader_tut.cpp
@@ -33,6 +33,10 @@
33#include <tut/tut.h> 33#include <tut/tut.h>
34#include "linden_common.h" 34#include "linden_common.h"
35#include "lltut.h" 35#include "lltut.h"
36#include "v3dmath.h"
37#include "v3math.h"
38#include "v4math.h"
39#include "llquaternion.h"
36 40
37#include "message.h" 41#include "message.h"
38#include "llsdmessagereader.h" 42#include "llsdmessagereader.h"
diff --git a/linden/indra/test/llsdserialize_tut.cpp b/linden/indra/test/llsdserialize_tut.cpp
index fe732cd..4b4c787 100644
--- a/linden/indra/test/llsdserialize_tut.cpp
+++ b/linden/indra/test/llsdserialize_tut.cpp
@@ -44,7 +44,19 @@
44 44
45// These tests take too long to run on Windows. JC 45// These tests take too long to run on Windows. JC
46// Yeah, who cares if windows works or not, right? Phoenix 46// Yeah, who cares if windows works or not, right? Phoenix
47#if !LL_WINDOWS 47// Change the 'FALSE' here to 'TRUE' to enable them on Windows
48#define RUN_PARSER_TESTS_ON_WINDOWS FALSE
49
50#define RUN_PARSER_TESTS (!LL_WINDOWS || RUN_PARSER_TESTS_ON_WINDOWS)
51
52
53
54#if RUN_PARSER_TESTS
55
56#if LL_WINDOWS
57#include <winsock2.h>
58typedef U32 uint32_t;
59#endif
48 60
49namespace tut 61namespace tut
50{ 62{
@@ -225,6 +237,7 @@ namespace tut
225 mFormatter->format(v, stream); 237 mFormatter->format(v, stream);
226 //llinfos << "checkRoundTrip: length " << stream.str().length() << llendl; 238 //llinfos << "checkRoundTrip: length " << stream.str().length() << llendl;
227 LLSD w; 239 LLSD w;
240 mParser->reset(); // reset() call is needed since test code re-uses mParser
228 mParser->parse(stream, w, stream.str().size()); 241 mParser->parse(stream, w, stream.str().size());
229 242
230 try 243 try
@@ -475,6 +488,7 @@ namespace tut
475 input.str(in); 488 input.str(in);
476 489
477 LLSD parsed_result; 490 LLSD parsed_result;
491 mParser->reset(); // reset() call is needed since test code re-uses mParser
478 S32 parsed_count = mParser->parse(input, parsed_result, in.size()); 492 S32 parsed_count = mParser->parse(input, parsed_result, in.size());
479 ensure_equals(msg, parsed_result, expected_value); 493 ensure_equals(msg, parsed_result, expected_value);
480 494
diff --git a/linden/indra/test/llsdtraits.h b/linden/indra/test/llsdtraits.h
index a9a2691..c462d31 100644
--- a/linden/indra/test/llsdtraits.h
+++ b/linden/indra/test/llsdtraits.h
@@ -84,10 +84,6 @@ LLSDTraits<LLSD::String>::LLSDTraits()
84{ } 84{ }
85 85
86template<> 86template<>
87class LLSDTraits<LLString> : public LLSDTraits<LLSD::String>
88{ };
89
90template<>
91class LLSDTraits<const char*> : public LLSDTraits<LLSD::String> 87class LLSDTraits<const char*> : public LLSDTraits<LLSD::String>
92{ }; 88{ };
93 89
diff --git a/linden/indra/test/llsdutil_tut.cpp b/linden/indra/test/llsdutil_tut.cpp
index 955b8fd..81df9bf 100644
--- a/linden/indra/test/llsdutil_tut.cpp
+++ b/linden/indra/test/llsdutil_tut.cpp
@@ -33,9 +33,15 @@
33 33
34#include "linden_common.h" 34#include "linden_common.h"
35#include "lltut.h" 35#include "lltut.h"
36#include "m4math.h"
37#include "v2math.h"
38#include "v2math.h"
36#include "v3color.h" 39#include "v3color.h"
40#include "v3math.h"
41#include "v3dmath.h"
42#include "v4coloru.h"
37#include "v4math.h" 43#include "v4math.h"
38#include "m4math.h" 44#include "llquaternion.h"
39#include "llsdutil.h" 45#include "llsdutil.h"
40 46
41 47
diff --git a/linden/indra/test/llstring_tut.cpp b/linden/indra/test/llstring_tut.cpp
index 16569ea..191b804 100644
--- a/linden/indra/test/llstring_tut.cpp
+++ b/linden/indra/test/llstring_tut.cpp
@@ -31,9 +31,10 @@
31 * $/LicenseInfo$ 31 * $/LicenseInfo$
32 */ 32 */
33 33
34#include "linden_common.h"
35
34#include <tut/tut.h> 36#include <tut/tut.h>
35#include "lltut.h" 37#include "lltut.h"
36#include "linden_common.h"
37#include "llstring.h" 38#include "llstring.h"
38 39
39namespace tut 40namespace tut
@@ -48,455 +49,624 @@ namespace tut
48 template<> template<> 49 template<> template<>
49 void string_index_object_t::test<1>() 50 void string_index_object_t::test<1>()
50 { 51 {
51 LLString llstr1; 52 std::string llstr1;
52 ensure("Empty LLString", (llstr1.size() == 0) && llstr1.empty()); 53 ensure("Empty std::string", (llstr1.size() == 0) && llstr1.empty());
53 54
54 LLString llstr2("Hello"); 55 std::string llstr2("Hello");
55 ensure("LLString = Hello", (!strcmp(llstr2.c_str(), "Hello")) && (llstr2.size() == 5) && !llstr2.empty()); 56 ensure("std::string = Hello", (!strcmp(llstr2.c_str(), "Hello")) && (llstr2.size() == 5) && !llstr2.empty());
56 57
57 LLString llstr3(llstr2); 58 std::string llstr3(llstr2);
58 ensure("LLString = LLString(LLString)", (!strcmp(llstr3.c_str(), "Hello")) && (llstr3.size() == 5) && !llstr3.empty()); 59 ensure("std::string = std::string(std::string)", (!strcmp(llstr3.c_str(), "Hello")) && (llstr3.size() == 5) && !llstr3.empty());
59 60
60 std::string str("Hello World"); 61 std::string str("Hello World");
61 LLString llstr4(str, 6); 62 std::string llstr4(str, 6);
62 ensure("LLString = LLString(s, size_type pos, size_type n = npos)", (!strcmp(llstr4.c_str(), "World")) && (llstr4.size() == 5) && !llstr4.empty()); 63 ensure("std::string = std::string(s, size_type pos, size_type n = npos)", (!strcmp(llstr4.c_str(), "World")) && (llstr4.size() == 5) && !llstr4.empty());
63 64
64 LLString llstr5(str, str.size()); 65 std::string llstr5(str, str.size());
65 ensure("LLString = LLString(s, size_type pos, size_type n = npos)", (llstr5.size() == 0) && llstr5.empty()); 66 ensure("std::string = std::string(s, size_type pos, size_type n = npos)", (llstr5.size() == 0) && llstr5.empty());
66 67
67 LLString llstr6(5, 'A'); 68 std::string llstr6(5, 'A');
68 ensure("LLString = LLString(count, c)", (!strcmp(llstr6.c_str(), "AAAAA")) && (llstr6.size() == 5) && !llstr6.empty()); 69 ensure("std::string = std::string(count, c)", (!strcmp(llstr6.c_str(), "AAAAA")) && (llstr6.size() == 5) && !llstr6.empty());
69 70
70 LLString llstr7("Hello World", 5); 71 std::string llstr7("Hello World", 5);
71 ensure("LLString(s, n)", (!strcmp(llstr7.c_str(), "Hello")) && (llstr7.size() == 5) && !llstr7.empty()); 72 ensure("std::string(s, n)", (!strcmp(llstr7.c_str(), "Hello")) && (llstr7.size() == 5) && !llstr7.empty());
72 73
73 LLString llstr8("Hello World", 6, 5); 74 std::string llstr8("Hello World", 6, 5);
74 ensure("LLString(s, n, count)", (!strcmp(llstr8.c_str(), "World")) && (llstr8.size() == 5) && !llstr8.empty()); 75 ensure("std::string(s, n, count)", (!strcmp(llstr8.c_str(), "World")) && (llstr8.size() == 5) && !llstr8.empty());
75 76
76 LLString llstr9("Hello World", sizeof("Hello World")-1, 5); // go past end 77 std::string llstr9("Hello World", sizeof("Hello World")-1, 5); // go past end
77 ensure("LLString(s, n, count) goes past end", (llstr9.size() == 0) && llstr9.empty()); 78 ensure("std::string(s, n, count) goes past end", (llstr9.size() == 0) && llstr9.empty());
78 } 79 }
79 80
80 template<> template<> 81 template<> template<>
81 void string_index_object_t::test<2>() 82 void string_index_object_t::test<3>()
82 { 83 {
83 LLString str("Len=5"); 84 std::string str("Len=5");
84 ensure("isValidIndex failed", LLString::isValidIndex(str, 0) == TRUE && 85 ensure("isValidIndex failed", LLStringUtil::isValidIndex(str, 0) == TRUE &&
85 LLString::isValidIndex(str, 5) == TRUE && 86 LLStringUtil::isValidIndex(str, 5) == TRUE &&
86 LLString::isValidIndex(str, 6) == FALSE); 87 LLStringUtil::isValidIndex(str, 6) == FALSE);
87 88
88 LLString str1; 89 std::string str1;
89 ensure("isValidIndex failed fo rempty string", LLString::isValidIndex(str1, 0) == FALSE); 90 ensure("isValidIndex failed fo rempty string", LLStringUtil::isValidIndex(str1, 0) == FALSE);
90 } 91 }
91 92
92 template<> template<> 93 template<> template<>
93 void string_index_object_t::test<3>() 94 void string_index_object_t::test<4>()
94 { 95 {
95 LLString str_val(" Testing the extra whitespaces "); 96 std::string str_val(" Testing the extra whitespaces ");
96 LLString::trimHead(str_val); 97 LLStringUtil::trimHead(str_val);
97 ensure_equals("1: trimHead failed", str_val, "Testing the extra whitespaces "); 98 ensure_equals("1: trimHead failed", str_val, "Testing the extra whitespaces ");
98 99
99 LLString str_val1("\n\t\r\n Testing the extra whitespaces "); 100 std::string str_val1("\n\t\r\n Testing the extra whitespaces ");
100 LLString::trimHead(str_val1); 101 LLStringUtil::trimHead(str_val1);
101 ensure_equals("2: trimHead failed", str_val1, "Testing the extra whitespaces "); 102 ensure_equals("2: trimHead failed", str_val1, "Testing the extra whitespaces ");
102 } 103 }
103 104
104 template<> template<> 105 template<> template<>
105 void string_index_object_t::test<4>() 106 void string_index_object_t::test<5>()
106 { 107 {
107 LLString str_val(" Testing the extra whitespaces "); 108 std::string str_val(" Testing the extra whitespaces ");
108 LLString::trimTail(str_val); 109 LLStringUtil::trimTail(str_val);
109 ensure_equals("1: trimTail failed", str_val, " Testing the extra whitespaces"); 110 ensure_equals("1: trimTail failed", str_val, " Testing the extra whitespaces");
110 111
111 LLString str_val1("\n Testing the extra whitespaces \n\t\r\n "); 112 std::string str_val1("\n Testing the extra whitespaces \n\t\r\n ");
112 LLString::trimTail(str_val1); 113 LLStringUtil::trimTail(str_val1);
113 ensure_equals("2: trimTail failed", str_val1, "\n Testing the extra whitespaces"); 114 ensure_equals("2: trimTail failed", str_val1, "\n Testing the extra whitespaces");
114 } 115 }
115 116
116 117
117 template<> template<> 118 template<> template<>
118 void string_index_object_t::test<5>() 119 void string_index_object_t::test<6>()
119 { 120 {
120 LLString str_val(" \t \r Testing the extra \r\n whitespaces \n \t "); 121 std::string str_val(" \t \r Testing the extra \r\n whitespaces \n \t ");
121 LLString::trim(str_val); 122 LLStringUtil::trim(str_val);
122 ensure_equals("1: trim failed", str_val, "Testing the extra \r\n whitespaces"); 123 ensure_equals("1: trim failed", str_val, "Testing the extra \r\n whitespaces");
123 } 124 }
124 125
125 template<> template<> 126 template<> template<>
126 void string_index_object_t::test<6>() 127 void string_index_object_t::test<7>()
127 { 128 {
128 LLString str("Second LindenLabs"); 129 std::string str("Second LindenLabs");
129 LLString::truncate(str, 6); 130 LLStringUtil::truncate(str, 6);
130 ensure_equals("1: truncate", str, "Second"); 131 ensure_equals("1: truncate", str, "Second");
131 132
132 // further truncate more than the length 133 // further truncate more than the length
133 LLString::truncate(str, 0); 134 LLStringUtil::truncate(str, 0);
134 ensure_equals("2: truncate", str, ""); 135 ensure_equals("2: truncate", str, "");
135 } 136 }
136 137
137 template<> template<> 138 template<> template<>
138 void string_index_object_t::test<7>() 139 void string_index_object_t::test<8>()
139 { 140 {
140 LLString str_val("SecondLife Source"); 141 std::string str_val("SecondLife Source");
141 LLString::toUpper(str_val); 142 LLStringUtil::toUpper(str_val);
142 ensure_equals("toUpper failed", str_val, "SECONDLIFE SOURCE"); 143 ensure_equals("toUpper failed", str_val, "SECONDLIFE SOURCE");
143 } 144 }
144 145
145 template<> template<> 146 template<> template<>
146 void string_index_object_t::test<8>() 147 void string_index_object_t::test<9>()
147 { 148 {
148 LLString str_val("SecondLife Source"); 149 std::string str_val("SecondLife Source");
149 LLString::toLower(str_val); 150 LLStringUtil::toLower(str_val);
150 ensure_equals("toLower failed", str_val, "secondlife source"); 151 ensure_equals("toLower failed", str_val, "secondlife source");
151 } 152 }
152 153
153 template<> template<> 154 template<> template<>
154 void string_index_object_t::test<9>() 155 void string_index_object_t::test<10>()
155 { 156 {
156 LLString str_val("Second"); 157 std::string str_val("Second");
157 ensure("1. isHead failed", LLString::isHead(str_val, "SecondLife Source") == TRUE); 158 ensure("1. isHead failed", LLStringUtil::isHead(str_val, "SecondLife Source") == TRUE);
158 ensure("2. isHead failed", LLString::isHead(str_val, " SecondLife Source") == FALSE); 159 ensure("2. isHead failed", LLStringUtil::isHead(str_val, " SecondLife Source") == FALSE);
159 LLString str_val2(""); 160 std::string str_val2("");
160 ensure("3. isHead failed", LLString::isHead(str_val2, "") == FALSE); 161 ensure("3. isHead failed", LLStringUtil::isHead(str_val2, "") == FALSE);
161 } 162 }
162 163
163 template<> template<> 164 template<> template<>
164 void string_index_object_t::test<10>() 165 void string_index_object_t::test<11>()
165 { 166 {
166 LLString str_val("Hello.\n\n Lindenlabs. \n This is \na simple test.\n"); 167 std::string str_val("Hello.\n\n Lindenlabs. \n This is \na simple test.\n");
167 LLString orig_str_val(str_val); 168 std::string orig_str_val(str_val);
168 LLString::addCRLF(str_val); 169 LLStringUtil::addCRLF(str_val);
169 ensure_equals("addCRLF failed", str_val, "Hello.\r\n\r\n Lindenlabs. \r\n This is \r\na simple test.\r\n"); 170 ensure_equals("addCRLF failed", str_val, "Hello.\r\n\r\n Lindenlabs. \r\n This is \r\na simple test.\r\n");
170 LLString::removeCRLF(str_val); 171 LLStringUtil::removeCRLF(str_val);
171 ensure_equals("removeCRLF failed", str_val, orig_str_val); 172 ensure_equals("removeCRLF failed", str_val, orig_str_val);
172 } 173 }
173 174
174 template<> template<> 175 template<> template<>
175 void string_index_object_t::test<11>() 176 void string_index_object_t::test<12>()
176 { 177 {
177 LLString str_val("Hello.\n\n\t \t Lindenlabs. \t\t"); 178 std::string str_val("Hello.\n\n\t \t Lindenlabs. \t\t");
178 LLString orig_str_val(str_val); 179 std::string orig_str_val(str_val);
179 LLString::replaceTabsWithSpaces(str_val, 1); 180 LLStringUtil::replaceTabsWithSpaces(str_val, 1);
180 ensure_equals("replaceTabsWithSpaces failed", str_val, "Hello.\n\n Lindenlabs. "); 181 ensure_equals("replaceTabsWithSpaces failed", str_val, "Hello.\n\n Lindenlabs. ");
181 LLString::replaceTabsWithSpaces(orig_str_val, 0); 182 LLStringUtil::replaceTabsWithSpaces(orig_str_val, 0);
182 ensure_equals("replaceTabsWithSpaces failed for 0", orig_str_val, "Hello.\n\n Lindenlabs. "); 183 ensure_equals("replaceTabsWithSpaces failed for 0", orig_str_val, "Hello.\n\n Lindenlabs. ");
183 184
184 str_val = "\t\t\t\t"; 185 str_val = "\t\t\t\t";
185 LLString::replaceTabsWithSpaces(str_val, 0); 186 LLStringUtil::replaceTabsWithSpaces(str_val, 0);
186 ensure_equals("replaceTabsWithSpaces failed for all tabs", str_val, ""); 187 ensure_equals("replaceTabsWithSpaces failed for all tabs", str_val, "");
187 } 188 }
188 189
189 template<> template<> 190 template<> template<>
190 void string_index_object_t::test<12>() 191 void string_index_object_t::test<13>()
191 { 192 {
192 LLString str_val("Hello.\n\n\t\t\r\nLindenlabsX."); 193 std::string str_val("Hello.\n\n\t\t\r\nLindenlabsX.");
193 LLString::replaceNonstandardASCII(str_val, 'X'); 194 LLStringUtil::replaceNonstandardASCII(str_val, 'X');
194 ensure_equals("replaceNonstandardASCII failed", str_val, "Hello.\n\nXXX\nLindenlabsX."); 195 ensure_equals("replaceNonstandardASCII failed", str_val, "Hello.\n\nXXX\nLindenlabsX.");
195 } 196 }
196 197
197 template<> template<> 198 template<> template<>
198 void string_index_object_t::test<13>() 199 void string_index_object_t::test<14>()
199 { 200 {
200 LLString str_val("Hello.\n\t\r\nABCDEFGHIABABAB"); 201 std::string str_val("Hello.\n\t\r\nABCDEFGHIABABAB");
201 LLString::replaceChar(str_val, 'A', 'X'); 202 LLStringUtil::replaceChar(str_val, 'A', 'X');
202 ensure_equals("1: replaceChar failed", str_val, "Hello.\n\t\r\nXBCDEFGHIXBXBXB"); 203 ensure_equals("1: replaceChar failed", str_val, "Hello.\n\t\r\nXBCDEFGHIXBXBXB");
203 LLString str_val1("Hello.\n\t\r\nABCDEFGHIABABAB"); 204 std::string str_val1("Hello.\n\t\r\nABCDEFGHIABABAB");
204 } 205 }
205 206
206 template<> template<> 207 template<> template<>
207 void string_index_object_t::test<14>() 208 void string_index_object_t::test<15>()
208 { 209 {
209 LLString str_val("Hello.\n\r\t"); 210 std::string str_val("Hello.\n\r\t");
210 ensure("containsNonprintable failed", LLString::containsNonprintable(str_val) == TRUE); 211 ensure("containsNonprintable failed", LLStringUtil::containsNonprintable(str_val) == TRUE);
211 212
212 str_val = "ABC "; 213 str_val = "ABC ";
213 ensure("containsNonprintable failed", LLString::containsNonprintable(str_val) == FALSE); 214 ensure("containsNonprintable failed", LLStringUtil::containsNonprintable(str_val) == FALSE);
214 } 215 }
215 216
216 template<> template<> 217 template<> template<>
217 void string_index_object_t::test<15>() 218 void string_index_object_t::test<16>()
218 { 219 {
219 LLString str_val("Hello.\n\r\t Again!"); 220 std::string str_val("Hello.\n\r\t Again!");
220 LLString::stripNonprintable(str_val); 221 LLStringUtil::stripNonprintable(str_val);
221 ensure_equals("stripNonprintable failed", str_val, "Hello. Again!"); 222 ensure_equals("stripNonprintable failed", str_val, "Hello. Again!");
222 223
223 str_val = "\r\n\t\t"; 224 str_val = "\r\n\t\t";
224 LLString::stripNonprintable(str_val); 225 LLStringUtil::stripNonprintable(str_val);
225 ensure_equals("stripNonprintable resulting in empty string failed", str_val, ""); 226 ensure_equals("stripNonprintable resulting in empty string failed", str_val, "");
226 } 227 }
227 228
228 template<> template<> 229 template<> template<>
229 void string_index_object_t::test<16>() 230 void string_index_object_t::test<17>()
230 { 231 {
231 BOOL value; 232 BOOL value;
232 LLString str_val("1"); 233 std::string str_val("1");
233 ensure("convertToBOOL 1 failed", LLString::convertToBOOL(str_val, value) && value); 234 ensure("convertToBOOL 1 failed", LLStringUtil::convertToBOOL(str_val, value) && value);
234 str_val = "T"; 235 str_val = "T";
235 ensure("convertToBOOL T failed", LLString::convertToBOOL(str_val, value) && value); 236 ensure("convertToBOOL T failed", LLStringUtil::convertToBOOL(str_val, value) && value);
236 str_val = "t"; 237 str_val = "t";
237 ensure("convertToBOOL t failed", LLString::convertToBOOL(str_val, value) && value); 238 ensure("convertToBOOL t failed", LLStringUtil::convertToBOOL(str_val, value) && value);
238 str_val = "TRUE"; 239 str_val = "TRUE";
239 ensure("convertToBOOL TRUE failed", LLString::convertToBOOL(str_val, value) && value); 240 ensure("convertToBOOL TRUE failed", LLStringUtil::convertToBOOL(str_val, value) && value);
240 str_val = "True"; 241 str_val = "True";
241 ensure("convertToBOOL True failed", LLString::convertToBOOL(str_val, value) && value); 242 ensure("convertToBOOL True failed", LLStringUtil::convertToBOOL(str_val, value) && value);
242 str_val = "true"; 243 str_val = "true";
243 ensure("convertToBOOL true failed", LLString::convertToBOOL(str_val, value) && value); 244 ensure("convertToBOOL true failed", LLStringUtil::convertToBOOL(str_val, value) && value);
244 245
245 str_val = "0"; 246 str_val = "0";
246 ensure("convertToBOOL 0 failed", LLString::convertToBOOL(str_val, value) && !value); 247 ensure("convertToBOOL 0 failed", LLStringUtil::convertToBOOL(str_val, value) && !value);
247 str_val = "F"; 248 str_val = "F";
248 ensure("convertToBOOL F failed", LLString::convertToBOOL(str_val, value) && !value); 249 ensure("convertToBOOL F failed", LLStringUtil::convertToBOOL(str_val, value) && !value);
249 str_val = "f"; 250 str_val = "f";
250 ensure("convertToBOOL f failed", LLString::convertToBOOL(str_val, value) && !value); 251 ensure("convertToBOOL f failed", LLStringUtil::convertToBOOL(str_val, value) && !value);
251 str_val = "FALSE"; 252 str_val = "FALSE";
252 ensure("convertToBOOL FASLE failed", LLString::convertToBOOL(str_val, value) && !value); 253 ensure("convertToBOOL FASLE failed", LLStringUtil::convertToBOOL(str_val, value) && !value);
253 str_val = "False"; 254 str_val = "False";
254 ensure("convertToBOOL False failed", LLString::convertToBOOL(str_val, value) && !value); 255 ensure("convertToBOOL False failed", LLStringUtil::convertToBOOL(str_val, value) && !value);
255 str_val = "false"; 256 str_val = "false";
256 ensure("convertToBOOL false failed", LLString::convertToBOOL(str_val, value) && !value); 257 ensure("convertToBOOL false failed", LLStringUtil::convertToBOOL(str_val, value) && !value);
257 258
258 str_val = "Tblah"; 259 str_val = "Tblah";
259 ensure("convertToBOOL false failed", !LLString::convertToBOOL(str_val, value)); 260 ensure("convertToBOOL false failed", !LLStringUtil::convertToBOOL(str_val, value));
260 } 261 }
261 262
262 template<> template<> 263 template<> template<>
263 void string_index_object_t::test<17>() 264 void string_index_object_t::test<18>()
264 { 265 {
265 U8 value; 266 U8 value;
266 LLString str_val("255"); 267 std::string str_val("255");
267 ensure("1: convertToU8 failed", LLString::convertToU8(str_val, value) && value == 255); 268 ensure("1: convertToU8 failed", LLStringUtil::convertToU8(str_val, value) && value == 255);
268 269
269 str_val = "0"; 270 str_val = "0";
270 ensure("2: convertToU8 failed", LLString::convertToU8(str_val, value) && value == 0); 271 ensure("2: convertToU8 failed", LLStringUtil::convertToU8(str_val, value) && value == 0);
271 272
272 str_val = "-1"; 273 str_val = "-1";
273 ensure("3: convertToU8 failed", !LLString::convertToU8(str_val, value)); 274 ensure("3: convertToU8 failed", !LLStringUtil::convertToU8(str_val, value));
274 275
275 str_val = "256"; // bigger than MAX_U8 276 str_val = "256"; // bigger than MAX_U8
276 ensure("4: convertToU8 failed", !LLString::convertToU8(str_val, value)); 277 ensure("4: convertToU8 failed", !LLStringUtil::convertToU8(str_val, value));
277 } 278 }
278 279
279 template<> template<> 280 template<> template<>
280 void string_index_object_t::test<18>() 281 void string_index_object_t::test<19>()
281 { 282 {
282 S8 value; 283 S8 value;
283 LLString str_val("127"); 284 std::string str_val("127");
284 ensure("1: convertToS8 failed", LLString::convertToS8(str_val, value) && value == 127); 285 ensure("1: convertToS8 failed", LLStringUtil::convertToS8(str_val, value) && value == 127);
285 286
286 str_val = "0"; 287 str_val = "0";
287 ensure("2: convertToS8 failed", LLString::convertToS8(str_val, value) && value == 0); 288 ensure("2: convertToS8 failed", LLStringUtil::convertToS8(str_val, value) && value == 0);
288 289
289 str_val = "-128"; 290 str_val = "-128";
290 ensure("3: convertToS8 failed", LLString::convertToS8(str_val, value) && value == -128); 291 ensure("3: convertToS8 failed", LLStringUtil::convertToS8(str_val, value) && value == -128);
291 292
292 str_val = "128"; // bigger than MAX_S8 293 str_val = "128"; // bigger than MAX_S8
293 ensure("4: convertToS8 failed", !LLString::convertToS8(str_val, value)); 294 ensure("4: convertToS8 failed", !LLStringUtil::convertToS8(str_val, value));
294 295
295 str_val = "-129"; 296 str_val = "-129";
296 ensure("5: convertToS8 failed", !LLString::convertToS8(str_val, value)); 297 ensure("5: convertToS8 failed", !LLStringUtil::convertToS8(str_val, value));
297 } 298 }
298 299
299 template<> template<> 300 template<> template<>
300 void string_index_object_t::test<19>() 301 void string_index_object_t::test<20>()
301 { 302 {
302 S16 value; 303 S16 value;
303 LLString str_val("32767"); 304 std::string str_val("32767");
304 ensure("1: convertToS16 failed", LLString::convertToS16(str_val, value) && value == 32767); 305 ensure("1: convertToS16 failed", LLStringUtil::convertToS16(str_val, value) && value == 32767);
305 306
306 str_val = "0"; 307 str_val = "0";
307 ensure("2: convertToS16 failed", LLString::convertToS16(str_val, value) && value == 0); 308 ensure("2: convertToS16 failed", LLStringUtil::convertToS16(str_val, value) && value == 0);
308 309
309 str_val = "-32768"; 310 str_val = "-32768";
310 ensure("3: convertToS16 failed", LLString::convertToS16(str_val, value) && value == -32768); 311 ensure("3: convertToS16 failed", LLStringUtil::convertToS16(str_val, value) && value == -32768);
311 312
312 str_val = "32768"; 313 str_val = "32768";
313 ensure("4: convertToS16 failed", !LLString::convertToS16(str_val, value)); 314 ensure("4: convertToS16 failed", !LLStringUtil::convertToS16(str_val, value));
314 315
315 str_val = "-32769"; 316 str_val = "-32769";
316 ensure("5: convertToS16 failed", !LLString::convertToS16(str_val, value)); 317 ensure("5: convertToS16 failed", !LLStringUtil::convertToS16(str_val, value));
317 } 318 }
318 319
319 template<> template<> 320 template<> template<>
320 void string_index_object_t::test<20>() 321 void string_index_object_t::test<21>()
321 { 322 {
322 U16 value; 323 U16 value;
323 LLString str_val("65535"); //0xFFFF 324 std::string str_val("65535"); //0xFFFF
324 ensure("1: convertToU16 failed", LLString::convertToU16(str_val, value) && value == 65535); 325 ensure("1: convertToU16 failed", LLStringUtil::convertToU16(str_val, value) && value == 65535);
325 326
326 str_val = "0"; 327 str_val = "0";
327 ensure("2: convertToU16 failed", LLString::convertToU16(str_val, value) && value == 0); 328 ensure("2: convertToU16 failed", LLStringUtil::convertToU16(str_val, value) && value == 0);
328 329
329 str_val = "-1"; 330 str_val = "-1";
330 ensure("3: convertToU16 failed", !LLString::convertToU16(str_val, value)); 331 ensure("3: convertToU16 failed", !LLStringUtil::convertToU16(str_val, value));
331 332
332 str_val = "65536"; 333 str_val = "65536";
333 ensure("4: convertToU16 failed", !LLString::convertToU16(str_val, value)); 334 ensure("4: convertToU16 failed", !LLStringUtil::convertToU16(str_val, value));
334 } 335 }
335 336
336 template<> template<> 337 template<> template<>
337 void string_index_object_t::test<21>() 338 void string_index_object_t::test<22>()
338 { 339 {
339 U32 value; 340 U32 value;
340 LLString str_val("4294967295"); //0xFFFFFFFF 341 std::string str_val("4294967295"); //0xFFFFFFFF
341 ensure("1: convertToU32 failed", LLString::convertToU32(str_val, value) && value == 4294967295); 342 ensure("1: convertToU32 failed", LLStringUtil::convertToU32(str_val, value) && value == 4294967295UL);
342 343
343 str_val = "0"; 344 str_val = "0";
344 ensure("2: convertToU32 failed", LLString::convertToU32(str_val, value) && value == 0); 345 ensure("2: convertToU32 failed", LLStringUtil::convertToU32(str_val, value) && value == 0);
345 346
347#ifndef LL_DARWIN
346 str_val = "-1"; 348 str_val = "-1";
347 ensure("3: convertToU32 failed", LLString::convertToU32(str_val, value) && value == 4294967295); 349 ensure("3: convertToU32 failed", LLStringUtil::convertToU32(str_val, value) && value == 4294967295UL);
348 350#endif
351
349 str_val = "4294967296"; 352 str_val = "4294967296";
350 ensure("4: convertToU32 failed", !LLString::convertToU32(str_val, value)); 353 ensure("4: convertToU32 failed", !LLStringUtil::convertToU32(str_val, value));
351 } 354 }
352 355
353 template<> template<> 356 template<> template<>
354 void string_index_object_t::test<22>() 357 void string_index_object_t::test<23>()
355 { 358 {
356 S32 value; 359 S32 value;
357 LLString str_val("2147483647"); //0x7FFFFFFF 360 std::string str_val("2147483647"); //0x7FFFFFFF
358 ensure("1: convertToS32 failed", LLString::convertToS32(str_val, value) && value == 2147483647); 361 ensure("1: convertToS32 failed", LLStringUtil::convertToS32(str_val, value) && value == 2147483647);
359 362
360 str_val = "0"; 363 str_val = "0";
361 ensure("2: convertToS32 failed", LLString::convertToS32(str_val, value) && value == 0); 364 ensure("2: convertToS32 failed", LLStringUtil::convertToS32(str_val, value) && value == 0);
362 365
366 // Avoid "unary minus operator applied to unsigned type" warning on VC++. JC
367 S32 min_val = -2147483647 - 1;
363 str_val = "-2147483648"; 368 str_val = "-2147483648";
364 ensure("3: convertToS32 failed", LLString::convertToS32(str_val, value) && value == -2147483648); 369 ensure("3: convertToS32 failed", LLStringUtil::convertToS32(str_val, value) && value == min_val);
365 370
366 str_val = "2147483648"; 371 str_val = "2147483648";
367 ensure("4: convertToS32 failed", !LLString::convertToS32(str_val, value)); 372 ensure("4: convertToS32 failed", !LLStringUtil::convertToS32(str_val, value));
368 373
369 str_val = "-2147483649"; 374 str_val = "-2147483649";
370 ensure("5: convertToS32 failed", !LLString::convertToS32(str_val, value)); 375 ensure("5: convertToS32 failed", !LLStringUtil::convertToS32(str_val, value));
371 } 376 }
372 377
373 template<> template<> 378 template<> template<>
374 void string_index_object_t::test<23>() 379 void string_index_object_t::test<24>()
375 { 380 {
376 F32 value; 381 F32 value;
377 LLString str_val("2147483647"); //0x7FFFFFFF 382 std::string str_val("2147483647"); //0x7FFFFFFF
378 ensure("1: convertToF32 failed", LLString::convertToF32(str_val, value) && value == 2147483647); 383 ensure("1: convertToF32 failed", LLStringUtil::convertToF32(str_val, value) && value == 2147483647);
379 384
380 str_val = "0"; 385 str_val = "0";
381 ensure("2: convertToF32 failed", LLString::convertToF32(str_val, value) && value == 0); 386 ensure("2: convertToF32 failed", LLStringUtil::convertToF32(str_val, value) && value == 0);
382 387
383 /* Need to find max/min F32 values 388 /* Need to find max/min F32 values
384 str_val = "-2147483648"; 389 str_val = "-2147483648";
385 ensure("3: convertToF32 failed", LLString::convertToF32(str_val, value) && value == -2147483648); 390 ensure("3: convertToF32 failed", LLStringUtil::convertToF32(str_val, value) && value == -2147483648);
386 391
387 str_val = "2147483648"; 392 str_val = "2147483648";
388 ensure("4: convertToF32 failed", !LLString::convertToF32(str_val, value)); 393 ensure("4: convertToF32 failed", !LLStringUtil::convertToF32(str_val, value));
389 394
390 str_val = "-2147483649"; 395 str_val = "-2147483649";
391 ensure("5: convertToF32 failed", !LLString::convertToF32(str_val, value)); 396 ensure("5: convertToF32 failed", !LLStringUtil::convertToF32(str_val, value));
392 */ 397 */
393 } 398 }
394 399
395 template<> template<> 400 template<> template<>
396 void string_index_object_t::test<24>() 401 void string_index_object_t::test<25>()
397 { 402 {
398 F64 value; 403 F64 value;
399 LLString str_val("9223372036854775807"); //0x7FFFFFFFFFFFFFFF 404 std::string str_val("9223372036854775807"); //0x7FFFFFFFFFFFFFFF
400 ensure("1: convertToF64 failed", LLString::convertToF64(str_val, value) && value == 9223372036854775807); 405 ensure("1: convertToF64 failed", LLStringUtil::convertToF64(str_val, value) && value == 9223372036854775807LL);
401 406
402 str_val = "0"; 407 str_val = "0";
403 ensure("2: convertToF64 failed", LLString::convertToF64(str_val, value) && value == 0); 408 ensure("2: convertToF64 failed", LLStringUtil::convertToF64(str_val, value) && value == 0.0F);
404 409
405 /* Need to find max/min F64 values 410 /* Need to find max/min F64 values
406 str_val = "-2147483648"; 411 str_val = "-2147483648";
407 ensure("3: convertToF32 failed", LLString::convertToF32(str_val, value) && value == -2147483648); 412 ensure("3: convertToF32 failed", LLStringUtil::convertToF32(str_val, value) && value == -2147483648);
408 413
409 str_val = "2147483648"; 414 str_val = "2147483648";
410 ensure("4: convertToF32 failed", !LLString::convertToF32(str_val, value)); 415 ensure("4: convertToF32 failed", !LLStringUtil::convertToF32(str_val, value));
411 416
412 str_val = "-2147483649"; 417 str_val = "-2147483649";
413 ensure("5: convertToF32 failed", !LLString::convertToF32(str_val, value)); 418 ensure("5: convertToF32 failed", !LLStringUtil::convertToF32(str_val, value));
414 */ 419 */
415 } 420 }
416 421
417 template<> template<> 422 template<> template<>
418 void string_index_object_t::test<25>() 423 void string_index_object_t::test<26>()
419 { 424 {
420 char* str1 = NULL; 425 char* str1 = NULL;
421 char* str2 = NULL; 426 char* str2 = NULL;
422 427
423 ensure("1: compareStrings failed", LLString::compareStrings(str1, str2) == 0); 428 ensure("1: compareStrings failed", LLStringUtil::compareStrings(str1, str2) == 0);
424 str2 = "A"; 429 str2 = "A";
425 ensure("2: compareStrings failed", LLString::compareStrings(str1, str2) > 0); 430 ensure("2: compareStrings failed", LLStringUtil::compareStrings(str1, str2) > 0);
426 ensure("3: compareStrings failed", LLString::compareStrings(str2, str1) < 0); 431 ensure("3: compareStrings failed", LLStringUtil::compareStrings(str2, str1) < 0);
427 432
428 str1 = "A is smaller than B"; 433 str1 = "A is smaller than B";
429 str2 = "B is greater than A"; 434 str2 = "B is greater than A";
430 ensure("4: compareStrings failed", LLString::compareStrings(str1, str2) < 0); 435 ensure("4: compareStrings failed", LLStringUtil::compareStrings(str1, str2) < 0);
431 436
432 str2 = "A is smaller than B"; 437 str2 = "A is smaller than B";
433 ensure("5: compareStrings failed", LLString::compareStrings(str1, str2) == 0); 438 ensure("5: compareStrings failed", LLStringUtil::compareStrings(str1, str2) == 0);
434 } 439 }
435 440
436 template<> template<> 441 template<> template<>
437 void string_index_object_t::test<26>() 442 void string_index_object_t::test<27>()
438 { 443 {
439 char* str1 = NULL; 444 char* str1 = NULL;
440 char* str2 = NULL; 445 char* str2 = NULL;
441 446
442 ensure("1: compareInsensitive failed", LLString::compareInsensitive(str1, str2) == 0); 447 ensure("1: compareInsensitive failed", LLStringUtil::compareInsensitive(str1, str2) == 0);
443 str2 = "A"; 448 str2 = "A";
444 ensure("2: compareInsensitive failed", LLString::compareInsensitive(str1, str2) > 0); 449 ensure("2: compareInsensitive failed", LLStringUtil::compareInsensitive(str1, str2) > 0);
445 ensure("3: compareInsensitive failed", LLString::compareInsensitive(str2, str1) < 0); 450 ensure("3: compareInsensitive failed", LLStringUtil::compareInsensitive(str2, str1) < 0);
446 451
447 str1 = "A is equal to a"; 452 str1 = "A is equal to a";
448 str2 = "a is EQUAL to A"; 453 str2 = "a is EQUAL to A";
449 ensure("4: compareInsensitive failed", LLString::compareInsensitive(str1, str2) == 0); 454 ensure("4: compareInsensitive failed", LLStringUtil::compareInsensitive(str1, str2) == 0);
450 } 455 }
451 456
452 template<> template<> 457 template<> template<>
453 void string_index_object_t::test<27>() 458 void string_index_object_t::test<28>()
454 { 459 {
455 LLString lhs_str("PROgraM12files"); 460 std::string lhs_str("PROgraM12files");
456 LLString rhs_str("PROgram12Files"); 461 std::string rhs_str("PROgram12Files");
457 ensure("compareDict 1 failed", LLString::compareDict(lhs_str, rhs_str) < 0); 462 ensure("compareDict 1 failed", LLStringUtil::compareDict(lhs_str, rhs_str) < 0);
458 ensure("precedesDict 1 failed", LLString::precedesDict(lhs_str, rhs_str) == TRUE); 463 ensure("precedesDict 1 failed", LLStringUtil::precedesDict(lhs_str, rhs_str) == TRUE);
459 464
460 lhs_str = "PROgram12Files"; 465 lhs_str = "PROgram12Files";
461 rhs_str = "PROgram12Files"; 466 rhs_str = "PROgram12Files";
462 ensure("compareDict 2 failed", LLString::compareDict(lhs_str, rhs_str) == 0); 467 ensure("compareDict 2 failed", LLStringUtil::compareDict(lhs_str, rhs_str) == 0);
463 ensure("precedesDict 2 failed", LLString::precedesDict(lhs_str, rhs_str) == FALSE); 468 ensure("precedesDict 2 failed", LLStringUtil::precedesDict(lhs_str, rhs_str) == FALSE);
464 469
465 lhs_str = "PROgram12Files"; 470 lhs_str = "PROgram12Files";
466 rhs_str = "PROgRAM12FILES"; 471 rhs_str = "PROgRAM12FILES";
467 ensure("compareDict 3 failed", LLString::compareDict(lhs_str, rhs_str) > 0); 472 ensure("compareDict 3 failed", LLStringUtil::compareDict(lhs_str, rhs_str) > 0);
468 ensure("precedesDict 3 failed", LLString::precedesDict(lhs_str, rhs_str) == FALSE); 473 ensure("precedesDict 3 failed", LLStringUtil::precedesDict(lhs_str, rhs_str) == FALSE);
469 } 474 }
470 475
471 template<> template<> 476 template<> template<>
472 void string_index_object_t::test<28>() 477 void string_index_object_t::test<29>()
473 { 478 {
474 char str1[] = "First String..."; 479 char str1[] = "First String...";
475 char str2[100]; 480 char str2[100];
476 481
477 LLString::copy(str2, str1, 100); 482 LLStringUtil::copy(str2, str1, 100);
478 ensure("LLString::copy with enough dest lenght failed", strcmp(str2, str1) == 0); 483 ensure("LLStringUtil::copy with enough dest length failed", strcmp(str2, str1) == 0);
479 LLString::copy(str2, str1, sizeof("First")); 484 LLStringUtil::copy(str2, str1, sizeof("First"));
480 ensure("LLString::copy with less dest lenght failed", strcmp(str2, "First") == 0); 485 ensure("LLStringUtil::copy with less dest length failed", strcmp(str2, "First") == 0);
481 } 486 }
482 487
483 template<> template<> 488 template<> template<>
484 void string_index_object_t::test<29>() 489 void string_index_object_t::test<30>()
485 { 490 {
486 LLString str1 = "This is the sentence..."; 491 std::string str1 = "This is the sentence...";
487 LLString str2 = "This is the "; 492 std::string str2 = "This is the ";
488 LLString str3 = "first "; 493 std::string str3 = "first ";
489 LLString str4 = "This is the first sentence..."; 494 std::string str4 = "This is the first sentence...";
490 LLString str5 = "This is the sentence...first "; 495 std::string str5 = "This is the sentence...first ";
491 LLString dest; 496 std::string dest;
492 497
493 dest = str1; 498 dest = str1;
494 LLString::copyInto(dest, str3, str2.length()); 499 LLStringUtil::copyInto(dest, str3, str2.length());
495 ensure("LLString::copyInto insert failed", dest == str4); 500 ensure("LLStringUtil::copyInto insert failed", dest == str4);
496 501
497 dest = str1; 502 dest = str1;
498 LLString::copyInto(dest, str3, dest.length()); 503 LLStringUtil::copyInto(dest, str3, dest.length());
499 ensure("LLString::copyInto append failed", dest == str5); 504 ensure("LLStringUtil::copyInto append failed", dest == str5);
505 }
506
507 template<> template<>
508 void string_index_object_t::test<31>()
509 {
510 std::string stripped;
511
512 // Plain US ASCII text, including spaces and punctuation,
513 // should not be altered.
514 std::string simple_text = "Hello, world!";
515 stripped = LLStringFn::strip_invalid_xml(simple_text);
516 ensure("Simple text passed unchanged", stripped == simple_text);
517
518 // Control characters should be removed
519 // except for 0x09, 0x0a, 0x0d
520 std::string control_chars;
521 for (char c = 0x01; c < 0x20; c++)
522 {
523 control_chars.push_back(c);
524 }
525 std::string allowed_control_chars;
526 allowed_control_chars.push_back( (char)0x09 );
527 allowed_control_chars.push_back( (char)0x0a );
528 allowed_control_chars.push_back( (char)0x0d );
529
530 stripped = LLStringFn::strip_invalid_xml(control_chars);
531 ensure("Only tab, LF, CR control characters allowed",
532 stripped == allowed_control_chars);
533
534 // UTF-8 should be passed intact, including high byte
535 // characters. Try Francais (with C squiggle cedilla)
536 std::string french = "Fran";
537 french.push_back( (char)0xC3 );
538 french.push_back( (char)0xA7 );
539 french += "ais";
540 stripped = LLStringFn::strip_invalid_xml( french );
541 ensure("UTF-8 high byte text is allowed", french == stripped );
500 } 542 }
501}
502 543
544 template<> template<>
545 void string_index_object_t::test<32>()
546 {
547 // Test LLStringUtil::format() string interpolation
548 LLStringUtil::format_map_t fmt_map;
549 std::string s;
550 int subcount;
551
552 fmt_map["[TRICK1]"] = "[A]";
553 fmt_map["[A]"] = "a";
554 fmt_map["[B]"] = "b";
555 fmt_map["[AAA]"] = "aaa";
556 fmt_map["[BBB]"] = "bbb";
557 fmt_map["[TRICK2]"] = "[A]";
558 fmt_map["[EXPLOIT]"] = "!!!!!!!!!!!![EXPLOIT]!!!!!!!!!!!!";
559 fmt_map["[KEYLONGER]"] = "short";
560 fmt_map["[KEYSHORTER]"] = "Am I not a long string?";
561 fmt_map["?"] = "!";
562 fmt_map["[DELETE]"] = "";
563
564 for (LLStringUtil::format_map_t::const_iterator iter = fmt_map.begin(); iter != fmt_map.end(); ++iter)
565 {
566 // Test when source string is entirely one key
567 s = iter->first;
568 subcount = LLStringUtil::format(s, fmt_map);
569 ensure_equals("LLStringUtil::format: Raw interpolation result", s, iter->second);
570 ensure_equals("LLStringUtil::format: Raw interpolation result count", 1, subcount);
571 }
572
573 for (LLStringUtil::format_map_t::const_iterator iter = fmt_map.begin(); iter != fmt_map.end(); ++iter)
574 {
575 // Test when source string is one key, duplicated
576 s = iter->first + iter->first + iter->first + iter->first;
577 subcount = LLStringUtil::format(s, fmt_map);
578 ensure_equals("LLStringUtil::format: Rawx4 interpolation result", s, iter->second + iter->second + iter->second + iter->second);
579 ensure_equals("LLStringUtil::format: Rawx4 interpolation result count", 4, subcount);
580 }
581
582 // Test when source string has no keys
583 std::string srcs = "!!!!!!!!!!!!!!!!";
584 s = srcs;
585 subcount = LLStringUtil::format(s, fmt_map);
586 ensure_equals("LLStringUtil::format: No key test result", s, srcs);
587 ensure_equals("LLStringUtil::format: No key test result count", 0, subcount);
588
589 // Test when source string has no keys and is empty
590 std::string srcs3;
591 s = srcs3;
592 subcount = LLStringUtil::format(s, fmt_map);
593 ensure("LLStringUtil::format: No key test3 result", s.empty());
594 ensure_equals("LLStringUtil::format: No key test3 result count", 0, subcount);
595
596 // Test a substitution where a key is substituted with blankness
597 std::string srcs2 = "[DELETE]";
598 s = srcs2;
599 subcount = LLStringUtil::format(s, fmt_map);
600 ensure("LLStringUtil::format: Delete key test2 result", s.empty());
601 ensure_equals("LLStringUtil::format: Delete key test2 result count", 1, subcount);
602
603 // Test an assorted substitution
604 std::string srcs4 = "[TRICK1][A][B][AAA][BBB][TRICK2][KEYLONGER][KEYSHORTER]?[DELETE]";
605 s = srcs4;
606 subcount = LLStringUtil::format(s, fmt_map);
607 ensure_equals("LLStringUtil::format: Assorted Test1 result", s, "[A]abaaabbb[A]shortAm I not a long string?!");
608 ensure_equals("LLStringUtil::format: Assorted Test1 result count", 10, subcount);
609
610 // Test an assorted substitution
611 std::string srcs5 = "[DELETE]?[KEYSHORTER][KEYLONGER][TRICK2][BBB][AAA][B][A][TRICK1]";
612 s = srcs5;
613 subcount = LLStringUtil::format(s, fmt_map);
614 ensure_equals("LLStringUtil::format: Assorted Test2 result", s, "!Am I not a long string?short[A]bbbaaaba[A]");
615 ensure_equals("LLStringUtil::format: Assorted Test2 result count", 10, subcount);
616
617 // Test an assorted substitution
618 std::string srcs8 = "foo[DELETE]bar?";
619 s = srcs8;
620 subcount = LLStringUtil::format(s, fmt_map);
621 ensure_equals("LLStringUtil::format: Assorted Test3 result", s, "foobar!");
622 ensure_equals("LLStringUtil::format: Assorted Test3 result count", 2, subcount);
623 }
624
625 template<> template<>
626 void string_index_object_t::test<33>()
627 {
628 // Test LLStringUtil::format() string interpolation
629 LLStringUtil::format_map_t blank_fmt_map;
630 std::string s;
631 int subcount;
632
633 // Test substituting out of a blank format_map
634 std::string srcs6 = "12345";
635 s = srcs6;
636 subcount = LLStringUtil::format(s, blank_fmt_map);
637 ensure_equals("LLStringUtil::format: Blankfmt Test1 result", s, "12345");
638 ensure_equals("LLStringUtil::format: Blankfmt Test1 result count", 0, subcount);
639
640 // Test substituting a blank string out of a blank format_map
641 std::string srcs7;
642 s = srcs7;
643 subcount = LLStringUtil::format(s, blank_fmt_map);
644 ensure("LLStringUtil::format: Blankfmt Test2 result", s.empty());
645 ensure_equals("LLStringUtil::format: Blankfmt Test2 result count", 0, subcount);
646 }
647
648 template<> template<>
649 void string_index_object_t::test<34>()
650 {
651 // Test that incorrect LLStringUtil::format() use does not explode.
652 LLStringUtil::format_map_t nasty_fmt_map;
653 std::string s;
654 int subcount;
655
656 nasty_fmt_map[""] = "never used"; // see, this is nasty.
657
658 // Test substituting out of a nasty format_map
659 std::string srcs6 = "12345";
660 s = srcs6;
661 subcount = LLStringUtil::format(s, nasty_fmt_map);
662 ensure_equals("LLStringUtil::format: Nastyfmt Test1 result", s, "12345");
663 ensure_equals("LLStringUtil::format: Nastyfmt Test1 result count", 0, subcount);
664
665 // Test substituting a blank string out of a nasty format_map
666 std::string srcs7;
667 s = srcs7;
668 subcount = LLStringUtil::format(s, nasty_fmt_map);
669 ensure("LLStringUtil::format: Nastyfmt Test2 result", s.empty());
670 ensure_equals("LLStringUtil::format: Nastyfmt Test2 result count", 0, subcount);
671 }
672}
diff --git a/linden/indra/test/lltemplatemessagebuilder_tut.cpp b/linden/indra/test/lltemplatemessagebuilder_tut.cpp
index 86b1fbd..03346cb 100644
--- a/linden/indra/test/lltemplatemessagebuilder_tut.cpp
+++ b/linden/indra/test/lltemplatemessagebuilder_tut.cpp
@@ -64,7 +64,9 @@ namespace tut
64 LL_VERSION_MINOR, 64 LL_VERSION_MINOR,
65 LL_VERSION_PATCH, 65 LL_VERSION_PATCH,
66 FALSE, 66 FALSE,
67 "notasharedsecret"); 67 "notasharedsecret",
68 NULL,
69 false);
68 //init_prehash_data(); 70 //init_prehash_data();
69 init = true; 71 init = true;
70 } 72 }
diff --git a/linden/indra/test/lluri_tut.cpp b/linden/indra/test/lluri_tut.cpp
index 786df92..bed3fcd 100644
--- a/linden/indra/test/lluri_tut.cpp
+++ b/linden/indra/test/lluri_tut.cpp
@@ -253,6 +253,11 @@ namespace tut
253 LLURI::escape("http://10.0.1.4:12032/agent/god/agent-id/map/layer/?resume=http://station3.ll.com:12032/agent/203ad6df-b522-491d-ba48-4e24eb57aeff/send-postcard", unreserved + ":@!$'()*+,="), 253 LLURI::escape("http://10.0.1.4:12032/agent/god/agent-id/map/layer/?resume=http://station3.ll.com:12032/agent/203ad6df-b522-491d-ba48-4e24eb57aeff/send-postcard", unreserved + ":@!$'()*+,="),
254 "http:%2F%2F10.0.1.4:12032%2Fagent%2Fgod%2Fagent-id%2Fmap%2Flayer%2F%3Fresume=http:%2F%2Fstation3.ll.com:12032%2Fagent%2F203ad6df-b522-491d-ba48-4e24eb57aeff%2Fsend-postcard"); 254 "http:%2F%2F10.0.1.4:12032%2Fagent%2Fgod%2Fagent-id%2Fmap%2Flayer%2F%3Fresume=http:%2F%2Fstation3.ll.com:12032%2Fagent%2F203ad6df-b522-491d-ba48-4e24eb57aeff%2Fsend-postcard");
255 // French cedilla (C with squiggle, like in the word Francais) is UTF-8 C3 A7 255 // French cedilla (C with squiggle, like in the word Francais) is UTF-8 C3 A7
256
257#if LL_WINDOWS
258#pragma warning(disable: 4309)
259#endif
260
256 std::string cedilla; 261 std::string cedilla;
257 cedilla.push_back( (char)0xC3 ); 262 cedilla.push_back( (char)0xC3 );
258 cedilla.push_back( (char)0xA7 ); 263 cedilla.push_back( (char)0xA7 );
diff --git a/linden/indra/test/llxfer_tut.cpp b/linden/indra/test/llxfer_tut.cpp
index 5079080..670a929 100644
--- a/linden/indra/test/llxfer_tut.cpp
+++ b/linden/indra/test/llxfer_tut.cpp
@@ -35,8 +35,6 @@
35 35
36#include "llxfer_file.h" 36#include "llxfer_file.h"
37 37
38#include <string>
39
40namespace tut 38namespace tut
41{ 39{
42 struct llxfer_data 40 struct llxfer_data
@@ -49,8 +47,8 @@ namespace tut
49 template<> template<> 47 template<> template<>
50 void llxfer_object::test<1>() 48 void llxfer_object::test<1>()
51 { 49 {
52 // test that he handle an oversized filename correctly. 50 // test that we handle an oversized filename correctly.
53 LLString oversized_filename; 51 std::string oversized_filename;
54 U32 i; 52 U32 i;
55 for (i=0; i<LL_MAX_PATH*2; ++i) // create oversized filename 53 for (i=0; i<LL_MAX_PATH*2; ++i) // create oversized filename
56 { 54 {
@@ -59,6 +57,6 @@ namespace tut
59 57
60 LLXfer_File xff(oversized_filename, FALSE, 1); 58 LLXfer_File xff(oversized_filename, FALSE, 1);
61 ensure("oversized local_filename nul-terminated", 59 ensure("oversized local_filename nul-terminated",
62 strnlen(xff.getName(), LL_MAX_PATH) < LL_MAX_PATH); 60 xff.getFileName().length() < LL_MAX_PATH);
63 } 61 }
64} 62}
diff --git a/linden/indra/test/message_tut.cpp b/linden/indra/test/message_tut.cpp
index b619d38..f3325f0 100644
--- a/linden/indra/test/message_tut.cpp
+++ b/linden/indra/test/message_tut.cpp
@@ -35,6 +35,8 @@
35#include "lltut.h" 35#include "lltut.h"
36 36
37#include "llapr.h" 37#include "llapr.h"
38#include "llmessageconfig.h"
39#include "llsdserialize.h"
38#include "llversionserver.h" 40#include "llversionserver.h"
39#include "message.h" 41#include "message.h"
40#include "message_prehash.h" 42#include "message_prehash.h"
@@ -56,10 +58,13 @@ namespace tut
56{ 58{
57 struct LLMessageSystemTestData 59 struct LLMessageSystemTestData
58 { 60 {
61 std::string mTestConfigDir;
62 std::string mSep;
63
59 LLMessageSystemTestData() 64 LLMessageSystemTestData()
60 { 65 {
61 static bool init = false; 66 static bool init = false;
62 if(! init) 67 if(!init)
63 { 68 {
64 ll_init_apr(); 69 ll_init_apr();
65 //init_prehash_data(); 70 //init_prehash_data();
@@ -72,7 +77,25 @@ namespace tut
72 LL_VERSION_MINOR, 77 LL_VERSION_MINOR,
73 LL_VERSION_PATCH, 78 LL_VERSION_PATCH,
74 FALSE, 79 FALSE,
75 "notasharedsecret"); 80 "notasharedsecret",
81 NULL,
82 false);
83 // generate temp dir
84 std::ostringstream ostr;
85#if LL_WINDOWS
86 mSep = "\\";
87 ostr << "C:" << mSep;
88#else
89 mSep = "/";
90 ostr << mSep << "tmp" << mSep;
91#endif
92 LLUUID random;
93 random.generate();
94 ostr << "message-test-" << random;
95 mTestConfigDir = ostr.str();
96 LLFile::mkdir(mTestConfigDir);
97 writeConfigFile(LLSD());
98 LLMessageConfig::initClass("simulator", ostr.str());
76 } 99 }
77 100
78 ~LLMessageSystemTestData() 101 ~LLMessageSystemTestData()
@@ -80,6 +103,28 @@ namespace tut
80 // not end_messaging_system() 103 // not end_messaging_system()
81 delete gMessageSystem; 104 delete gMessageSystem;
82 gMessageSystem = NULL; 105 gMessageSystem = NULL;
106
107 // rm contents of temp dir
108 std::ostringstream ostr;
109 ostr << mTestConfigDir << mSep << "message.xml";
110 int rmfile = LLFile::remove(ostr.str());
111 ensure_equals("rmfile value", rmfile, 0);
112
113 // rm temp dir
114 int rmdir = LLFile::rmdir(mTestConfigDir);
115 ensure_equals("rmdir value", rmdir, 0);
116 }
117
118 void writeConfigFile(const LLSD& config)
119 {
120 std::ostringstream ostr;
121 ostr << mTestConfigDir << mSep << "message.xml";
122 llofstream file(ostr.str());
123 if (file.is_open())
124 {
125 LLSDSerialize::toPrettyXML(config, file);
126 }
127 file.close();
83 } 128 }
84 }; 129 };
85 130
diff --git a/linden/indra/test/mock_http_client.cpp b/linden/indra/test/mock_http_client.cpp
new file mode 100644
index 0000000..c24c469
--- /dev/null
+++ b/linden/indra/test/mock_http_client.cpp
@@ -0,0 +1,88 @@
1/**
2 * @file mock_http_client.cpp
3 * @brief Framework for testing HTTP requests
4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#include "linden_common.h"
33#include "llsdhttpserver.h"
34#include "lliohttpserver.h"
35
36namespace tut
37{
38 class SuccessNode : public LLHTTPNode
39 {
40 public:
41 void get(ResponsePtr r, const LLSD& context) const
42 {
43 LLSD result;
44 result["state"] = "complete";
45 result["test"] = "test";
46 r->result(result);
47 }
48 void post(ResponsePtr r, const LLSD& context, const LLSD& input) const
49 {
50 LLSD result;
51 result["state"] = "complete";
52 result["test"] = "test";
53 r->result(result);
54 }
55 };
56
57 class ErrorNode : public LLHTTPNode
58 {
59 public:
60 void get(ResponsePtr r, const LLSD& context) const
61 { r->status(599, "Intentional error"); }
62 void post(ResponsePtr r, const LLSD& context, const LLSD& input) const
63 { r->status(input["status"], input["reason"]); }
64 };
65
66 class TimeOutNode : public LLHTTPNode
67 {
68 public:
69 void get(ResponsePtr r, const LLSD& context) const
70 {
71 /* do nothing, the request will eventually time out */
72 }
73 };
74
75 LLSD storage;
76
77 class LLSDStorageNode : public LLHTTPNode
78 {
79 public:
80 LLSD get() const{ return storage; }
81 LLSD put(const LLSD& value) const{ storage = value; return LLSD(); }
82 };
83
84 LLHTTPRegistration<LLSDStorageNode> gStorageNode("/test/storage");
85 LLHTTPRegistration<SuccessNode> gSuccessNode("/test/success");
86 LLHTTPRegistration<ErrorNode> gErrorNode("/test/error");
87 LLHTTPRegistration<TimeOutNode> gTimeOutNode("/test/timeout");
88}
diff --git a/linden/indra/test/mock_http_client.h b/linden/indra/test/mock_http_client.h
new file mode 100644
index 0000000..c3f1ade
--- /dev/null
+++ b/linden/indra/test/mock_http_client.h
@@ -0,0 +1,196 @@
1/**
2 * @file mock_http_client.cpp
3 * @brief Framework for testing HTTP requests
4 *
5 * $LicenseInfo:firstyear=2007&license=viewergpl$
6 *
7 * Copyright (c) 2007-2008, Linden Research, Inc.
8 *
9 * Second Life Viewer Source Code
10 * The source code in this file ("Source Code") is provided by Linden Lab
11 * to you under the terms of the GNU General Public License, version 2.0
12 * ("GPL"), unless you have obtained a separate licensing agreement
13 * ("Other License"), formally executed by you and Linden Lab. Terms of
14 * the GPL can be found in doc/GPL-license.txt in this distribution, or
15 * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
16 *
17 * There are special exceptions to the terms and conditions of the GPL as
18 * it is applied to this Source Code. View the full text of the exception
19 * in the file doc/FLOSS-exception.txt in this software distribution, or
20 * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
21 *
22 * By copying, modifying or distributing this software, you acknowledge
23 * that you have read and understood your obligations described above,
24 * and agree to abide by those obligations.
25 *
26 * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
27 * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
28 * COMPLETENESS OR PERFORMANCE.
29 * $/LicenseInfo$
30 */
31
32#include "llsdhttpserver.h"
33#include "lliohttpserver.h"
34#include "llhttpclient.h"
35#include "llformat.h"
36#include "llpipeutil.h"
37#include "llpumpio.h"
38
39namespace tut
40{
41 struct MockHttpClient
42 {
43 public:
44 MockHttpClient()
45 {
46 apr_pool_create(&mPool, NULL);
47 mServerPump = new LLPumpIO(mPool);
48 mClientPump = new LLPumpIO(mPool);
49
50 LLHTTPClient::setPump(*mClientPump);
51 }
52
53 ~MockHttpClient()
54 {
55 delete mServerPump;
56 delete mClientPump;
57 apr_pool_destroy(mPool);
58 }
59
60 void setupTheServer()
61 {
62 LLHTTPNode& root = LLIOHTTPServer::create(mPool, *mServerPump, 8888);
63
64 LLHTTPStandardServices::useServices();
65 LLHTTPRegistrar::buildAllServices(root);
66 }
67
68 void runThePump(float timeout = 100.0f)
69 {
70 LLTimer timer;
71 timer.setTimerExpirySec(timeout);
72
73 while(!mSawCompleted && !timer.hasExpired())
74 {
75 if (mServerPump)
76 {
77 mServerPump->pump();
78 mServerPump->callback();
79 }
80 if (mClientPump)
81 {
82 mClientPump->pump();
83 mClientPump->callback();
84 }
85 }
86 }
87
88 void killServer()
89 {
90 delete mServerPump;
91 mServerPump = NULL;
92 }
93
94 private:
95 apr_pool_t* mPool;
96 LLPumpIO* mServerPump;
97 LLPumpIO* mClientPump;
98
99
100 protected:
101 void ensureStatusOK()
102 {
103 if (mSawError)
104 {
105 std::string msg =
106 llformat("error() called when not expected, status %d",
107 mStatus);
108 fail(msg);
109 }
110 }
111
112 void ensureStatusError()
113 {
114 if (!mSawError)
115 {
116 fail("error() wasn't called");
117 }
118 }
119
120 LLSD getResult()
121 {
122 return mResult;
123 }
124
125 protected:
126 bool mSawError;
127 U32 mStatus;
128 std::string mReason;
129 bool mSawCompleted;
130 LLSD mResult;
131 bool mResultDeleted;
132
133 class Result : public LLHTTPClient::Responder
134 {
135 protected:
136 Result(MockHttpClient& client)
137 : mClient(client)
138 {
139 }
140
141 public:
142 static boost::intrusive_ptr<Result> build(MockHttpClient& client)
143 {
144 return boost::intrusive_ptr<Result>(new Result(client));
145 }
146
147 ~Result()
148 {
149 mClient.mResultDeleted = true;
150 }
151
152 virtual void error(U32 status, const std::string& reason)
153 {
154 mClient.mSawError = true;
155 mClient.mStatus = status;
156 mClient.mReason = reason;
157 }
158
159 virtual void result(const LLSD& content)
160 {
161 mClient.mResult = content;
162 }
163
164 virtual void completed(
165 U32 status, const std::string& reason,
166 const LLSD& content)
167 {
168 LLHTTPClient::Responder::completed(status, reason, content);
169
170 mClient.mSawCompleted = true;
171 }
172
173 private:
174 MockHttpClient& mClient;
175 };
176
177 friend class Result;
178
179 protected:
180
181 void reset()
182 {
183 mSawError = false;
184 mStatus = 0;
185 mSawCompleted = false;
186 mResult.clear();
187 mResultDeleted = false;
188 }
189
190 LLHTTPClient::ResponderPtr newResult()
191 {
192 reset();
193 return Result::build(*this);
194 }
195 };
196}
diff --git a/linden/indra/test/test.cpp b/linden/indra/test/test.cpp
index df4b037..91b1b22 100644
--- a/linden/indra/test/test.cpp
+++ b/linden/indra/test/test.cpp
@@ -43,8 +43,8 @@
43#include "llerrorcontrol.h" 43#include "llerrorcontrol.h"
44#include "lltut.h" 44#include "lltut.h"
45 45
46#include <apr-1/apr_pools.h> 46#include "apr_pools.h"
47#include <apr-1/apr_getopt.h> 47#include "apr_getopt.h"
48 48
49// the CTYPE_WORKAROUND is needed for linux dev stations that don't 49// the CTYPE_WORKAROUND is needed for linux dev stations that don't
50// have the broken libc6 packages needed by our out-of-date static 50// have the broken libc6 packages needed by our out-of-date static
@@ -62,13 +62,14 @@ namespace tut
62class LLTestCallback : public tut::callback 62class LLTestCallback : public tut::callback
63{ 63{
64public: 64public:
65 LLTestCallback(bool verbose_mode) : 65 LLTestCallback(bool verbose_mode, std::ostream *stream) :
66 mVerboseMode(verbose_mode), 66 mVerboseMode(verbose_mode),
67 mTotalTests(0), 67 mTotalTests(0),
68 mPassedTests(0), 68 mPassedTests(0),
69 mFailedTests(0), 69 mFailedTests(0),
70 mSkippedTests(0), 70 mSkippedTests(0),
71 mSkipedFailTests(0) 71 mSkippedFailTests(0),
72 mStream(stream)
72 { 73 {
73 } 74 }
74 75
@@ -109,7 +110,7 @@ public:
109 out << "skipped"; 110 out << "skipped";
110 break; 111 break;
111 case tut::test_result::skip_fail: 112 case tut::test_result::skip_fail:
112 ++mSkipedFailTests; 113 ++mSkippedFailTests;
113 out << "skipped known failure"; 114 out << "skipped known failure";
114 break; 115 break;
115 default: 116 default:
@@ -122,34 +123,57 @@ public:
122 { 123 {
123 out << ": '" << tr.message << "'"; 124 out << ": '" << tr.message << "'";
124 } 125 }
126 if (mStream)
127 {
128 *mStream << out.str() << std::endl;
129 }
130
125 std::cout << out.str() << std::endl; 131 std::cout << out.str() << std::endl;
126 } 132 }
127 } 133 }
128 134
129 void run_completed() 135 void run_completed()
130 { 136 {
131 std::cout << std::endl; 137 if (mStream)
132 std::cout << "Total Tests: " << mTotalTests << std::endl; 138 {
133 std::cout << "Passed Tests: " << mPassedTests << std::endl; 139 run_completed_(*mStream);
140 }
141 run_completed_(std::cout);
142
143 if (mFailedTests > 0)
144 {
145 exit(1);
146 }
147 }
148
149private:
150 void run_completed_(std::ostream &stream)
151 {
152 stream << std::endl;
153 stream << "Total Tests: " << mTotalTests << std::endl;
154 stream << "Passed Tests: " << mPassedTests << std::endl;
155
156 stream << std::endl;
157 stream << "Total Tests: " << mTotalTests << std::endl;
158 stream << "Passed Tests: " << mPassedTests << std::endl;
134 159
135 if (mSkippedTests > 0) 160 if (mSkippedTests > 0)
136 { 161 {
137 std::cout << "Skipped Tests: " << mSkippedTests << std::endl; 162 stream << "Skipped Tests: " << mSkippedTests << std::endl;
138 } 163 }
139 164
140 if (mSkipedFailTests > 0) 165 if (mSkippedFailTests > 0)
141 { 166 {
142 std::cout << "Skipped known failures: " << mSkipedFailTests 167 stream << "Skipped known failures: " << mSkippedFailTests
143 << std::endl; 168 << std::endl;
144 } 169 }
145 170
146 if(mFailedTests > 0) 171 if(mFailedTests > 0)
147 { 172 {
148 std::cout << "*********************************" << std::endl; 173 stream << "*********************************" << std::endl;
149 std::cout << "Failed Tests: " << mFailedTests << std::endl; 174 stream << "Failed Tests: " << mFailedTests << std::endl;
150 std::cout << "Please report or fix the problem." << std::endl; 175 stream << "Please report or fix the problem." << std::endl;
151 std::cout << "*********************************" << std::endl; 176 stream << "*********************************" << std::endl;
152 exit(1);
153 } 177 }
154 } 178 }
155 179
@@ -159,7 +183,8 @@ protected:
159 int mPassedTests; 183 int mPassedTests;
160 int mFailedTests; 184 int mFailedTests;
161 int mSkippedTests; 185 int mSkippedTests;
162 int mSkipedFailTests; 186 int mSkippedFailTests;
187 std::ostream *mStream;
163}; 188};
164 189
165static const apr_getopt_option_t TEST_CL_OPTIONS[] = 190static const apr_getopt_option_t TEST_CL_OPTIONS[] =
@@ -168,7 +193,9 @@ static const apr_getopt_option_t TEST_CL_OPTIONS[] =
168 {"list", 'l', 0, "List available test groups."}, 193 {"list", 'l', 0, "List available test groups."},
169 {"verbose", 'v', 0, "Verbose output."}, 194 {"verbose", 'v', 0, "Verbose output."},
170 {"group", 'g', 1, "Run test group specified by option argument."}, 195 {"group", 'g', 1, "Run test group specified by option argument."},
196 {"output", 'o', 1, "Write output to the named file."},
171 {"skip", 's', 1, "Skip test number specified by option argument. Only works when a specific group is being tested"}, 197 {"skip", 's', 1, "Skip test number specified by option argument. Only works when a specific group is being tested"},
198 {"touch", 't', 1, "Touch the given file if all tests succeed"},
172 {"wait", 'w', 0, "Wait for input before exit."}, 199 {"wait", 'w', 0, "Wait for input before exit."},
173 {"debug", 'd', 0, "Emit full debug logs."}, 200 {"debug", 'd', 0, "Emit full debug logs."},
174 {0, 0, 0, 0} 201 {0, 0, 0, 0}
@@ -256,6 +283,9 @@ int main(int argc, char **argv)
256 apr_status_t apr_err; 283 apr_status_t apr_err;
257 const char* opt_arg = NULL; 284 const char* opt_arg = NULL;
258 int opt_id = 0; 285 int opt_id = 0;
286 std::ofstream *output = NULL;
287 const char *touch = NULL;
288
259 while(true) 289 while(true)
260 { 290 {
261 apr_err = apr_getopt_long(os, TEST_CL_OPTIONS, &opt_id, &opt_arg); 291 apr_err = apr_getopt_long(os, TEST_CL_OPTIONS, &opt_id, &opt_arg);
@@ -285,6 +315,13 @@ int main(int argc, char **argv)
285 case 'v': 315 case 'v':
286 verbose_mode = true; 316 verbose_mode = true;
287 break; 317 break;
318 case 'o':
319 output = new std::ofstream;
320 output->open(opt_arg);
321 break;
322 case 't':
323 touch = opt_arg;
324 break;
288 case 'w': 325 case 'w':
289 wait_at_exit = true; 326 wait_at_exit = true;
290 break; 327 break;
@@ -301,7 +338,7 @@ int main(int argc, char **argv)
301 } 338 }
302 339
303 // run the tests 340 // run the tests
304 LLTestCallback callback(verbose_mode); 341 LLTestCallback callback(verbose_mode, output);
305 tut::runner.get().set_callback(&callback); 342 tut::runner.get().set_callback(&callback);
306 343
307 if(test_group.empty()) 344 if(test_group.empty())
@@ -319,6 +356,20 @@ int main(int argc, char **argv)
319 std::cin.get(); 356 std::cin.get();
320 } 357 }
321 358
359 if (output)
360 {
361 output->close();
362 delete output;
363 }
364
365 if (touch)
366 {
367 std::ofstream s;
368 s.open(touch);
369 s << "ok" << std::endl;
370 s.close();
371 }
372
322 apr_terminate(); 373 apr_terminate();
323 return 0; 374 return 0;
324} 375}
diff --git a/linden/indra/test/test.vcproj b/linden/indra/test/test.vcproj
deleted file mode 100644
index f720d9a..0000000
--- a/linden/indra/test/test.vcproj
+++ /dev/null
@@ -1,344 +0,0 @@
1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject
3 ProjectType="Visual C++"
4 Version="7.10"
5 Name="test"
6 ProjectGUID="{BBAA6588-CA96-4A87-A988-B02270B8D02B}"
7 RootNamespace="test"
8 Keyword="Win32Proj">
9 <Platforms>
10 <Platform
11 Name="Win32"/>
12 </Platforms>
13 <Configurations>
14 <Configuration
15 Name="Debug|Win32"
16 OutputDirectory="Debug"
17 IntermediateDirectory="Debug"
18 ConfigurationType="1"
19 CharacterSet="2">
20 <Tool
21 Name="VCCLCompilerTool"
22 Optimization="0"
23 AdditionalIncludeDirectories="..\;..\llcharacter;..\llcommon;..\lldatabase;..\llinventory;..\llmath;..\llmessage;..\llprimitive;..\llxml;&quot;..\..\libraries\i686-win32\include&quot;;..\..\libraries\include"
24 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;LL_WINDOWS;LL_DEBUG"
25 MinimalRebuild="FALSE"
26 BasicRuntimeChecks="3"
27 RuntimeLibrary="1"
28 RuntimeTypeInfo="TRUE"
29 UsePrecompiledHeader="0"
30 WarningLevel="3"
31 Detect64BitPortabilityProblems="FALSE"
32 DebugInformationFormat="3"/>
33 <Tool
34 Name="VCCustomBuildTool"/>
35 <Tool
36 Name="VCLinkerTool"
37 AdditionalOptions="/FORCE:MULTIPLE"
38 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-sgd-1_34_1.lib libcurld.lib libeay32.lib libexpatMT.lib llcommon.lib llphysics.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib psapi.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
39 OutputFile="$(OutDir)/test.exe"
40 LinkIncremental="2"
41 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_debug&quot;"
42 IgnoreDefaultLibraryNames="libcmt.lib"
43 GenerateDebugInformation="TRUE"
44 ProgramDatabaseFile="$(OutDir)/test.pdb"
45 SubSystem="1"
46 TargetMachine="1"/>
47 <Tool
48 Name="VCMIDLTool"/>
49 <Tool
50 Name="VCPostBuildEventTool"/>
51 <Tool
52 Name="VCPreBuildEventTool"/>
53 <Tool
54 Name="VCPreLinkEventTool"/>
55 <Tool
56 Name="VCResourceCompilerTool"/>
57 <Tool
58 Name="VCWebServiceProxyGeneratorTool"/>
59 <Tool
60 Name="VCXMLDataGeneratorTool"/>
61 <Tool
62 Name="VCWebDeploymentTool"/>
63 <Tool
64 Name="VCManagedWrapperGeneratorTool"/>
65 <Tool
66 Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
67 </Configuration>
68 <Configuration
69 Name="Release|Win32"
70 OutputDirectory="Release"
71 IntermediateDirectory="Release"
72 ConfigurationType="1"
73 CharacterSet="2">
74 <Tool
75 Name="VCCLCompilerTool"
76 Optimization="0"
77 AdditionalIncludeDirectories="..\;..\llcharacter;..\llcommon;..\lldatabase;..\llinventory;..\llmath;..\llmessage;..\llprimitive;..\llxml;&quot;..\..\libraries\i686-win32\include&quot;;..\..\libraries\include"
78 PreprocessorDefinitions="WIN32;__WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;APR_DECLARE_STATIC;LL_HTTPD=1"
79 MinimalRebuild="FALSE"
80 BasicRuntimeChecks="3"
81 RuntimeLibrary="1"
82 ForceConformanceInForLoopScope="TRUE"
83 RuntimeTypeInfo="TRUE"
84 UsePrecompiledHeader="0"
85 WarningLevel="3"
86 Detect64BitPortabilityProblems="FALSE"
87 DebugInformationFormat="3"/>
88 <Tool
89 Name="VCCustomBuildTool"/>
90 <Tool
91 Name="VCLinkerTool"
92 AdditionalOptions="/FORCE:MULTIPLE"
93 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib llcommon.lib llphysics.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib psapi.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
94 OutputFile="$(OutDir)/test.exe"
95 LinkIncremental="2"
96 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
97 IgnoreDefaultLibraryNames="libcmt.lib"
98 GenerateDebugInformation="TRUE"
99 ProgramDatabaseFile="$(OutDir)/test.pdb"
100 SubSystem="1"
101 TargetMachine="1"/>
102 <Tool
103 Name="VCMIDLTool"/>
104 <Tool
105 Name="VCPostBuildEventTool"
106 CommandLine="$(TargetPath)"/>
107 <Tool
108 Name="VCPreBuildEventTool"/>
109 <Tool
110 Name="VCPreLinkEventTool"/>
111 <Tool
112 Name="VCResourceCompilerTool"/>
113 <Tool
114 Name="VCWebServiceProxyGeneratorTool"/>
115 <Tool
116 Name="VCXMLDataGeneratorTool"/>
117 <Tool
118 Name="VCWebDeploymentTool"/>
119 <Tool
120 Name="VCManagedWrapperGeneratorTool"/>
121 <Tool
122 Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
123 </Configuration>
124 <Configuration
125 Name="ReleaseNoOpt|Win32"
126 OutputDirectory="$(ConfigurationName)"
127 IntermediateDirectory="$(ConfigurationName)"
128 ConfigurationType="1"
129 CharacterSet="2">
130 <Tool
131 Name="VCCLCompilerTool"
132 Optimization="0"
133 AdditionalIncludeDirectories="..\;..\llcharacter;..\llcommon;..\lldatabase;..\llinventory;..\llmath;..\llmessage;..\llprimitive;..\llxml;&quot;..\..\libraries\i686-win32\include&quot;;..\..\libraries\include"
134 PreprocessorDefinitions="WIN32;__WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;LL_RELEASE;APR_DECLARE_STATIC;LL_HTTPD=1"
135 MinimalRebuild="FALSE"
136 BasicRuntimeChecks="3"
137 RuntimeLibrary="1"
138 ForceConformanceInForLoopScope="TRUE"
139 RuntimeTypeInfo="TRUE"
140 UsePrecompiledHeader="0"
141 WarningLevel="3"
142 Detect64BitPortabilityProblems="FALSE"
143 DebugInformationFormat="3"/>
144 <Tool
145 Name="VCCustomBuildTool"/>
146 <Tool
147 Name="VCLinkerTool"
148 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib gdi32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc71-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib psapi.lib shell32.lib ssleay32.lib user32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
149 OutputFile="$(OutDir)/test.exe"
150 LinkIncremental="2"
151 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
152 IgnoreDefaultLibraryNames="libcmt.lib"
153 GenerateDebugInformation="TRUE"
154 ProgramDatabaseFile="$(OutDir)/test.pdb"
155 SubSystem="1"
156 TargetMachine="1"/>
157 <Tool
158 Name="VCMIDLTool"/>
159 <Tool
160 Name="VCPostBuildEventTool"
161 CommandLine="&quot;$(TargetPath)&quot;"/>
162 <Tool
163 Name="VCPreBuildEventTool"/>
164 <Tool
165 Name="VCPreLinkEventTool"/>
166 <Tool
167 Name="VCResourceCompilerTool"/>
168 <Tool
169 Name="VCWebServiceProxyGeneratorTool"/>
170 <Tool
171 Name="VCXMLDataGeneratorTool"/>
172 <Tool
173 Name="VCWebDeploymentTool"/>
174 <Tool
175 Name="VCManagedWrapperGeneratorTool"/>
176 <Tool
177 Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
178 </Configuration>
179 </Configurations>
180 <References>
181 </References>
182 <Files>
183 <Filter
184 Name="Source Files"
185 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
186 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
187 <File
188 RelativePath=".\common.cpp">
189 </File>
190 <File
191 RelativePath=".\inventory.cpp">
192 </File>
193 <File
194 RelativePath=".\io.cpp">
195 </File>
196 <File
197 RelativePath=".\llapp_tut.cpp">
198 </File>
199 <File
200 RelativePath=".\llbase64_tut.cpp">
201 </File>
202 <File
203 RelativePath=".\llbuffer_tut.cpp">
204 </File>
205
206 <File
207 RelativePath=".\lldate_tut.cpp">
208 </File>
209 <File
210 RelativePath=".\llerror_tut.cpp">
211 </File>
212 <File
213 RelativePath=".\llhost_tut.cpp">
214 </File>
215 <File
216 RelativePath=".\llhttpclient_tut.cpp">
217 </File>
218 <File
219 RelativePath=".\lljoint_tut.cpp">
220 </File>
221 <File
222 RelativePath=".\llmessageconfig_tut.cpp">
223 </File>
224 <File
225 RelativePath=".\llmime_tut.cpp">
226 </File>
227 <File
228 RelativePath=".\llnamevalue_tut.cpp">
229 </File>
230 <File
231 RelativePath=".\llpermissions_tut.cpp">
232 </File>
233 <File
234 RelativePath=".\llpipeutil.cpp">
235 </File>
236 <File
237 RelativePath=".\llquaternion_tut.cpp">
238 </File>
239 <File
240 RelativePath=".\llrandom_tut.cpp">
241 </File>
242 <File
243 RelativePath=".\llsaleinfo_tut.cpp">
244 </File>
245 <File
246 RelativePath=".\llsd_new_tut.cpp">
247 </File>
248 <File
249 RelativePath=".\llsdmessagebuilder_tut.cpp">
250 </File>
251 <File
252 RelativePath=".\llsdmessagereader_tut.cpp">
253 </File>
254 <File
255 RelativePath=".\llsdserialize_tut.cpp">
256 </File>
257 <File
258 RelativePath=".\llsdtraits.h">
259 </File>
260 <File
261 RelativePath=".\llsdutil_tut.cpp">
262 </File>
263 <File
264 RelativePath=".\llservicebuilder_tut.cpp">
265 </File>
266 <File
267 RelativePath=".\llstreamtools_tut.cpp">
268 </File>
269 <File
270 RelativePath=".\lltemplatemessagebuilder_tut.cpp">
271 </File>
272 <File
273 RelativePath=".\lltiming_tut.cpp">
274 </File>
275 <File
276 RelativePath=".\lltut.cpp">
277 </File>
278 <File
279 RelativePath=".\lluri_tut.cpp">
280 </File>
281 <File
282 RelativePath=".\lluserrelations_tut.cpp">
283 </File>
284 <File
285 RelativePath=".\lluuidhashmap_tut.cpp">
286 </File>
287
288 <File
289 RelativePath=".\math.cpp">
290 </File>
291 <File
292 RelativePath=".\prim_linkability_tut.cpp">
293 </File>
294 <File
295 RelativePath=".\reflection_tut.cpp">
296 </File>
297 <File
298 RelativePath=".\test.cpp">
299 </File>
300 <File
301 RelativePath=".\v2math_tut.cpp">
302 </File>
303 <File
304 RelativePath=".\v3color_tut.cpp">
305 </File>
306 <File
307 RelativePath=".\v3dmath_tut.cpp">
308 </File>
309 <File
310 RelativePath=".\v3math_tut.cpp">
311 </File>
312 <File
313 RelativePath=".\v4color_tut.cpp">
314 </File>
315 <File
316 RelativePath=".\v4coloru_tut.cpp">
317 </File>
318 <File
319 RelativePath=".\v4math_tut.cpp">
320 </File>
321 <File
322 RelativePath=".\xform_tut.cpp">
323 </File>
324 </Filter>
325 <Filter
326 Name="Header Files"
327 Filter="h;hpp;hxx;hm;inl;inc;xsd"
328 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}">
329 <File
330 RelativePath=".\llpipeutil.h">
331 </File>
332 <File
333 RelativePath=".\lltut.h">
334 </File>
335 </Filter>
336 <Filter
337 Name="Resource Files"
338 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
339 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}">
340 </Filter>
341 </Files>
342 <Globals>
343 </Globals>
344</VisualStudioProject>
diff --git a/linden/indra/test/test_llmanifest.py b/linden/indra/test/test_llmanifest.py
index 1ad5116..764e421 100644
--- a/linden/indra/test/test_llmanifest.py
+++ b/linden/indra/test/test_llmanifest.py
@@ -56,7 +56,8 @@ class Demo_ArchManifest(llmanifest.LLManifest):
56class TestLLManifest(unittest.TestCase): 56class TestLLManifest(unittest.TestCase):
57 mode='static' 57 mode='static'
58 def setUp(self): 58 def setUp(self):
59 self.m = llmanifest.LLManifest("src", "dst", {'grid':'default', 'platform':'darwin', 'version':(1,2,3,4)}) 59 self.m = llmanifest.LLManifest({'source':'src', 'dest':'dst', 'grid':'default', 'platform':'darwin', 'version':(1,2,3,4),
60 'artwork':'art', 'build':'build'})
60 61
61 def testproperwindowspath(self): 62 def testproperwindowspath(self):
62 self.assertEqual(llmanifest.proper_windows_path("C:\Program Files", "cygwin"),"/cygdrive/c/Program Files") 63 self.assertEqual(llmanifest.proper_windows_path("C:\Program Files", "cygwin"),"/cygdrive/c/Program Files")
diff --git a/linden/indra/test/test_vc8.vcproj b/linden/indra/test/test_vc8.vcproj
deleted file mode 100644
index 6d47de8..0000000
--- a/linden/indra/test/test_vc8.vcproj
+++ /dev/null
@@ -1,455 +0,0 @@
1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject
3 ProjectType="Visual C++"
4 Version="8.00"
5 Name="test"
6 ProjectGUID="{BBAA6588-CA96-4A87-A988-B02270B8D02B}"
7 RootNamespace="test"
8 Keyword="Win32Proj"
9 >
10 <Platforms>
11 <Platform
12 Name="Win32"
13 />
14 </Platforms>
15 <ToolFiles>
16 </ToolFiles>
17 <Configurations>
18 <Configuration
19 Name="Debug|Win32"
20 OutputDirectory="Debug"
21 IntermediateDirectory="Debug"
22 ConfigurationType="1"
23 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
24 CharacterSet="2"
25 >
26 <Tool
27 Name="VCPreBuildEventTool"
28 />
29 <Tool
30 Name="VCCustomBuildTool"
31 />
32 <Tool
33 Name="VCXMLDataGeneratorTool"
34 />
35 <Tool
36 Name="VCWebServiceProxyGeneratorTool"
37 />
38 <Tool
39 Name="VCMIDLTool"
40 />
41 <Tool
42 Name="VCCLCompilerTool"
43 Optimization="0"
44 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;"
45 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG"
46 MinimalRebuild="false"
47 BasicRuntimeChecks="3"
48 RuntimeLibrary="1"
49 TreatWChar_tAsBuiltInType="false"
50 RuntimeTypeInfo="true"
51 UsePrecompiledHeader="0"
52 WarningLevel="3"
53 Detect64BitPortabilityProblems="false"
54 DebugInformationFormat="3"
55 />
56 <Tool
57 Name="VCManagedResourceCompilerTool"
58 />
59 <Tool
60 Name="VCResourceCompilerTool"
61 />
62 <Tool
63 Name="VCPreLinkEventTool"
64 />
65 <Tool
66 Name="VCLinkerTool"
67 AdditionalOptions="/FORCE:MULTIPLE"
68 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-sgd-1_34_1.lib libboost_signals-vc80-mt-sgd-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib llcommon.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
69 OutputFile="$(OutDir)/test.exe"
70 LinkIncremental="2"
71 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_debug&quot;"
72 IgnoreDefaultLibraryNames="libcmt.lib"
73 GenerateDebugInformation="true"
74 ProgramDatabaseFile="$(OutDir)/test.pdb"
75 SubSystem="1"
76 TargetMachine="1"
77 />
78 <Tool
79 Name="VCALinkTool"
80 />
81 <Tool
82 Name="VCManifestTool"
83 />
84 <Tool
85 Name="VCXDCMakeTool"
86 />
87 <Tool
88 Name="VCBscMakeTool"
89 />
90 <Tool
91 Name="VCFxCopTool"
92 />
93 <Tool
94 Name="VCAppVerifierTool"
95 />
96 <Tool
97 Name="VCWebDeploymentTool"
98 />
99 <Tool
100 Name="VCPostBuildEventTool"
101 />
102 </Configuration>
103 <Configuration
104 Name="Release|Win32"
105 OutputDirectory="Release"
106 IntermediateDirectory="Release"
107 ConfigurationType="1"
108 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
109 CharacterSet="2"
110 >
111 <Tool
112 Name="VCPreBuildEventTool"
113 />
114 <Tool
115 Name="VCCustomBuildTool"
116 />
117 <Tool
118 Name="VCXMLDataGeneratorTool"
119 />
120 <Tool
121 Name="VCWebServiceProxyGeneratorTool"
122 />
123 <Tool
124 Name="VCMIDLTool"
125 />
126 <Tool
127 Name="VCCLCompilerTool"
128 Optimization="2"
129 InlineFunctionExpansion="2"
130 EnableIntrinsicFunctions="true"
131 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;"
132 PreprocessorDefinitions="WIN32;__WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;APR_DECLARE_STATIC;LL_HTTPD=1"
133 StringPooling="true"
134 MinimalRebuild="false"
135 BasicRuntimeChecks="0"
136 RuntimeLibrary="0"
137 TreatWChar_tAsBuiltInType="false"
138 ForceConformanceInForLoopScope="true"
139 RuntimeTypeInfo="true"
140 UsePrecompiledHeader="0"
141 WarningLevel="3"
142 WarnAsError="false"
143 Detect64BitPortabilityProblems="false"
144 DebugInformationFormat="3"
145 />
146 <Tool
147 Name="VCManagedResourceCompilerTool"
148 />
149 <Tool
150 Name="VCResourceCompilerTool"
151 />
152 <Tool
153 Name="VCPreLinkEventTool"
154 />
155 <Tool
156 Name="VCLinkerTool"
157 AdditionalOptions="/FORCE:MULTIPLE"
158 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib llcommon.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
159 OutputFile="$(OutDir)/test.exe"
160 LinkIncremental="2"
161 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
162 IgnoreDefaultLibraryNames=""
163 GenerateDebugInformation="true"
164 ProgramDatabaseFile="$(OutDir)/test.pdb"
165 SubSystem="1"
166 OptimizeReferences="1"
167 EnableCOMDATFolding="1"
168 TargetMachine="1"
169 />
170 <Tool
171 Name="VCALinkTool"
172 />
173 <Tool
174 Name="VCManifestTool"
175 />
176 <Tool
177 Name="VCXDCMakeTool"
178 />
179 <Tool
180 Name="VCBscMakeTool"
181 />
182 <Tool
183 Name="VCFxCopTool"
184 />
185 <Tool
186 Name="VCAppVerifierTool"
187 />
188 <Tool
189 Name="VCWebDeploymentTool"
190 />
191 <Tool
192 Name="VCPostBuildEventTool"
193 CommandLine="$(TargetPath)"
194 />
195 </Configuration>
196 <Configuration
197 Name="ReleaseNoOpt|Win32"
198 OutputDirectory="$(ConfigurationName)"
199 IntermediateDirectory="$(ConfigurationName)"
200 ConfigurationType="1"
201 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
202 CharacterSet="2"
203 >
204 <Tool
205 Name="VCPreBuildEventTool"
206 />
207 <Tool
208 Name="VCCustomBuildTool"
209 />
210 <Tool
211 Name="VCXMLDataGeneratorTool"
212 />
213 <Tool
214 Name="VCWebServiceProxyGeneratorTool"
215 />
216 <Tool
217 Name="VCMIDLTool"
218 />
219 <Tool
220 Name="VCCLCompilerTool"
221 Optimization="0"
222 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;"
223 PreprocessorDefinitions="WIN32;__WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;APR_DECLARE_STATIC;LL_HTTPD=1"
224 MinimalRebuild="false"
225 BasicRuntimeChecks="0"
226 RuntimeLibrary="0"
227 TreatWChar_tAsBuiltInType="false"
228 ForceConformanceInForLoopScope="true"
229 RuntimeTypeInfo="true"
230 UsePrecompiledHeader="0"
231 WarningLevel="3"
232 Detect64BitPortabilityProblems="false"
233 DebugInformationFormat="3"
234 />
235 <Tool
236 Name="VCManagedResourceCompilerTool"
237 />
238 <Tool
239 Name="VCResourceCompilerTool"
240 />
241 <Tool
242 Name="VCPreLinkEventTool"
243 />
244 <Tool
245 Name="VCLinkerTool"
246 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s-1_34_1.lib libboost_signals-vc80-mt-s-1_34_1.lib libcurl.lib libeay32.lib libexpatMT.lib llcommon.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
247 OutputFile="$(OutDir)/test.exe"
248 LinkIncremental="2"
249 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
250 IgnoreDefaultLibraryNames="libcmtd"
251 GenerateDebugInformation="true"
252 ProgramDatabaseFile="$(OutDir)/test.pdb"
253 SubSystem="1"
254 TargetMachine="1"
255 />
256 <Tool
257 Name="VCALinkTool"
258 />
259 <Tool
260 Name="VCManifestTool"
261 />
262 <Tool
263 Name="VCXDCMakeTool"
264 />
265 <Tool
266 Name="VCBscMakeTool"
267 />
268 <Tool
269 Name="VCFxCopTool"
270 />
271 <Tool
272 Name="VCAppVerifierTool"
273 />
274 <Tool
275 Name="VCWebDeploymentTool"
276 />
277 <Tool
278 Name="VCPostBuildEventTool"
279 CommandLine="$(TargetPath)"
280 />
281 </Configuration>
282 </Configurations>
283 <References>
284 </References>
285 <Files>
286 <Filter
287 Name="Source Files"
288 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
289 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
290 >
291 <File
292 RelativePath=".\common.cpp"
293 >
294 </File>
295 <File
296 RelativePath=".\inventory.cpp"
297 >
298 </File>
299 <File
300 RelativePath=".\io.cpp"
301 >
302 </File>
303 <File
304 RelativePath=".\llapp_tut.cpp"
305 >
306 </File>
307 <File
308 RelativePath=".\llbase64_tut.cpp"
309 >
310 </File>
311 <File
312 RelativePath=".\llbitpack_tut.cpp"
313 >
314 </File>
315 <File
316 RelativePath=".\llblowfish_tut.cpp"
317 >
318 </File>
319 <File
320 RelativePath=".\lldatabase_tut.cpp"
321 >
322 </File>
323 <File
324 RelativePath=".\llerror_tut.cpp"
325 >
326 </File>
327 <File
328 RelativePath=".\llhttpclient_tut.cpp"
329 >
330 </File>
331 <File
332 RelativePath=".\llhttpnode_tut.cpp"
333 >
334 </File>
335 <File
336 RelativePath=".\llinventoryparcel_tut.cpp"
337 >
338 </File>
339 <File
340 RelativePath=".\lliohttpserver_tut.cpp"
341 >
342 </File>
343 <File
344 RelativePath=".\llmessageconfig_tut.cpp"
345 >
346 </File>
347 <File
348 RelativePath=".\llmime_tut.cpp"
349 >
350 </File>
351 <File
352 RelativePath=".\llpipeutil.cpp"
353 >
354 </File>
355 <File
356 RelativePath=".\llrandom_tut.cpp"
357 >
358 </File>
359 <File
360 RelativePath=".\llsd_new_tut.cpp"
361 >
362 </File>
363 <File
364 RelativePath=".\llsdmessagebuilder_tut.cpp"
365 >
366 </File>
367 <File
368 RelativePath=".\llsdmessagereader_tut.cpp"
369 >
370 </File>
371 <File
372 RelativePath=".\llsdserialize_tut.cpp"
373 >
374 </File>
375 <File
376 RelativePath=".\llservicebuilder_tut.cpp"
377 >
378 </File>
379 <File
380 RelativePath=".\lltiming_tut.cpp"
381 >
382 </File>
383 <File
384 RelativePath=".\lltut.cpp"
385 >
386 </File>
387 <File
388 RelativePath=".\lluri_tut.cpp"
389 >
390 </File>
391 <File
392 RelativePath=".\lluserrelations_tut.cpp"
393 >
394 </File>
395 <File
396 RelativePath=".\llxfer_tut.cpp"
397 >
398 </File>
399 <File
400 RelativePath=".\math.cpp"
401 >
402 </File>
403 <File
404 RelativePath=".\reflection_tut.cpp"
405 >
406 </File>
407 <File
408 RelativePath=".\test.cpp"
409 >
410 </File>
411 <File
412 RelativePath=".\v2math_tut.cpp"
413 >
414 </File>
415 <File
416 RelativePath=".\v3dmath_tut.cpp"
417 >
418 </File>
419 <File
420 RelativePath=".\v3math_tut.cpp"
421 >
422 </File>
423 <File
424 RelativePath=".\xform_tut.cpp"
425 >
426 </File>
427 </Filter>
428 <Filter
429 Name="Header Files"
430 Filter="h;hpp;hxx;hm;inl;inc;xsd"
431 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
432 >
433 <File
434 RelativePath=".\llpipeutil.h"
435 >
436 </File>
437 <File
438 RelativePath=".\llsdtraits.h"
439 >
440 </File>
441 <File
442 RelativePath=".\lltut.h"
443 >
444 </File>
445 </Filter>
446 <Filter
447 Name="Resource Files"
448 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
449 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
450 >
451 </Filter>
452 </Files>
453 <Globals>
454 </Globals>
455</VisualStudioProject>
diff --git a/linden/indra/test/test_vc9.vcproj b/linden/indra/test/test_vc9.vcproj
deleted file mode 100644
index d7fcfae..0000000
--- a/linden/indra/test/test_vc9.vcproj
+++ /dev/null
@@ -1,453 +0,0 @@
1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject
3 ProjectType="Visual C++"
4 Version="9.00"
5 Name="test"
6 ProjectGUID="{BBAA6588-CA96-4A87-A988-B02270B8D02B}"
7 RootNamespace="test"
8 Keyword="Win32Proj"
9 TargetFrameworkVersion="131072"
10 >
11 <Platforms>
12 <Platform
13 Name="Win32"
14 />
15 </Platforms>
16 <ToolFiles>
17 </ToolFiles>
18 <Configurations>
19 <Configuration
20 Name="Debug|Win32"
21 OutputDirectory="Debug"
22 IntermediateDirectory="Debug"
23 ConfigurationType="1"
24 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
25 CharacterSet="2"
26 >
27 <Tool
28 Name="VCPreBuildEventTool"
29 />
30 <Tool
31 Name="VCCustomBuildTool"
32 />
33 <Tool
34 Name="VCXMLDataGeneratorTool"
35 />
36 <Tool
37 Name="VCWebServiceProxyGeneratorTool"
38 />
39 <Tool
40 Name="VCMIDLTool"
41 />
42 <Tool
43 Name="VCCLCompilerTool"
44 Optimization="0"
45 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;"
46 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG"
47 MinimalRebuild="false"
48 BasicRuntimeChecks="3"
49 RuntimeLibrary="1"
50 TreatWChar_tAsBuiltInType="false"
51 RuntimeTypeInfo="true"
52 UsePrecompiledHeader="0"
53 WarningLevel="3"
54 Detect64BitPortabilityProblems="false"
55 DebugInformationFormat="3"
56 />
57 <Tool
58 Name="VCManagedResourceCompilerTool"
59 />
60 <Tool
61 Name="VCResourceCompilerTool"
62 />
63 <Tool
64 Name="VCPreLinkEventTool"
65 />
66 <Tool
67 Name="VCLinkerTool"
68 AdditionalOptions="/FORCE:MULTIPLE"
69 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib llcommon.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
70 OutputFile="$(OutDir)/test.exe"
71 LinkIncremental="2"
72 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_debug&quot;"
73 IgnoreDefaultLibraryNames="libcmt.lib"
74 GenerateDebugInformation="true"
75 ProgramDatabaseFile="$(OutDir)/test.pdb"
76 SubSystem="1"
77 RandomizedBaseAddress="1"
78 DataExecutionPrevention="0"
79 TargetMachine="1"
80 />
81 <Tool
82 Name="VCALinkTool"
83 />
84 <Tool
85 Name="VCManifestTool"
86 />
87 <Tool
88 Name="VCXDCMakeTool"
89 />
90 <Tool
91 Name="VCBscMakeTool"
92 />
93 <Tool
94 Name="VCFxCopTool"
95 />
96 <Tool
97 Name="VCAppVerifierTool"
98 />
99 <Tool
100 Name="VCPostBuildEventTool"
101 />
102 </Configuration>
103 <Configuration
104 Name="Release|Win32"
105 OutputDirectory="Release"
106 IntermediateDirectory="Release"
107 ConfigurationType="1"
108 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
109 CharacterSet="2"
110 >
111 <Tool
112 Name="VCPreBuildEventTool"
113 />
114 <Tool
115 Name="VCCustomBuildTool"
116 />
117 <Tool
118 Name="VCXMLDataGeneratorTool"
119 />
120 <Tool
121 Name="VCWebServiceProxyGeneratorTool"
122 />
123 <Tool
124 Name="VCMIDLTool"
125 />
126 <Tool
127 Name="VCCLCompilerTool"
128 Optimization="2"
129 InlineFunctionExpansion="2"
130 EnableIntrinsicFunctions="true"
131 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;"
132 PreprocessorDefinitions="WIN32;__WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;APR_DECLARE_STATIC;LL_HTTPD=1"
133 StringPooling="true"
134 MinimalRebuild="false"
135 BasicRuntimeChecks="0"
136 RuntimeLibrary="0"
137 TreatWChar_tAsBuiltInType="false"
138 ForceConformanceInForLoopScope="true"
139 RuntimeTypeInfo="true"
140 UsePrecompiledHeader="0"
141 WarningLevel="3"
142 WarnAsError="false"
143 Detect64BitPortabilityProblems="false"
144 DebugInformationFormat="3"
145 />
146 <Tool
147 Name="VCManagedResourceCompilerTool"
148 />
149 <Tool
150 Name="VCResourceCompilerTool"
151 />
152 <Tool
153 Name="VCPreLinkEventTool"
154 />
155 <Tool
156 Name="VCLinkerTool"
157 AdditionalOptions="/FORCE:MULTIPLE"
158 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr8.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib llcommon.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
159 OutputFile="$(OutDir)/test.exe"
160 LinkIncremental="2"
161 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
162 IgnoreDefaultLibraryNames=""
163 GenerateDebugInformation="true"
164 ProgramDatabaseFile="$(OutDir)/test.pdb"
165 SubSystem="1"
166 OptimizeReferences="1"
167 EnableCOMDATFolding="1"
168 RandomizedBaseAddress="1"
169 DataExecutionPrevention="0"
170 TargetMachine="1"
171 />
172 <Tool
173 Name="VCALinkTool"
174 />
175 <Tool
176 Name="VCManifestTool"
177 />
178 <Tool
179 Name="VCXDCMakeTool"
180 />
181 <Tool
182 Name="VCBscMakeTool"
183 />
184 <Tool
185 Name="VCFxCopTool"
186 />
187 <Tool
188 Name="VCAppVerifierTool"
189 />
190 <Tool
191 Name="VCPostBuildEventTool"
192 CommandLine="$(TargetPath)"
193 />
194 </Configuration>
195 <Configuration
196 Name="ReleaseNoOpt|Win32"
197 OutputDirectory="$(ConfigurationName)"
198 IntermediateDirectory="$(ConfigurationName)"
199 ConfigurationType="1"
200 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
201 CharacterSet="2"
202 >
203 <Tool
204 Name="VCPreBuildEventTool"
205 />
206 <Tool
207 Name="VCCustomBuildTool"
208 />
209 <Tool
210 Name="VCXMLDataGeneratorTool"
211 />
212 <Tool
213 Name="VCWebServiceProxyGeneratorTool"
214 />
215 <Tool
216 Name="VCMIDLTool"
217 />
218 <Tool
219 Name="VCCLCompilerTool"
220 Optimization="0"
221 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;"
222 PreprocessorDefinitions="WIN32;__WIN32;NDEBUG;_WINDOWS;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_RELEASE;APR_DECLARE_STATIC;LL_HTTPD=1"
223 MinimalRebuild="false"
224 BasicRuntimeChecks="0"
225 RuntimeLibrary="0"
226 TreatWChar_tAsBuiltInType="false"
227 ForceConformanceInForLoopScope="true"
228 RuntimeTypeInfo="true"
229 UsePrecompiledHeader="0"
230 WarningLevel="3"
231 Detect64BitPortabilityProblems="false"
232 DebugInformationFormat="3"
233 />
234 <Tool
235 Name="VCManagedResourceCompilerTool"
236 />
237 <Tool
238 Name="VCResourceCompilerTool"
239 />
240 <Tool
241 Name="VCPreLinkEventTool"
242 />
243 <Tool
244 Name="VCLinkerTool"
245 AdditionalDependencies="advapi32.lib apr-1.lib aprutil-1.lib comdlg32.lib dinput8.lib dsound.lib dxerr.lib dxguid.lib freetype.lib gdi32.lib glu32.lib jpeglib_6b.lib kernel32.lib libboost_regex-vc80-mt-s.lib libcurl.lib libeay32.lib libexpatMT.lib llcommon.lib llprimitive.lib llvfs.lib llxml.lib lscript_library.lib mswsock.lib netapi32.lib odbc32.lib odbccp32.lib ole32.lib oleaut32.lib opengl32.lib shell32.lib ssleay32.lib user32.lib Vfw32.lib winmm.lib winspool.lib ws2_32.lib xmlrpcepi.lib zlib.lib"
246 OutputFile="$(OutDir)/test.exe"
247 LinkIncremental="2"
248 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
249 IgnoreDefaultLibraryNames="libcmtd"
250 GenerateDebugInformation="true"
251 ProgramDatabaseFile="$(OutDir)/test.pdb"
252 SubSystem="1"
253 RandomizedBaseAddress="1"
254 DataExecutionPrevention="0"
255 TargetMachine="1"
256 />
257 <Tool
258 Name="VCALinkTool"
259 />
260 <Tool
261 Name="VCManifestTool"
262 />
263 <Tool
264 Name="VCXDCMakeTool"
265 />
266 <Tool
267 Name="VCBscMakeTool"
268 />
269 <Tool
270 Name="VCFxCopTool"
271 />
272 <Tool
273 Name="VCAppVerifierTool"
274 />
275 <Tool
276 Name="VCPostBuildEventTool"
277 CommandLine="$(TargetPath)"
278 />
279 </Configuration>
280 </Configurations>
281 <References>
282 </References>
283 <Files>
284 <Filter
285 Name="Source Files"
286 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
287 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
288 >
289 <File
290 RelativePath=".\common.cpp"
291 >
292 </File>
293 <File
294 RelativePath=".\inventory.cpp"
295 >
296 </File>
297 <File
298 RelativePath=".\io.cpp"
299 >
300 </File>
301 <File
302 RelativePath=".\llapp_tut.cpp"
303 >
304 </File>
305 <File
306 RelativePath=".\llbase64_tut.cpp"
307 >
308 </File>
309 <File
310 RelativePath=".\llbitpack_tut.cpp"
311 >
312 </File>
313 <File
314 RelativePath=".\llblowfish_tut.cpp"
315 >
316 </File>
317 <File
318 RelativePath=".\lldatabase_tut.cpp"
319 >
320 </File>
321 <File
322 RelativePath=".\llerror_tut.cpp"
323 >
324 </File>
325 <File
326 RelativePath=".\llhttpclient_tut.cpp"
327 >
328 </File>
329 <File
330 RelativePath=".\llhttpnode_tut.cpp"
331 >
332 </File>
333 <File
334 RelativePath=".\llinventoryparcel_tut.cpp"
335 >
336 </File>
337 <File
338 RelativePath=".\lliohttpserver_tut.cpp"
339 >
340 </File>
341 <File
342 RelativePath=".\llmessageconfig_tut.cpp"
343 >
344 </File>
345 <File
346 RelativePath=".\llmime_tut.cpp"
347 >
348 </File>
349 <File
350 RelativePath=".\llpipeutil.cpp"
351 >
352 </File>
353 <File
354 RelativePath=".\llrandom_tut.cpp"
355 >
356 </File>
357 <File
358 RelativePath=".\llsd_new_tut.cpp"
359 >
360 </File>
361 <File
362 RelativePath=".\llsdmessagebuilder_tut.cpp"
363 >
364 </File>
365 <File
366 RelativePath=".\llsdmessagereader_tut.cpp"
367 >
368 </File>
369 <File
370 RelativePath=".\llsdserialize_tut.cpp"
371 >
372 </File>
373 <File
374 RelativePath=".\llservicebuilder_tut.cpp"
375 >
376 </File>
377 <File
378 RelativePath=".\lltiming_tut.cpp"
379 >
380 </File>
381 <File
382 RelativePath=".\lltut.cpp"
383 >
384 </File>
385 <File
386 RelativePath=".\lluri_tut.cpp"
387 >
388 </File>
389 <File
390 RelativePath=".\lluserrelations_tut.cpp"
391 >
392 </File>
393 <File
394 RelativePath=".\llxfer_tut.cpp"
395 >
396 </File>
397 <File
398 RelativePath=".\math.cpp"
399 >
400 </File>
401 <File
402 RelativePath=".\reflection_tut.cpp"
403 >
404 </File>
405 <File
406 RelativePath=".\test.cpp"
407 >
408 </File>
409 <File
410 RelativePath=".\v2math_tut.cpp"
411 >
412 </File>
413 <File
414 RelativePath=".\v3dmath_tut.cpp"
415 >
416 </File>
417 <File
418 RelativePath=".\v3math_tut.cpp"
419 >
420 </File>
421 <File
422 RelativePath=".\xform_tut.cpp"
423 >
424 </File>
425 </Filter>
426 <Filter
427 Name="Header Files"
428 Filter="h;hpp;hxx;hm;inl;inc;xsd"
429 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
430 >
431 <File
432 RelativePath=".\llpipeutil.h"
433 >
434 </File>
435 <File
436 RelativePath=".\llsdtraits.h"
437 >
438 </File>
439 <File
440 RelativePath=".\lltut.h"
441 >
442 </File>
443 </Filter>
444 <Filter
445 Name="Resource Files"
446 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
447 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
448 >
449 </Filter>
450 </Files>
451 <Globals>
452 </Globals>
453</VisualStudioProject>
diff --git a/linden/indra/test/v3dmath_tut.cpp b/linden/indra/test/v3dmath_tut.cpp
index 106b1dc..a501531 100644
--- a/linden/indra/test/v3dmath_tut.cpp
+++ b/linden/indra/test/v3dmath_tut.cpp
@@ -386,7 +386,7 @@ namespace tut
386 void v3dmath_object::test<16>() 386 void v3dmath_object::test<16>()
387 { 387 {
388 F64 x1 = 1.23, y1 = 2.0, z1 = 4.; 388 F64 x1 = 1.23, y1 = 2.0, z1 = 4.;
389 char buf[] = "1.23 2. 4"; 389 std::string buf("1.23 2. 4");
390 LLVector3d vec3D, vec3Da(x1,y1,z1); 390 LLVector3d vec3D, vec3Da(x1,y1,z1);
391 LLVector3d::parseVector3d(buf, &vec3D); 391 LLVector3d::parseVector3d(buf, &vec3D);
392 ensure_equals("1:parseVector3d: failed " , vec3D, vec3Da); 392 ensure_equals("1:parseVector3d: failed " , vec3D, vec3Da);
@@ -461,7 +461,7 @@ namespace tut
461 F64 x1 = 1111.232222; 461 F64 x1 = 1111.232222;
462 F64 y1 = 2222222222.22; 462 F64 y1 = 2222222222.22;
463 F64 z1 = 422222222222.0; 463 F64 z1 = 422222222222.0;
464 char buf[] = "1111.232222 2222222222.22 422222222222"; 464 std::string buf("1111.232222 2222222222.22 422222222222");
465 LLVector3d vec3Da, vec3Db(x1,y1,z1); 465 LLVector3d vec3Da, vec3Db(x1,y1,z1);
466 LLVector3d::parseVector3d(buf, &vec3Da); 466 LLVector3d::parseVector3d(buf, &vec3Da);
467 ensure_equals("1:parseVector3 failed", vec3Da, vec3Db); 467 ensure_equals("1:parseVector3 failed", vec3Da, vec3Db);
@@ -509,6 +509,9 @@ namespace tut
509 template<> template<> 509 template<> template<>
510 void v3dmath_object::test<24>() 510 void v3dmath_object::test<24>()
511 { 511 {
512#if LL_WINDOWS && _MSC_VER < 1400
513 skip_fail("This fails on VS2003!");
514#else
512 F64 x = 10., y = 20., z = -15.; 515 F64 x = 10., y = 20., z = -15.;
513 F64 angle1, angle2; 516 F64 angle1, angle2;
514 LLVector3d vec3Da(x,y,z), vec3Db(x,y,z); 517 LLVector3d vec3Da(x,y,z), vec3Db(x,y,z);
@@ -523,5 +526,6 @@ namespace tut
523 F64 angle = vec3Db*vec3Da; 526 F64 angle = vec3Db*vec3Da;
524 angle = acos(angle); 527 angle = acos(angle);
525 ensure("2:angle_between: Fail ", (angle == angle2)); 528 ensure("2:angle_between: Fail ", (angle == angle2));
529#endif
526 } 530 }
527} 531}
diff --git a/linden/indra/test/v3math_tut.cpp b/linden/indra/test/v3math_tut.cpp
index 30a7b7a..9989a8a 100644
--- a/linden/indra/test/v3math_tut.cpp
+++ b/linden/indra/test/v3math_tut.cpp
@@ -475,7 +475,7 @@ namespace tut
475 void v3math_object::test<28>() 475 void v3math_object::test<28>()
476 { 476 {
477 F32 x1 =1.23f, y1 = 2.f,z1 = 4.f; 477 F32 x1 =1.23f, y1 = 2.f,z1 = 4.f;
478 char buf[] = "1.23 2. 4"; 478 std::string buf("1.23 2. 4");
479 LLVector3 vec3, vec3a(x1,y1,z1); 479 LLVector3 vec3, vec3a(x1,y1,z1);
480 LLVector3::parseVector3(buf, &vec3); 480 LLVector3::parseVector3(buf, &vec3);
481 ensure_equals("1:parseVector3 failed", vec3, vec3a); 481 ensure_equals("1:parseVector3 failed", vec3, vec3a);
diff --git a/linden/indra/test/v4color_tut.cpp b/linden/indra/test/v4color_tut.cpp
index d75acb1..5458f6b 100644
--- a/linden/indra/test/v4color_tut.cpp
+++ b/linden/indra/test/v4color_tut.cpp
@@ -337,7 +337,7 @@ namespace tut
337 { 337 {
338 F32 r = 12.0f, g = -2.3f, b = 1.32f, a = 5.0f; 338 F32 r = 12.0f, g = -2.3f, b = 1.32f, a = 5.0f;
339 LLColor4 llcolor4a(r,g,b,a),llcolor4b; 339 LLColor4 llcolor4a(r,g,b,a),llcolor4b;
340 const char *color = "red"; 340 std::string color("red");
341 LLColor4::parseColor(color, &llcolor4b); 341 LLColor4::parseColor(color, &llcolor4b);
342 ensure_equals("1:parseColor() failed to parse the color value ", llcolor4b, LLColor4::red); 342 ensure_equals("1:parseColor() failed to parse the color value ", llcolor4b, LLColor4::red);
343 343
@@ -357,7 +357,7 @@ namespace tut
357 { 357 {
358 F32 r = 12.0f, g = -2.3f, b = 1.32f, a = 5.0f; 358 F32 r = 12.0f, g = -2.3f, b = 1.32f, a = 5.0f;
359 LLColor4 llcolor4a(r,g,b,a),llcolor4b; 359 LLColor4 llcolor4a(r,g,b,a),llcolor4b;
360 const char *color = "12.0, -2.3, 1.32, 5.0"; 360 std::string color("12.0, -2.3, 1.32, 5.0");
361 LLColor4::parseColor4(color, &llcolor4b); 361 LLColor4::parseColor4(color, &llcolor4b);
362 ensure_equals("parseColor4() failed to parse the color value ", llcolor4a, llcolor4b); 362 ensure_equals("parseColor4() failed to parse the color value ", llcolor4a, llcolor4b);
363 } 363 }
diff --git a/linden/indra/test/v4coloru_tut.cpp b/linden/indra/test/v4coloru_tut.cpp
index c73f91f..4c931d4 100644
--- a/linden/indra/test/v4coloru_tut.cpp
+++ b/linden/indra/test/v4coloru_tut.cpp
@@ -286,7 +286,7 @@ namespace tut
286 { 286 {
287 U8 r = 0x12, g = 0xFF, b = 0xAF, a = 12; 287 U8 r = 0x12, g = 0xFF, b = 0xAF, a = 12;
288 LLColor4U llcolor4u1(r,g,b,a); 288 LLColor4U llcolor4u1(r,g,b,a);
289 const char *color = "12, 23, 132, 50"; 289 std::string color("12, 23, 132, 50");
290 LLColor4U::parseColor4U(color, &llcolor4u1); 290 LLColor4U::parseColor4U(color, &llcolor4u1);
291 ensure("parseColor4U() failed to parse the color value ", ((12 == llcolor4u1.mV[VX]) && (23 == llcolor4u1.mV[VY]) && (132 == llcolor4u1.mV[VZ])&& (50 == llcolor4u1.mV[VW]))); 291 ensure("parseColor4U() failed to parse the color value ", ((12 == llcolor4u1.mV[VX]) && (23 == llcolor4u1.mV[VY]) && (132 == llcolor4u1.mV[VZ])&& (50 == llcolor4u1.mV[VW])));
292 292
diff --git a/linden/indra/test/v4math_tut.cpp b/linden/indra/test/v4math_tut.cpp
index f5a6bcb..07b4797 100644
--- a/linden/indra/test/v4math_tut.cpp
+++ b/linden/indra/test/v4math_tut.cpp
@@ -166,6 +166,12 @@ namespace tut
166 template<> template<> 166 template<> template<>
167 void v4math_object::test<8>() 167 void v4math_object::test<8>()
168 { 168 {
169#if LL_DEBUG && LL_WINDOWS && _MSC_VER >= 1400
170 skip_fail("This fails on VS2005 debug builds!");
171#else
172#if LL_WINDOWS && _MSC_VER < 1400
173 skip_fail("This fails on VS2003!");
174#else
169 F32 x = 10.f, y = -2.3f, z = -.023f, w = -2.0f; 175 F32 x = 10.f, y = -2.3f, z = -.023f, w = -2.0f;
170 const F32 val[10] = {1.f,2.f,3.f,.34f,.1f,-.5f,2.f,1.23f,1.234f,.89f}; 176 const F32 val[10] = {1.f,2.f,3.f,.34f,.1f,-.5f,2.f,1.23f,1.234f,.89f};
171 LLMatrix4 mat(val); 177 LLMatrix4 mat(val);
@@ -181,6 +187,8 @@ namespace tut
181 vec4c.setVec(a, b, c, d); 187 vec4c.setVec(a, b, c, d);
182 vec4c.rotVec(q); 188 vec4c.rotVec(q);
183 ensure_equals("2:rotVec: Fail " ,vec4b, vec4c); 189 ensure_equals("2:rotVec: Fail " ,vec4b, vec4c);
190#endif
191#endif
184 } 192 }
185 193
186 template<> template<> 194 template<> template<>