aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/linden/indra/test
diff options
context:
space:
mode:
Diffstat (limited to 'linden/indra/test')
-rw-r--r--linden/indra/test/common.cpp41
-rw-r--r--linden/indra/test/io.cpp30
-rw-r--r--linden/indra/test/llhttpclient_tut.cpp42
-rw-r--r--linden/indra/test/llsdserialize_tut.cpp927
-rw-r--r--linden/indra/test/test_vc8.vcproj910
-rw-r--r--linden/indra/test/test_vc9.vcproj906
6 files changed, 1875 insertions, 981 deletions
diff --git a/linden/indra/test/common.cpp b/linden/indra/test/common.cpp
index 25e2897..0bf0de4 100644
--- a/linden/indra/test/common.cpp
+++ b/linden/indra/test/common.cpp
@@ -66,7 +66,7 @@ namespace tut
66 std::string str = resp.str(); 66 std::string str = resp.str();
67 LLMemoryStream mstr((U8*)str.c_str(), str.size()); 67 LLMemoryStream mstr((U8*)str.c_str(), str.size());
68 LLSD response; 68 LLSD response;
69 S32 count = LLSDSerialize::fromNotation(response, mstr); 69 S32 count = LLSDSerialize::fromNotation(response, mstr, str.size());
70 ensure("stream parsed", response.isDefined()); 70 ensure("stream parsed", response.isDefined());
71 ensure_equals("stream parse count", count, 13); 71 ensure_equals("stream parse count", count, 13);
72 ensure_equals("sd type", response.type(), LLSD::TypeMap); 72 ensure_equals("sd type", response.type(), LLSD::TypeMap);
@@ -96,7 +96,7 @@ namespace tut
96 std::string actual(str.str()); 96 std::string actual(str.str());
97 ensure_equals("formatted binary encoding", actual, streamed); 97 ensure_equals("formatted binary encoding", actual, streamed);
98 sd.clear(); 98 sd.clear();
99 LLSDSerialize::fromNotation(sd, str); 99 LLSDSerialize::fromNotation(sd, str, str.str().size());
100 std::vector<U8> after; 100 std::vector<U8> after;
101 after = sd.asBinary(); 101 after = sd.asBinary();
102 ensure_equals("binary decoded size", after.size(), decoded.size()); 102 ensure_equals("binary decoded size", after.size(), decoded.size());
@@ -126,7 +126,7 @@ namespace tut
126 sd.clear(); 126 sd.clear();
127 ensure_equals("format count", count, 1); 127 ensure_equals("format count", count, 1);
128 LLSD sd2; 128 LLSD sd2;
129 count = LLSDSerialize::fromNotation(sd2, str); 129 count = LLSDSerialize::fromNotation(sd2, str, str.str().size());
130 ensure_equals("parse count", count, 1); 130 ensure_equals("parse count", count, 1);
131 buf_t dest = sd2.asBinary(); 131 buf_t dest = sd2.asBinary();
132 str.str(""); 132 str.str("");
@@ -149,7 +149,10 @@ namespace tut
149 serialized << "'" << LLSDNotationFormatter::escapeString(expected) 149 serialized << "'" << LLSDNotationFormatter::escapeString(expected)
150 << "'"; 150 << "'";
151 LLSD sd; 151 LLSD sd;
152 S32 count = LLSDSerialize::fromNotation(sd, serialized); 152 S32 count = LLSDSerialize::fromNotation(
153 sd,
154 serialized,
155 serialized.str().size());
153 ensure_equals("parse count", count, 1); 156 ensure_equals("parse count", count, 1);
154 ensure_equals("String streaming", sd.asString(), expected); 157 ensure_equals("String streaming", sd.asString(), expected);
155 } 158 }
@@ -173,7 +176,7 @@ namespace tut
173 str.write((const char*)&source[0], size); 176 str.write((const char*)&source[0], size);
174 str << "\""; 177 str << "\"";
175 LLSD sd; 178 LLSD sd;
176 S32 count = LLSDSerialize::fromNotation(sd, str); 179 S32 count = LLSDSerialize::fromNotation(sd, str, str.str().size());
177 ensure_equals("binary parse", count, 1); 180 ensure_equals("binary parse", count, 1);
178 buf_t actual = sd.asBinary(); 181 buf_t actual = sd.asBinary();
179 ensure_equals("binary size", actual.size(), (size_t)size); 182 ensure_equals("binary size", actual.size(), (size_t)size);
@@ -190,7 +193,7 @@ namespace tut
190 str.write(expected.c_str(), expected.size()); 193 str.write(expected.c_str(), expected.size());
191 str << "'"; 194 str << "'";
192 LLSD sd; 195 LLSD sd;
193 S32 count = LLSDSerialize::fromNotation(sd, str); 196 S32 count = LLSDSerialize::fromNotation(sd, str, str.str().size());
194 ensure_equals("parse count", count, 1); 197 ensure_equals("parse count", count, 1);
195 std::string actual = sd.asString(); 198 std::string actual = sd.asString();
196 ensure_equals("string sizes", actual.size(), expected.size()); 199 ensure_equals("string sizes", actual.size(), expected.size());
@@ -207,7 +210,10 @@ namespace tut
207 << " 'look_at':[r0,r1,r0]," 210 << " 'look_at':[r0,r1,r0],"
208 << " 'agent_access':'PG'}"; 211 << " 'agent_access':'PG'}";
209 LLSD sd; 212 LLSD sd;
210 S32 count = LLSDSerialize::fromNotation(sd, stream); 213 S32 count = LLSDSerialize::fromNotation(
214 sd,
215 stream,
216 stream.str().size());
211 ensure_equals("parse count", count, 12); 217 ensure_equals("parse count", count, 12);
212 ensure_equals("bool value", sd["connect"].asBoolean(), true); 218 ensure_equals("bool value", sd["connect"].asBoolean(), true);
213 ensure_equals("message value", sd["message"].asString(), msg); 219 ensure_equals("message value", sd["message"].asString(), msg);
@@ -225,7 +231,10 @@ namespace tut
225 std::stringstream resp; 231 std::stringstream resp;
226 resp << "{'label':'short string test', 'singlechar':'a', 'empty':'', 'endoftest':'end' }"; 232 resp << "{'label':'short string test', 'singlechar':'a', 'empty':'', 'endoftest':'end' }";
227 LLSD response; 233 LLSD response;
228 S32 count = LLSDSerialize::fromNotation(response, resp); 234 S32 count = LLSDSerialize::fromNotation(
235 response,
236 resp,
237 resp.str().size());
229 ensure_equals("parse count", count, 5); 238 ensure_equals("parse count", count, 5);
230 ensure_equals("sd type", response.type(), LLSD::TypeMap); 239 ensure_equals("sd type", response.type(), LLSD::TypeMap);
231 ensure_equals("map element count", response.size(), 4); 240 ensure_equals("map element count", response.size(), 4);
@@ -241,7 +250,7 @@ namespace tut
241 std::string str = resp.str(); 250 std::string str = resp.str();
242 LLSD sd; 251 LLSD sd;
243 LLMemoryStream mstr((U8*)str.c_str(), str.size()); 252 LLMemoryStream mstr((U8*)str.c_str(), str.size());
244 S32 count = LLSDSerialize::fromNotation(sd, mstr); 253 S32 count = LLSDSerialize::fromNotation(sd, mstr, str.size());
245 ensure_equals("parse count", count, 5); 254 ensure_equals("parse count", count, 5);
246 ensure("sd created", sd.isDefined()); 255 ensure("sd created", sd.isDefined());
247 ensure_equals("sd type", sd.type(), LLSD::TypeMap); 256 ensure_equals("sd type", sd.type(), LLSD::TypeMap);
@@ -274,7 +283,7 @@ namespace tut
274 std::string actual_str = str.str(); 283 std::string actual_str = str.str();
275 ensure_equals("stream contents", actual_str, expected_str); 284 ensure_equals("stream contents", actual_str, expected_str);
276 LLSD sd; 285 LLSD sd;
277 S32 count = LLSDSerialize::fromNotation(sd, str); 286 S32 count = LLSDSerialize::fromNotation(sd, str, actual_str.size());
278 ensure_equals("parse count", count, 2); 287 ensure_equals("parse count", count, 2);
279 ensure("valid parse", sd.isDefined()); 288 ensure("valid parse", sd.isDefined());
280 std::string actual = sd["message"].asString(); 289 std::string actual = sd["message"].asString();
@@ -288,7 +297,7 @@ namespace tut
288 std::stringstream str; 297 std::stringstream str;
289 str << "'" << LLSDNotationFormatter::escapeString(expected) << "'"; 298 str << "'" << LLSDNotationFormatter::escapeString(expected) << "'";
290 LLSD sd; 299 LLSD sd;
291 S32 count = LLSDSerialize::fromNotation(sd, str); 300 S32 count = LLSDSerialize::fromNotation(sd, str, str.str().size());
292 ensure_equals("parse count", count, 1); 301 ensure_equals("parse count", count, 1);
293 ensure_equals("string value", sd.asString(), expected); 302 ensure_equals("string value", sd.asString(), expected);
294 } 303 }
@@ -300,7 +309,7 @@ namespace tut
300 std::stringstream str; 309 std::stringstream str;
301 str << "'" << LLSDNotationFormatter::escapeString(expected) << "'"; 310 str << "'" << LLSDNotationFormatter::escapeString(expected) << "'";
302 LLSD sd; 311 LLSD sd;
303 S32 count = LLSDSerialize::fromNotation(sd, str); 312 S32 count = LLSDSerialize::fromNotation(sd, str, str.str().size());
304 ensure_equals("parse count", count, 1); 313 ensure_equals("parse count", count, 1);
305 ensure_equals("string value", sd.asString(), expected); 314 ensure_equals("string value", sd.asString(), expected);
306 } 315 }
@@ -321,7 +330,7 @@ namespace tut
321 std::stringstream str; 330 std::stringstream str;
322 str << "'" << LLSDNotationFormatter::escapeString(expected) << "'"; 331 str << "'" << LLSDNotationFormatter::escapeString(expected) << "'";
323 LLSD sd; 332 LLSD sd;
324 S32 count = LLSDSerialize::fromNotation(sd, str); 333 S32 count = LLSDSerialize::fromNotation(sd, str, expected.size());
325 ensure_equals("parse count", count, 1); 334 ensure_equals("parse count", count, 1);
326 std::string actual = sd.asString(); 335 std::string actual = sd.asString();
327/* 336/*
@@ -364,7 +373,7 @@ namespace tut
364 std::istringstream istr; 373 std::istringstream istr;
365 istr.str(param); 374 istr.str(param);
366 LLSD param_sd; 375 LLSD param_sd;
367 LLSDSerialize::fromNotation(param_sd, istr); 376 LLSDSerialize::fromNotation(param_sd, istr, param.size());
368 ensure_equals("parsed type", param_sd.type(), LLSD::TypeArray); 377 ensure_equals("parsed type", param_sd.type(), LLSD::TypeArray);
369 LLSD version_sd = param_sd[0]; 378 LLSD version_sd = param_sd[0];
370 ensure_equals("version type", version_sd.type(), LLSD::TypeMap); 379 ensure_equals("version type", version_sd.type(), LLSD::TypeMap);
@@ -383,7 +392,7 @@ namespace tut
383 std::istringstream istr; 392 std::istringstream istr;
384 istr.str(val); 393 istr.str(val);
385 LLSD sd; 394 LLSD sd;
386 LLSDSerialize::fromNotation(sd, istr); 395 LLSDSerialize::fromNotation(sd, istr, val.size());
387 ensure_equals("parsed type", sd.type(), LLSD::TypeArray); 396 ensure_equals("parsed type", sd.type(), LLSD::TypeArray);
388 ensure_equals("parsed size", sd.size(), 1); 397 ensure_equals("parsed size", sd.size(), 1);
389 LLSD failures = sd[0]["failures"]; 398 LLSD failures = sd[0]["failures"];
@@ -401,7 +410,7 @@ namespace tut
401 std::istringstream istr; 410 std::istringstream istr;
402 istr.str(val); 411 istr.str(val);
403 LLSD sd; 412 LLSD sd;
404 LLSDSerialize::fromNotation(sd, istr); 413 LLSDSerialize::fromNotation(sd, istr, val.size());
405 ensure_equals("parsed type", sd.type(), LLSD::TypeArray); 414 ensure_equals("parsed type", sd.type(), LLSD::TypeArray);
406 ensure_equals("parsed size", sd.size(), 5); 415 ensure_equals("parsed size", sd.size(), 5);
407 ensure_equals("element 0 false", sd[0].asBoolean(), false); 416 ensure_equals("element 0 false", sd[0].asBoolean(), false);
diff --git a/linden/indra/test/io.cpp b/linden/indra/test/io.cpp
index facf98d..fe8c19d 100644
--- a/linden/indra/test/io.cpp
+++ b/linden/indra/test/io.cpp
@@ -634,7 +634,7 @@ namespace tut
634 ensure_equals("size of buffer", count, total_size); 634 ensure_equals("size of buffer", count, total_size);
635 LLBufferStream istr(ch, &mBuffer); 635 LLBufferStream istr(ch, &mBuffer);
636 LLSD data; 636 LLSD data;
637 count = LLSDSerialize::fromNotation(data, istr); 637 count = LLSDSerialize::fromNotation(data, istr, total_size);
638 ensure("sd parsed", data.isDefined()); 638 ensure("sd parsed", data.isDefined());
639 639
640 for(S32 j = 0; j < 3; ++j) 640 for(S32 j = 0; j < 3; ++j)
@@ -699,7 +699,7 @@ namespace tut
699 ensure_equals("size of buffer", count, total_size); 699 ensure_equals("size of buffer", count, total_size);
700 LLBufferStream istr(ch, &mBuffer); 700 LLBufferStream istr(ch, &mBuffer);
701 LLSD data; 701 LLSD data;
702 count = LLSDSerialize::fromNotation(data, istr); 702 count = LLSDSerialize::fromNotation(data, istr, total_size);
703 ensure("sd parsed", data.isDefined()); 703 ensure("sd parsed", data.isDefined());
704 } 704 }
705 705
@@ -735,7 +735,10 @@ namespace tut
735 ch = mBuffer.nextChannel(); 735 ch = mBuffer.nextChannel();
736 LLBufferStream istr(ch, &mBuffer); 736 LLBufferStream istr(ch, &mBuffer);
737 LLSD data; 737 LLSD data;
738 S32 count = LLSDSerialize::fromNotation(data, istr); 738 S32 count = LLSDSerialize::fromNotation(
739 data,
740 istr,
741 mBuffer.count(ch.in()));
739 ensure("parsed something", (count > 0)); 742 ensure("parsed something", (count > 0));
740 ensure("sd parsed", data.isDefined()); 743 ensure("sd parsed", data.isDefined());
741 ensure_equals("sd type", data.type(), LLSD::TypeMap); 744 ensure_equals("sd type", data.type(), LLSD::TypeMap);
@@ -780,7 +783,7 @@ namespace tut
780 std::istringstream istr; 783 std::istringstream istr;
781 istr.str(val); 784 istr.str(val);
782 LLSD sd; 785 LLSD sd;
783 S32 count = LLSDSerialize::fromNotation(sd, istr); 786 S32 count = LLSDSerialize::fromNotation(sd, istr, val.size());
784 ensure_equals("parser error return value", count, -1); 787 ensure_equals("parser error return value", count, -1);
785 ensure("data undefined", sd.isUndefined()); 788 ensure("data undefined", sd.isUndefined());
786 } 789 }
@@ -792,7 +795,7 @@ namespace tut
792 std::istringstream istr; 795 std::istringstream istr;
793 istr.str(val); 796 istr.str(val);
794 LLSD sd; 797 LLSD sd;
795 S32 count = LLSDSerialize::fromNotation(sd, istr); 798 S32 count = LLSDSerialize::fromNotation(sd, istr, val.size());
796 ensure_equals("parser error return value", count, -1); 799 ensure_equals("parser error return value", count, -1);
797 ensure("data undefined", sd.isUndefined()); 800 ensure("data undefined", sd.isUndefined());
798 } 801 }
@@ -1324,7 +1327,10 @@ namespace tut
1324 << "}]"; 1327 << "}]";
1325 1328
1326 LLSD request; 1329 LLSD request;
1327 S32 count = LLSDSerialize::fromNotation(request, stream); 1330 S32 count = LLSDSerialize::fromNotation(
1331 request,
1332 stream,
1333 stream.str().size());
1328 ensure("parsed something", (count > 0)); 1334 ensure("parsed something", (count > 0));
1329 1335
1330 pump_loop(request); 1336 pump_loop(request);
@@ -1425,7 +1431,10 @@ namespace tut
1425 LLChannelDescriptors read_channel = buffer.nextChannel(); 1431 LLChannelDescriptors read_channel = buffer.nextChannel();
1426 LLBufferStream read_stream(read_channel, &buffer); 1432 LLBufferStream read_stream(read_channel, &buffer);
1427 LLSD request; 1433 LLSD request;
1428 S32 count = LLSDSerialize::fromNotation(request, read_stream); 1434 S32 count = LLSDSerialize::fromNotation(
1435 request,
1436 read_stream,
1437 buffer.count(read_channel.in()));
1429 ensure("parsed something", (count > 0)); 1438 ensure("parsed something", (count > 0));
1430 ensure("deserialized", request.isDefined()); 1439 ensure("deserialized", request.isDefined());
1431 1440
@@ -1487,7 +1496,10 @@ namespace tut
1487 str << "{'message':'" << LLSDNotationFormatter::escapeString(message) 1496 str << "{'message':'" << LLSDNotationFormatter::escapeString(message)
1488 << "'}"; 1497 << "'}";
1489 LLSD request; 1498 LLSD request;
1490 S32 count = LLSDSerialize::fromNotation(request, str); 1499 S32 count = LLSDSerialize::fromNotation(
1500 request,
1501 str,
1502 str.str().size());
1491 ensure_equals("parse count", count, 2); 1503 ensure_equals("parse count", count, 2);
1492 ensure_equals("request type", request.type(), LLSD::TypeMap); 1504 ensure_equals("request type", request.type(), LLSD::TypeMap);
1493 pump_loop(request); 1505 pump_loop(request);
@@ -1510,7 +1522,7 @@ namespace tut
1510 std::istringstream istr; 1522 std::istringstream istr;
1511 istr.str(val); 1523 istr.str(val);
1512 LLSD sd; 1524 LLSD sd;
1513 LLSDSerialize::fromNotation(sd, istr); 1525 LLSDSerialize::fromNotation(sd, istr, val.size());
1514 pump_loop(sd); 1526 pump_loop(sd);
1515 ensure("valid response", mResponse.isDefined()); 1527 ensure("valid response", mResponse.isDefined());
1516 ensure_equals("parsed type", mResponse.type(), LLSD::TypeMap); 1528 ensure_equals("parsed type", mResponse.type(), LLSD::TypeMap);
diff --git a/linden/indra/test/llhttpclient_tut.cpp b/linden/indra/test/llhttpclient_tut.cpp
index c22130f..1a2267c 100644
--- a/linden/indra/test/llhttpclient_tut.cpp
+++ b/linden/indra/test/llhttpclient_tut.cpp
@@ -116,7 +116,7 @@ namespace tut
116 LLTimer timer; 116 LLTimer timer;
117 timer.setTimerExpirySec(timeout); 117 timer.setTimerExpirySec(timeout);
118 118
119 while(!mSawCompleted && !timer.hasExpired()) 119 while(!mSawCompleted && !mSawCompletedHeader && !timer.hasExpired())
120 { 120 {
121 if (mServerPump) 121 if (mServerPump)
122 { 122 {
@@ -167,13 +167,19 @@ namespace tut
167 { 167 {
168 return mResult; 168 return mResult;
169 } 169 }
170 LLSD getHeader()
171 {
172 return mHeader;
173 }
170 174
171 protected: 175 protected:
172 bool mSawError; 176 bool mSawError;
173 U32 mStatus; 177 U32 mStatus;
174 std::string mReason; 178 std::string mReason;
175 bool mSawCompleted; 179 bool mSawCompleted;
180 bool mSawCompletedHeader;
176 LLSD mResult; 181 LLSD mResult;
182 LLSD mHeader;
177 bool mResultDeleted; 183 bool mResultDeleted;
178 184
179 class Result : public LLHTTPClient::Responder 185 class Result : public LLHTTPClient::Responder
@@ -216,6 +222,14 @@ namespace tut
216 mClient.mSawCompleted = true; 222 mClient.mSawCompleted = true;
217 } 223 }
218 224
225 virtual void completedHeader(
226 U32 status, const std::string& reason,
227 const LLSD& content)
228 {
229 mClient.mHeader = content;
230 mClient.mSawCompletedHeader = true;
231 }
232
219 private: 233 private:
220 HTTPClientTestData& mClient; 234 HTTPClientTestData& mClient;
221 }; 235 };
@@ -228,7 +242,9 @@ namespace tut
228 mSawError = false; 242 mSawError = false;
229 mStatus = 0; 243 mStatus = 0;
230 mSawCompleted = false; 244 mSawCompleted = false;
245 mSawCompletedHeader = false;
231 mResult.clear(); 246 mResult.clear();
247 mHeader.clear();
232 mResultDeleted = false; 248 mResultDeleted = false;
233 249
234 return Result::build(*this); 250 return Result::build(*this);
@@ -325,9 +341,13 @@ namespace tut
325 template<> template<> 341 template<> template<>
326 void HTTPClientTestObject::test<7>() 342 void HTTPClientTestObject::test<7>()
327 { 343 {
328 // Can not use the little mini server. The blocking request won't ever let it run. 344 // Can not use the little mini server. The blocking request
329 // Instead get from a known LLSD source and compare results with the non-blocking get 345 // won't ever let it run. Instead get from a known LLSD
330 // which is tested against the mini server earlier. 346 // source and compare results with the non-blocking get which
347 // is tested against the mini server earlier.
348 skip_fail("secondlife.com is not reliable enough for unit tests.");
349
350
331 LLSD expected; 351 LLSD expected;
332 352
333 LLHTTPClient::get("http://secondlife.com/xmlhttp/homepage.php", newResult()); 353 LLHTTPClient::get("http://secondlife.com/xmlhttp/homepage.php", newResult());
@@ -340,9 +360,19 @@ namespace tut
340 LLSD body = result["body"]; 360 LLSD body = result["body"];
341 ensure_equals("echoed result matches", body.size(), expected.size()); 361 ensure_equals("echoed result matches", body.size(), expected.size());
342 } 362 }
343
344 template<> template<> 363 template<> template<>
345 void HTTPClientTestObject::test<8>() 364 void HTTPClientTestObject::test<8>()
365 {
366 // This is testing for the presence of the Header in the returned results
367 // from an HTTP::get call.
368 LLHTTPClient::get("http://www.secondlife.com/", newResult());
369 runThePump();
370 ensureStatusOK();
371 LLSD header = getHeader();
372 ensure_equals("got a header", header.emptyMap().asBoolean(), FALSE);
373 }
374 template<> template<>
375 void HTTPClientTestObject::test<9>()
346 { 376 {
347 LLHTTPClient::head("http://www.secondlife.com/", newResult()); 377 LLHTTPClient::head("http://www.secondlife.com/", newResult());
348 runThePump(); 378 runThePump();
diff --git a/linden/indra/test/llsdserialize_tut.cpp b/linden/indra/test/llsdserialize_tut.cpp
index 0246b16..fe732cd 100644
--- a/linden/indra/test/llsdserialize_tut.cpp
+++ b/linden/indra/test/llsdserialize_tut.cpp
@@ -1,6 +1,6 @@
1/** 1/**
2 * @file llsdserialize_tut.cpp 2 * @file llsdserialize_tut.cpp
3 * @date April 2006 3 * @date 2006-04
4 * @brief LLSDSerialize unit tests 4 * @brief LLSDSerialize unit tests
5 * 5 *
6 * $LicenseInfo:firstyear=2006&license=viewergpl$ 6 * $LicenseInfo:firstyear=2006&license=viewergpl$
@@ -32,6 +32,10 @@
32 32
33#include <tut/tut.h> 33#include <tut/tut.h>
34 34
35#if !LL_WINDOWS
36#include <netinet/in.h>
37#endif
38
35#include "linden_common.h" 39#include "linden_common.h"
36#include "llsd.h" 40#include "llsd.h"
37#include "llsdserialize.h" 41#include "llsdserialize.h"
@@ -39,6 +43,7 @@
39#include "llformat.h" 43#include "llformat.h"
40 44
41// 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
42#if !LL_WINDOWS 47#if !LL_WINDOWS
43 48
44namespace tut 49namespace tut
@@ -220,7 +225,7 @@ namespace tut
220 mFormatter->format(v, stream); 225 mFormatter->format(v, stream);
221 //llinfos << "checkRoundTrip: length " << stream.str().length() << llendl; 226 //llinfos << "checkRoundTrip: length " << stream.str().length() << llendl;
222 LLSD w; 227 LLSD w;
223 mParser->parse(stream, w); 228 mParser->parse(stream, w, stream.str().size());
224 229
225 try 230 try
226 { 231 {
@@ -446,34 +451,55 @@ namespace tut
446 doRoundTripTests("binary serialization"); 451 doRoundTripTests("binary serialization");
447 } 452 }
448 453
449 454
450 455 /**
451 456 * @class TestLLSDParsing
452 class TestLLSDXMLParsing 457 * @brief Base class for of a parse tester.
458 */
459 template <class parser_t>
460 class TestLLSDParsing
453 { 461 {
454 public: 462 public:
455 TestLLSDXMLParsing() 463 TestLLSDParsing()
456 { 464 {
457 mParser = new LLSDXMLParser; 465 mParser = new parser_t;
458 } 466 }
459 void ensureParse(const std::string& msg, const char* xml, const LLSD& expected); 467
460 468 void ensureParse(
461 LLPointer<LLSDXMLParser> mParser; 469 const std::string& msg,
470 const std::string& in,
471 const LLSD& expected_value,
472 S32 expected_count)
473 {
474 std::stringstream input;
475 input.str(in);
476
477 LLSD parsed_result;
478 S32 parsed_count = mParser->parse(input, parsed_result, in.size());
479 ensure_equals(msg, parsed_result, expected_value);
480
481 // This count check is really only useful for expected
482 // parse failures, since the ensures equal will already
483 // require eqality.
484 std::string count_msg(msg);
485 count_msg += " (count)";
486 ensure_equals(count_msg, parsed_count, expected_count);
487 }
488
489 LLPointer<parser_t> mParser;
462 }; 490 };
463 491
464 void TestLLSDXMLParsing::ensureParse( 492
465 const std::string& msg, const char* xmlstring, const LLSD& expected) 493 /**
494 * @class TestLLSDXMLParsing
495 * @brief Concrete instance of a parse tester.
496 */
497 class TestLLSDXMLParsing : public TestLLSDParsing<LLSDXMLParser>
466 { 498 {
467 std::stringstream input; 499 public:
468 input.str(xmlstring); 500 TestLLSDXMLParsing() {}
469 501 };
470 LLSD parsedResult;
471 mParser->parse(input, parsedResult);
472
473 ensure_equals(msg, parsedResult, expected);
474 }
475 502
476
477 typedef tut::test_group<TestLLSDXMLParsing> TestLLSDXMLParsingGroup; 503 typedef tut::test_group<TestLLSDXMLParsing> TestLLSDXMLParsingGroup;
478 typedef TestLLSDXMLParsingGroup::object TestLLSDXMLParsingObject; 504 typedef TestLLSDXMLParsingGroup::object TestLLSDXMLParsingObject;
479 TestLLSDXMLParsingGroup gTestLLSDXMLParsingGroup("llsd XML parsing"); 505 TestLLSDXMLParsingGroup gTestLLSDXMLParsingGroup("llsd XML parsing");
@@ -481,12 +507,28 @@ namespace tut
481 template<> template<> 507 template<> template<>
482 void TestLLSDXMLParsingObject::test<1>() 508 void TestLLSDXMLParsingObject::test<1>()
483 { 509 {
484 // test handling of xml not recognized as llsd results in an LLSD Undefined" 510 // test handling of xml not recognized as llsd results in an
485 511 // LLSD Undefined
486 ensureParse("malformed xml", "<llsd><string>ha ha</string>", LLSD()); 512 ensureParse(
487 ensureParse("not llsd", "<html><body><p>ha ha</p></body></html>", LLSD()); 513 "malformed xml",
488 ensureParse("value without llsd", "<string>ha ha</string>", LLSD()); 514 "<llsd><string>ha ha</string>",
489 ensureParse("key without llsd", "<key>ha ha</key>", LLSD()); 515 LLSD(),
516 LLSDParser::PARSE_FAILURE);
517 ensureParse(
518 "not llsd",
519 "<html><body><p>ha ha</p></body></html>",
520 LLSD(),
521 LLSDParser::PARSE_FAILURE);
522 ensureParse(
523 "value without llsd",
524 "<string>ha ha</string>",
525 LLSD(),
526 LLSDParser::PARSE_FAILURE);
527 ensureParse(
528 "key without llsd",
529 "<key>ha ha</key>",
530 LLSD(),
531 LLSDParser::PARSE_FAILURE);
490 } 532 }
491 533
492 534
@@ -494,18 +536,20 @@ namespace tut
494 void TestLLSDXMLParsingObject::test<2>() 536 void TestLLSDXMLParsingObject::test<2>()
495 { 537 {
496 // test handling of unrecognized or unparseable llsd values 538 // test handling of unrecognized or unparseable llsd values
497
498 LLSD v; 539 LLSD v;
499 v["amy"] = 23; 540 v["amy"] = 23;
500 v["bob"] = LLSD(); 541 v["bob"] = LLSD();
501 v["cam"] = 1.23; 542 v["cam"] = 1.23;
502 543
503 ensureParse("unknown data type", 544 ensureParse(
545 "unknown data type",
504 "<llsd><map>" 546 "<llsd><map>"
505 "<key>amy</key><integer>23</integer>" 547 "<key>amy</key><integer>23</integer>"
506 "<key>bob</key><bigint>99999999999999999</bigint>" 548 "<key>bob</key><bigint>99999999999999999</bigint>"
507 "<key>cam</key><real>1.23</real>" 549 "<key>cam</key><real>1.23</real>"
508 "</map></llsd>", v); 550 "</map></llsd>",
551 v,
552 v.size() + 1);
509 } 553 }
510 554
511 template<> template<> 555 template<> template<>
@@ -517,28 +561,35 @@ namespace tut
517 v["amy"] = 23; 561 v["amy"] = 23;
518 v["cam"] = 1.23; 562 v["cam"] = 1.23;
519 563
520 ensureParse("map with html", 564 ensureParse(
565 "map with html",
521 "<llsd><map>" 566 "<llsd><map>"
522 "<key>amy</key><integer>23</integer>" 567 "<key>amy</key><integer>23</integer>"
523 "<html><body>ha ha</body></html>" 568 "<html><body>ha ha</body></html>"
524 "<key>cam</key><real>1.23</real>" 569 "<key>cam</key><real>1.23</real>"
525 "</map></llsd>", v); 570 "</map></llsd>",
571 v,
572 v.size() + 1);
526 573
527 v.clear(); 574 v.clear();
528 v["amy"] = 23; 575 v["amy"] = 23;
529 v["cam"] = 1.23; 576 v["cam"] = 1.23;
530 ensureParse("map with value for key", 577 ensureParse(
578 "map with value for key",
531 "<llsd><map>" 579 "<llsd><map>"
532 "<key>amy</key><integer>23</integer>" 580 "<key>amy</key><integer>23</integer>"
533 "<string>ha ha</string>" 581 "<string>ha ha</string>"
534 "<key>cam</key><real>1.23</real>" 582 "<key>cam</key><real>1.23</real>"
535 "</map></llsd>", v); 583 "</map></llsd>",
584 v,
585 v.size() + 1);
536 586
537 v.clear(); 587 v.clear();
538 v["amy"] = 23; 588 v["amy"] = 23;
539 v["bob"] = LLSD::emptyMap(); 589 v["bob"] = LLSD::emptyMap();
540 v["cam"] = 1.23; 590 v["cam"] = 1.23;
541 ensureParse("map with map of html", 591 ensureParse(
592 "map with map of html",
542 "<llsd><map>" 593 "<llsd><map>"
543 "<key>amy</key><integer>23</integer>" 594 "<key>amy</key><integer>23</integer>"
544 "<key>bob</key>" 595 "<key>bob</key>"
@@ -546,32 +597,40 @@ namespace tut
546 "<html><body>ha ha</body></html>" 597 "<html><body>ha ha</body></html>"
547 "</map>" 598 "</map>"
548 "<key>cam</key><real>1.23</real>" 599 "<key>cam</key><real>1.23</real>"
549 "</map></llsd>", v); 600 "</map></llsd>",
601 v,
602 v.size() + 1);
550 603
551 v.clear(); 604 v.clear();
552 v[0] = 23; 605 v[0] = 23;
553 v[1] = LLSD(); 606 v[1] = LLSD();
554 v[2] = 1.23; 607 v[2] = 1.23;
555 608
556 ensureParse("array value of html", 609 ensureParse(
610 "array value of html",
557 "<llsd><array>" 611 "<llsd><array>"
558 "<integer>23</integer>" 612 "<integer>23</integer>"
559 "<html><body>ha ha</body></html>" 613 "<html><body>ha ha</body></html>"
560 "<real>1.23</real>" 614 "<real>1.23</real>"
561 "</array></llsd>", v); 615 "</array></llsd>",
616 v,
617 v.size() + 1);
562 618
563 v.clear(); 619 v.clear();
564 v[0] = 23; 620 v[0] = 23;
565 v[1] = LLSD::emptyMap(); 621 v[1] = LLSD::emptyMap();
566 v[2] = 1.23; 622 v[2] = 1.23;
567 ensureParse("array with map of html", 623 ensureParse(
624 "array with map of html",
568 "<llsd><array>" 625 "<llsd><array>"
569 "<integer>23</integer>" 626 "<integer>23</integer>"
570 "<map>" 627 "<map>"
571 "<html><body>ha ha</body></html>" 628 "<html><body>ha ha</body></html>"
572 "</map>" 629 "</map>"
573 "<real>1.23</real>" 630 "<real>1.23</real>"
574 "</array></llsd>", v); 631 "</array></llsd>",
632 v,
633 v.size() + 1);
575 } 634 }
576 635
577 /* 636 /*
@@ -581,6 +640,790 @@ namespace tut
581 nested LLSD tags 640 nested LLSD tags
582 multiple values inside an LLSD 641 multiple values inside an LLSD
583 */ 642 */
643
644
645 /**
646 * @class TestLLSDNotationParsing
647 * @brief Concrete instance of a parse tester.
648 */
649 class TestLLSDNotationParsing : public TestLLSDParsing<LLSDNotationParser>
650 {
651 public:
652 TestLLSDNotationParsing() {}
653 };
654
655 typedef tut::test_group<TestLLSDNotationParsing> TestLLSDNotationParsingGroup;
656 typedef TestLLSDNotationParsingGroup::object TestLLSDNotationParsingObject;
657 TestLLSDNotationParsingGroup gTestLLSDNotationParsingGroup(
658 "llsd notation parsing");
659
660 template<> template<>
661 void TestLLSDNotationParsingObject::test<1>()
662 {
663 // test handling of xml not recognized as llsd results in an
664 // LLSD Undefined
665 ensureParse(
666 "malformed notation map",
667 "{'ha ha'",
668 LLSD(),
669 LLSDParser::PARSE_FAILURE);
670 ensureParse(
671 "malformed notation array",
672 "['ha ha'",
673 LLSD(),
674 LLSDParser::PARSE_FAILURE);
675 ensureParse(
676 "malformed notation string",
677 "'ha ha",
678 LLSD(),
679 LLSDParser::PARSE_FAILURE);
680 ensureParse(
681 "bad notation noise",
682 "g48ejlnfr",
683 LLSD(),
684 LLSDParser::PARSE_FAILURE);
685 }
686
687 template<> template<>
688 void TestLLSDNotationParsingObject::test<2>()
689 {
690 ensureParse("valid undef", "!", LLSD(), 1);
691 }
692
693 template<> template<>
694 void TestLLSDNotationParsingObject::test<3>()
695 {
696 LLSD val = false;
697 ensureParse("valid boolean false 0", "false", val, 1);
698 ensureParse("valid boolean false 1", "f", val, 1);
699 ensureParse("valid boolean false 2", "0", val, 1);
700 ensureParse("valid boolean false 3", "F", val, 1);
701 ensureParse("valid boolean false 4", "FALSE", val, 1);
702 val = true;
703 ensureParse("valid boolean true 0", "true", val, 1);
704 ensureParse("valid boolean true 1", "t", val, 1);
705 ensureParse("valid boolean true 2", "1", val, 1);
706 ensureParse("valid boolean true 3", "T", val, 1);
707 ensureParse("valid boolean true 4", "TRUE", val, 1);
708
709 val.clear();
710 ensureParse("invalid true", "TR", val, LLSDParser::PARSE_FAILURE);
711 ensureParse("invalid false", "FAL", val, LLSDParser::PARSE_FAILURE);
712 }
713
714 template<> template<>
715 void TestLLSDNotationParsingObject::test<4>()
716 {
717 LLSD val = 123;
718 ensureParse("valid integer", "i123", val, 1);
719 val.clear();
720 ensureParse("invalid integer", "421", val, LLSDParser::PARSE_FAILURE);
721 }
722
723 template<> template<>
724 void TestLLSDNotationParsingObject::test<5>()
725 {
726 LLSD val = 456.7;
727 ensureParse("valid real", "r456.7", val, 1);
728 val.clear();
729 ensureParse("invalid real", "456.7", val, LLSDParser::PARSE_FAILURE);
730 }
731
732 template<> template<>
733 void TestLLSDNotationParsingObject::test<6>()
734 {
735 LLUUID id;
736 LLSD val = id;
737 ensureParse(
738 "unparseable uuid",
739 "u123",
740 LLSD(),
741 LLSDParser::PARSE_FAILURE);
742 id.generate();
743 val = id;
744 std::string uuid_str("u");
745 uuid_str += id.asString();
746 ensureParse("valid uuid", uuid_str.c_str(), val, 1);
747 }
748
749 template<> template<>
750 void TestLLSDNotationParsingObject::test<7>()
751 {
752 LLSD val = std::string("foolish");
753 ensureParse("valid string 1", "\"foolish\"", val, 1);
754 val = std::string("g'day");
755 ensureParse("valid string 2", "\"g'day\"", val, 1);
756 val = std::string("have a \"nice\" day");
757 ensureParse("valid string 3", "'have a \"nice\" day'", val, 1);
758 val = std::string("whatever");
759 ensureParse("valid string 4", "s(8)\"whatever\"", val, 1);
760 }
761
762 template<> template<>
763 void TestLLSDNotationParsingObject::test<8>()
764 {
765 ensureParse(
766 "invalid string 1",
767 "s(7)\"whatever\"",
768 LLSD(),
769 LLSDParser::PARSE_FAILURE);
770 ensureParse(
771 "invalid string 2",
772 "s(9)\"whatever\"",
773 LLSD(),
774 LLSDParser::PARSE_FAILURE);
775 }
776
777 template<> template<>
778 void TestLLSDNotationParsingObject::test<9>()
779 {
780 LLSD val = LLURI("http://www.google.com");
781 ensureParse("valid uri", "l\"http://www.google.com\"", val, 1);
782 }
783
784 template<> template<>
785 void TestLLSDNotationParsingObject::test<10>()
786 {
787 LLSD val = LLDate("2007-12-28T09:22:53.10Z");
788 ensureParse("valid date", "d\"2007-12-28T09:22:53.10Z\"", val, 1);
789 }
790
791 template<> template<>
792 void TestLLSDNotationParsingObject::test<11>()
793 {
794 std::vector<U8> vec;
795 vec.push_back((U8)'a'); vec.push_back((U8)'b'); vec.push_back((U8)'c');
796 vec.push_back((U8)'3'); vec.push_back((U8)'2'); vec.push_back((U8)'1');
797 LLSD val = vec;
798 ensureParse("valid binary b64", "b64\"YWJjMzIx\"", val, 1);
799 ensureParse("valid bainry b16", "b16\"616263333231\"", val, 1);
800 ensureParse("valid bainry raw", "b(6)\"abc321\"", val, 1);
801 }
802
803 template<> template<>
804 void TestLLSDNotationParsingObject::test<12>()
805 {
806 ensureParse(
807 "invalid -- binary length specified too long",
808 "b(7)\"abc321\"",
809 LLSD(),
810 LLSDParser::PARSE_FAILURE);
811 ensureParse(
812 "invalid -- binary length specified way too long",
813 "b(1000000)\"abc321\"",
814 LLSD(),
815 LLSDParser::PARSE_FAILURE);
816 }
817
818 template<> template<>
819 void TestLLSDNotationParsingObject::test<13>()
820 {
821 LLSD val;
822 val["amy"] = 23;
823 val["bob"] = LLSD();
824 val["cam"] = 1.23;
825 ensureParse("simple map", "{'amy':i23,'bob':!,'cam':r1.23}", val, 4);
826
827 val["bob"] = LLSD::emptyMap();
828 val["bob"]["vehicle"] = std::string("bicycle");
829 ensureParse(
830 "nested map",
831 "{'amy':i23,'bob':{'vehicle':'bicycle'},'cam':r1.23}",
832 val,
833 5);
834 }
835
836 template<> template<>
837 void TestLLSDNotationParsingObject::test<14>()
838 {
839 LLSD val;
840 val.append(23);
841 val.append(LLSD());
842 val.append(1.23);
843 ensureParse("simple array", "[i23,!,r1.23]", val, 4);
844 val[1] = LLSD::emptyArray();
845 val[1].append("bicycle");
846 ensureParse("nested array", "[i23,['bicycle'],r1.23]", val, 5);
847 }
848
849 template<> template<>
850 void TestLLSDNotationParsingObject::test<15>()
851 {
852 LLSD val;
853 val["amy"] = 23;
854 val["bob"]["dogs"] = LLSD::emptyArray();
855 val["bob"]["dogs"].append(LLSD::emptyMap());
856 val["bob"]["dogs"][0]["name"] = std::string("groove");
857 val["bob"]["dogs"][0]["breed"] = std::string("samoyed");
858 val["bob"]["dogs"].append(LLSD::emptyMap());
859 val["bob"]["dogs"][1]["name"] = std::string("greyley");
860 val["bob"]["dogs"][1]["breed"] = std::string("chow/husky");
861 val["cam"] = 1.23;
862 ensureParse(
863 "nested notation",
864 "{'amy':i23,"
865 " 'bob':{'dogs':["
866 "{'name':'groove', 'breed':'samoyed'},"
867 "{'name':'greyley', 'breed':'chow/husky'}]},"
868 " 'cam':r1.23}",
869 val,
870 11);
871 }
872
873 template<> template<>
874 void TestLLSDNotationParsingObject::test<16>()
875 {
876 // text to make sure that incorrect sizes bail because
877 std::string bad_str("s(5)\"hi\"");
878 ensureParse(
879 "size longer than bytes left",
880 bad_str,
881 LLSD(),
882 LLSDParser::PARSE_FAILURE);
883 }
884
885 template<> template<>
886 void TestLLSDNotationParsingObject::test<17>()
887 {
888 // text to make sure that incorrect sizes bail because
889 std::string bad_bin("b(5)\"hi\"");
890 ensureParse(
891 "size longer than bytes left",
892 bad_bin,
893 LLSD(),
894 LLSDParser::PARSE_FAILURE);
895 }
896
897 /**
898 * @class TestLLSDBinaryParsing
899 * @brief Concrete instance of a parse tester.
900 */
901 class TestLLSDBinaryParsing : public TestLLSDParsing<LLSDBinaryParser>
902 {
903 public:
904 TestLLSDBinaryParsing() {}
905 };
906
907 typedef tut::test_group<TestLLSDBinaryParsing> TestLLSDBinaryParsingGroup;
908 typedef TestLLSDBinaryParsingGroup::object TestLLSDBinaryParsingObject;
909 TestLLSDBinaryParsingGroup gTestLLSDBinaryParsingGroup(
910 "llsd binary parsing");
911
912 template<> template<>
913 void TestLLSDBinaryParsingObject::test<1>()
914 {
915 std::vector<U8> vec;
916 vec.resize(6);
917 vec[0] = 'a'; vec[1] = 'b'; vec[2] = 'c';
918 vec[3] = '3'; vec[4] = '2'; vec[5] = '1';
919 std::string string_expected((char*)&vec[0], vec.size());
920 LLSD value = string_expected;
921
922 vec.resize(11);
923 vec[0] = 's'; // for string
924 vec[5] = 'a'; vec[6] = 'b'; vec[7] = 'c';
925 vec[8] = '3'; vec[9] = '2'; vec[10] = '1';
926
927 uint32_t size = htonl(6);
928 memcpy(&vec[1], &size, sizeof(uint32_t));
929 std::string str_good((char*)&vec[0], vec.size());
930 ensureParse("correct string parse", str_good, value, 1);
931
932 size = htonl(7);
933 memcpy(&vec[1], &size, sizeof(uint32_t));
934 std::string str_bad_1((char*)&vec[0], vec.size());
935 ensureParse(
936 "incorrect size string parse",
937 str_bad_1,
938 LLSD(),
939 LLSDParser::PARSE_FAILURE);
940
941 size = htonl(100000);
942 memcpy(&vec[1], &size, sizeof(uint32_t));
943 std::string str_bad_2((char*)&vec[0], vec.size());
944 ensureParse(
945 "incorrect size string parse",
946 str_bad_2,
947 LLSD(),
948 LLSDParser::PARSE_FAILURE);
949 }
950
951 template<> template<>
952 void TestLLSDBinaryParsingObject::test<2>()
953 {
954 std::vector<U8> vec;
955 vec.resize(6);
956 vec[0] = 'a'; vec[1] = 'b'; vec[2] = 'c';
957 vec[3] = '3'; vec[4] = '2'; vec[5] = '1';
958 LLSD value = vec;
959
960 vec.resize(11);
961 vec[0] = 'b'; // for binary
962 vec[5] = 'a'; vec[6] = 'b'; vec[7] = 'c';
963 vec[8] = '3'; vec[9] = '2'; vec[10] = '1';
964
965 uint32_t size = htonl(6);
966 memcpy(&vec[1], &size, sizeof(uint32_t));
967 std::string str_good((char*)&vec[0], vec.size());
968 ensureParse("correct binary parse", str_good, value, 1);
969
970 size = htonl(7);
971 memcpy(&vec[1], &size, sizeof(uint32_t));
972 std::string str_bad_1((char*)&vec[0], vec.size());
973 ensureParse(
974 "incorrect size binary parse 1",
975 str_bad_1,
976 LLSD(),
977 LLSDParser::PARSE_FAILURE);
978
979 size = htonl(100000);
980 memcpy(&vec[1], &size, sizeof(uint32_t));
981 std::string str_bad_2((char*)&vec[0], vec.size());
982 ensureParse(
983 "incorrect size binary parse 2",
984 str_bad_2,
985 LLSD(),
986 LLSDParser::PARSE_FAILURE);
987 }
988
989 template<> template<>
990 void TestLLSDBinaryParsingObject::test<3>()
991 {
992 // test handling of xml not recognized as llsd results in an
993 // LLSD Undefined
994 ensureParse(
995 "malformed binary map",
996 "{'ha ha'",
997 LLSD(),
998 LLSDParser::PARSE_FAILURE);
999 ensureParse(
1000 "malformed binary array",
1001 "['ha ha'",
1002 LLSD(),
1003 LLSDParser::PARSE_FAILURE);
1004 ensureParse(
1005 "malformed binary string",
1006 "'ha ha",
1007 LLSD(),
1008 LLSDParser::PARSE_FAILURE);
1009 ensureParse(
1010 "bad noise",
1011 "g48ejlnfr",
1012 LLSD(),
1013 LLSDParser::PARSE_FAILURE);
1014 }
1015 template<> template<>
1016 void TestLLSDBinaryParsingObject::test<4>()
1017 {
1018 ensureParse("valid undef", "!", LLSD(), 1);
1019 }
1020
1021 template<> template<>
1022 void TestLLSDBinaryParsingObject::test<5>()
1023 {
1024 LLSD val = false;
1025 ensureParse("valid boolean false 2", "0", val, 1);
1026 val = true;
1027 ensureParse("valid boolean true 2", "1", val, 1);
1028
1029 val.clear();
1030 ensureParse("invalid true", "t", val, LLSDParser::PARSE_FAILURE);
1031 ensureParse("invalid false", "f", val, LLSDParser::PARSE_FAILURE);
1032 }
1033
1034 template<> template<>
1035 void TestLLSDBinaryParsingObject::test<6>()
1036 {
1037 std::vector<U8> vec;
1038 vec.push_back('{');
1039 vec.resize(vec.size() + 4);
1040 uint32_t size = htonl(1);
1041 memcpy(&vec[1], &size, sizeof(uint32_t));
1042 vec.push_back('k');
1043 int key_size_loc = vec.size();
1044 size = htonl(1); // 1 too short
1045 vec.resize(vec.size() + 4);
1046 memcpy(&vec[key_size_loc], &size, sizeof(uint32_t));
1047 vec.push_back('a'); vec.push_back('m'); vec.push_back('y');
1048 vec.push_back('i');
1049 int integer_loc = vec.size();
1050 vec.resize(vec.size() + 4);
1051 uint32_t val_int = htonl(23);
1052 memcpy(&vec[integer_loc], &val_int, sizeof(uint32_t));
1053 std::string str_bad_1((char*)&vec[0], vec.size());
1054 ensureParse(
1055 "invalid key size",
1056 str_bad_1,
1057 LLSD(),
1058 LLSDParser::PARSE_FAILURE);
1059
1060 // check with correct size, but unterminated map (missing '}')
1061 size = htonl(3); // correct size
1062 memcpy(&vec[key_size_loc], &size, sizeof(uint32_t));
1063 std::string str_bad_2((char*)&vec[0], vec.size());
1064 ensureParse(
1065 "valid key size, unterminated map",
1066 str_bad_2,
1067 LLSD(),
1068 LLSDParser::PARSE_FAILURE);
1069
1070 // check w/ correct size and correct map termination
1071 LLSD val;
1072 val["amy"] = 23;
1073 vec.push_back('}');
1074 std::string str_good((char*)&vec[0], vec.size());
1075 ensureParse(
1076 "valid map",
1077 str_good,
1078 val,
1079 2);
1080
1081 // check w/ incorrect sizes and correct map termination
1082 size = htonl(0); // 1 too few (for the map entry)
1083 memcpy(&vec[1], &size, sizeof(uint32_t));
1084 std::string str_bad_3((char*)&vec[0], vec.size());
1085 ensureParse(
1086 "invalid map too long",
1087 str_bad_3,
1088 LLSD(),
1089 LLSDParser::PARSE_FAILURE);
1090
1091 size = htonl(2); // 1 too many
1092 memcpy(&vec[1], &size, sizeof(uint32_t));
1093 std::string str_bad_4((char*)&vec[0], vec.size());
1094 ensureParse(
1095 "invalid map too short",
1096 str_bad_4,
1097 LLSD(),
1098 LLSDParser::PARSE_FAILURE);
1099 }
1100
1101 template<> template<>
1102 void TestLLSDBinaryParsingObject::test<7>()
1103 {
1104 std::vector<U8> vec;
1105 vec.push_back('[');
1106 vec.resize(vec.size() + 4);
1107 uint32_t size = htonl(1); // 1 too short
1108 memcpy(&vec[1], &size, sizeof(uint32_t));
1109 vec.push_back('"'); vec.push_back('a'); vec.push_back('m');
1110 vec.push_back('y'); vec.push_back('"'); vec.push_back('i');
1111 int integer_loc = vec.size();
1112 vec.resize(vec.size() + 4);
1113 uint32_t val_int = htonl(23);
1114 memcpy(&vec[integer_loc], &val_int, sizeof(uint32_t));
1115
1116 std::string str_bad_1((char*)&vec[0], vec.size());
1117 ensureParse(
1118 "invalid array size",
1119 str_bad_1,
1120 LLSD(),
1121 LLSDParser::PARSE_FAILURE);
1122
1123 // check with correct size, but unterminated map (missing ']')
1124 size = htonl(2); // correct size
1125 memcpy(&vec[1], &size, sizeof(uint32_t));
1126 std::string str_bad_2((char*)&vec[0], vec.size());
1127 ensureParse(
1128 "unterminated array",
1129 str_bad_2,
1130 LLSD(),
1131 LLSDParser::PARSE_FAILURE);
1132
1133 // check w/ correct size and correct map termination
1134 LLSD val;
1135 val.append("amy");
1136 val.append(23);
1137 vec.push_back(']');
1138 std::string str_good((char*)&vec[0], vec.size());
1139 ensureParse(
1140 "valid array",
1141 str_good,
1142 val,
1143 3);
1144
1145 // check with too many elements
1146 size = htonl(3); // 1 too long
1147 memcpy(&vec[1], &size, sizeof(uint32_t));
1148 std::string str_bad_3((char*)&vec[0], vec.size());
1149 ensureParse(
1150 "array too short",
1151 str_bad_3,
1152 LLSD(),
1153 LLSDParser::PARSE_FAILURE);
1154 }
1155
1156 template<> template<>
1157 void TestLLSDBinaryParsingObject::test<8>()
1158 {
1159 std::vector<U8> vec;
1160 vec.push_back('{');
1161 vec.resize(vec.size() + 4);
1162 memset(&vec[1], 0, 4);
1163 vec.push_back('}');
1164 std::string str_good((char*)&vec[0], vec.size());
1165 LLSD val = LLSD::emptyMap();
1166 ensureParse(
1167 "empty map",
1168 str_good,
1169 val,
1170 1);
1171 }
1172
1173 template<> template<>
1174 void TestLLSDBinaryParsingObject::test<9>()
1175 {
1176 std::vector<U8> vec;
1177 vec.push_back('[');
1178 vec.resize(vec.size() + 4);
1179 memset(&vec[1], 0, 4);
1180 vec.push_back(']');
1181 std::string str_good((char*)&vec[0], vec.size());
1182 LLSD val = LLSD::emptyArray();
1183 ensureParse(
1184 "empty array",
1185 str_good,
1186 val,
1187 1);
1188 }
1189
1190 template<> template<>
1191 void TestLLSDBinaryParsingObject::test<10>()
1192 {
1193 std::vector<U8> vec;
1194 vec.push_back('l');
1195 vec.resize(vec.size() + 4);
1196 uint32_t size = htonl(14); // 1 too long
1197 memcpy(&vec[1], &size, sizeof(uint32_t));
1198 vec.push_back('h'); vec.push_back('t'); vec.push_back('t');
1199 vec.push_back('p'); vec.push_back(':'); vec.push_back('/');
1200 vec.push_back('/'); vec.push_back('s'); vec.push_back('l');
1201 vec.push_back('.'); vec.push_back('c'); vec.push_back('o');
1202 vec.push_back('m');
1203 std::string str_bad((char*)&vec[0], vec.size());
1204 ensureParse(
1205 "invalid uri length size",
1206 str_bad,
1207 LLSD(),
1208 LLSDParser::PARSE_FAILURE);
1209
1210 LLSD val;
1211 val = LLURI("http://sl.com");
1212 size = htonl(13); // correct length
1213 memcpy(&vec[1], &size, sizeof(uint32_t));
1214 std::string str_good((char*)&vec[0], vec.size());
1215 ensureParse(
1216 "valid key size",
1217 str_good,
1218 val,
1219 1);
1220 }
1221
1222/*
1223 template<> template<>
1224 void TestLLSDBinaryParsingObject::test<11>()
1225 {
1226 }
1227*/
1228
1229 /**
1230 * @class TestLLSDCrossCompatible
1231 * @brief Miscellaneous serialization and parsing tests
1232 */
1233 class TestLLSDCrossCompatible
1234 {
1235 public:
1236 TestLLSDCrossCompatible() {}
1237
1238 void ensureBinaryAndNotation(
1239 const std::string& msg,
1240 const LLSD& input)
1241 {
1242 // to binary, and back again
1243 std::stringstream str1;
1244 S32 count1 = LLSDSerialize::toBinary(input, str1);
1245 LLSD actual_value_bin;
1246 S32 count2 = LLSDSerialize::fromBinary(
1247 actual_value_bin,
1248 str1,
1249 LLSDSerialize::SIZE_UNLIMITED);
1250 ensure_equals(
1251 "ensureBinaryAndNotation binary count",
1252 count2,
1253 count1);
1254
1255 // to notation and back again
1256 std::stringstream str2;
1257 S32 count3 = LLSDSerialize::toNotation(actual_value_bin, str2);
1258 ensure_equals(
1259 "ensureBinaryAndNotation notation count1",
1260 count3,
1261 count2);
1262 LLSD actual_value_notation;
1263 S32 count4 = LLSDSerialize::fromNotation(
1264 actual_value_notation,
1265 str2,
1266 LLSDSerialize::SIZE_UNLIMITED);
1267 ensure_equals(
1268 "ensureBinaryAndNotation notation count2",
1269 count4,
1270 count3);
1271 ensure_equals(
1272 msg + " (binaryandnotation)",
1273 actual_value_notation,
1274 input);
1275 }
1276
1277 void ensureBinaryAndXML(
1278 const std::string& msg,
1279 const LLSD& input)
1280 {
1281 // to binary, and back again
1282 std::stringstream str1;
1283 S32 count1 = LLSDSerialize::toBinary(input, str1);
1284 LLSD actual_value_bin;
1285 S32 count2 = LLSDSerialize::fromBinary(
1286 actual_value_bin,
1287 str1,
1288 LLSDSerialize::SIZE_UNLIMITED);
1289 ensure_equals(
1290 "ensureBinaryAndXML binary count",
1291 count2,
1292 count1);
1293
1294 // to xml and back again
1295 std::stringstream str2;
1296 S32 count3 = LLSDSerialize::toXML(actual_value_bin, str2);
1297 ensure_equals(
1298 "ensureBinaryAndXML xml count1",
1299 count3,
1300 count2);
1301 LLSD actual_value_xml;
1302 S32 count4 = LLSDSerialize::fromXML(actual_value_xml, str2);
1303 ensure_equals(
1304 "ensureBinaryAndXML xml count2",
1305 count4,
1306 count3);
1307 ensure_equals(msg + " (binaryandxml)", actual_value_xml, input);
1308 }
1309 };
1310
1311 typedef tut::test_group<TestLLSDCrossCompatible> TestLLSDCompatibleGroup;
1312 typedef TestLLSDCompatibleGroup::object TestLLSDCompatibleObject;
1313 TestLLSDCompatibleGroup gTestLLSDCompatibleGroup(
1314 "llsd serialize compatible");
1315
1316 template<> template<>
1317 void TestLLSDCompatibleObject::test<1>()
1318 {
1319 LLSD test;
1320 ensureBinaryAndNotation("undef", test);
1321 ensureBinaryAndXML("undef", test);
1322 test = true;
1323 ensureBinaryAndNotation("boolean true", test);
1324 ensureBinaryAndXML("boolean true", test);
1325 test = false;
1326 ensureBinaryAndNotation("boolean false", test);
1327 ensureBinaryAndXML("boolean false", test);
1328 test = 0;
1329 ensureBinaryAndNotation("integer zero", test);
1330 ensureBinaryAndXML("integer zero", test);
1331 test = 1;
1332 ensureBinaryAndNotation("integer positive", test);
1333 ensureBinaryAndXML("integer positive", test);
1334 test = -234567;
1335 ensureBinaryAndNotation("integer negative", test);
1336 ensureBinaryAndXML("integer negative", test);
1337 test = 0.0;
1338 ensureBinaryAndNotation("real zero", test);
1339 ensureBinaryAndXML("real zero", test);
1340 test = 1.0;
1341 ensureBinaryAndNotation("real positive", test);
1342 ensureBinaryAndXML("real positive", test);
1343 test = -1.0;
1344 ensureBinaryAndNotation("real negative", test);
1345 ensureBinaryAndXML("real negative", test);
1346 }
1347
1348 template<> template<>
1349 void TestLLSDCompatibleObject::test<2>()
1350 {
1351 LLSD test;
1352 test = "foobar";
1353 ensureBinaryAndNotation("string", test);
1354 ensureBinaryAndXML("string", test);
1355 }
1356
1357 template<> template<>
1358 void TestLLSDCompatibleObject::test<3>()
1359 {
1360 LLSD test;
1361 LLUUID id;
1362 id.generate();
1363 test = id;
1364 ensureBinaryAndNotation("uuid", test);
1365 ensureBinaryAndXML("uuid", test);
1366 }
1367
1368 template<> template<>
1369 void TestLLSDCompatibleObject::test<4>()
1370 {
1371 LLSD test;
1372 test = LLDate(12345.0);
1373 ensureBinaryAndNotation("date", test);
1374 ensureBinaryAndXML("date", test);
1375 }
1376
1377 template<> template<>
1378 void TestLLSDCompatibleObject::test<5>()
1379 {
1380 LLSD test;
1381 test = LLURI("http://www.secondlife.com/");
1382 ensureBinaryAndNotation("uri", test);
1383 ensureBinaryAndXML("uri", test);
1384 }
1385
1386 template<> template<>
1387 void TestLLSDCompatibleObject::test<6>()
1388 {
1389 LLSD test;
1390 typedef std::vector<U8> buf_t;
1391 buf_t val;
1392 for(int ii = 0; ii < 100; ++ii)
1393 {
1394 srand(ii); /* Flawfinder: ignore */
1395 S32 size = rand() % 100 + 10;
1396 std::generate_n(
1397 std::back_insert_iterator<buf_t>(val),
1398 size,
1399 rand);
1400 }
1401 test = val;
1402 ensureBinaryAndNotation("binary", test);
1403 ensureBinaryAndXML("binary", test);
1404 }
1405
1406 template<> template<>
1407 void TestLLSDCompatibleObject::test<7>()
1408 {
1409 LLSD test;
1410 test = LLSD::emptyArray();
1411 test.append(1);
1412 test.append("hello");
1413 ensureBinaryAndNotation("array", test);
1414 ensureBinaryAndXML("array", test);
1415 }
1416
1417 template<> template<>
1418 void TestLLSDCompatibleObject::test<8>()
1419 {
1420 LLSD test;
1421 test = LLSD::emptyArray();
1422 test["foo"] = "bar";
1423 test["baz"] = 100;
1424 ensureBinaryAndNotation("map", test);
1425 ensureBinaryAndXML("map", test);
1426 }
584} 1427}
585 1428
586#endif 1429#endif
diff --git a/linden/indra/test/test_vc8.vcproj b/linden/indra/test/test_vc8.vcproj
index cb023b3..2f607cb 100644
--- a/linden/indra/test/test_vc8.vcproj
+++ b/linden/indra/test/test_vc8.vcproj
@@ -1,455 +1,455 @@
1<?xml version="1.0" encoding="Windows-1252"?> 1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject 2<VisualStudioProject
3 ProjectType="Visual C++" 3 ProjectType="Visual C++"
4 Version="8.00" 4 Version="8.00"
5 Name="test" 5 Name="test"
6 ProjectGUID="{BBAA6588-CA96-4A87-A988-B02270B8D02B}" 6 ProjectGUID="{BBAA6588-CA96-4A87-A988-B02270B8D02B}"
7 RootNamespace="test" 7 RootNamespace="test"
8 Keyword="Win32Proj" 8 Keyword="Win32Proj"
9 > 9 >
10 <Platforms> 10 <Platforms>
11 <Platform 11 <Platform
12 Name="Win32" 12 Name="Win32"
13 /> 13 />
14 </Platforms> 14 </Platforms>
15 <ToolFiles> 15 <ToolFiles>
16 </ToolFiles> 16 </ToolFiles>
17 <Configurations> 17 <Configurations>
18 <Configuration 18 <Configuration
19 Name="Debug|Win32" 19 Name="Debug|Win32"
20 OutputDirectory="Debug" 20 OutputDirectory="Debug"
21 IntermediateDirectory="Debug" 21 IntermediateDirectory="Debug"
22 ConfigurationType="1" 22 ConfigurationType="1"
23 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 23 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
24 CharacterSet="2" 24 CharacterSet="2"
25 > 25 >
26 <Tool 26 <Tool
27 Name="VCPreBuildEventTool" 27 Name="VCPreBuildEventTool"
28 /> 28 />
29 <Tool 29 <Tool
30 Name="VCCustomBuildTool" 30 Name="VCCustomBuildTool"
31 /> 31 />
32 <Tool 32 <Tool
33 Name="VCXMLDataGeneratorTool" 33 Name="VCXMLDataGeneratorTool"
34 /> 34 />
35 <Tool 35 <Tool
36 Name="VCWebServiceProxyGeneratorTool" 36 Name="VCWebServiceProxyGeneratorTool"
37 /> 37 />
38 <Tool 38 <Tool
39 Name="VCMIDLTool" 39 Name="VCMIDLTool"
40 /> 40 />
41 <Tool 41 <Tool
42 Name="VCCLCompilerTool" 42 Name="VCCLCompilerTool"
43 Optimization="0" 43 Optimization="0"
44 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;" 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" 45 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG"
46 MinimalRebuild="false" 46 MinimalRebuild="false"
47 BasicRuntimeChecks="3" 47 BasicRuntimeChecks="3"
48 RuntimeLibrary="1" 48 RuntimeLibrary="1"
49 TreatWChar_tAsBuiltInType="false" 49 TreatWChar_tAsBuiltInType="false"
50 RuntimeTypeInfo="true" 50 RuntimeTypeInfo="true"
51 UsePrecompiledHeader="0" 51 UsePrecompiledHeader="0"
52 WarningLevel="3" 52 WarningLevel="3"
53 Detect64BitPortabilityProblems="false" 53 Detect64BitPortabilityProblems="false"
54 DebugInformationFormat="3" 54 DebugInformationFormat="3"
55 /> 55 />
56 <Tool 56 <Tool
57 Name="VCManagedResourceCompilerTool" 57 Name="VCManagedResourceCompilerTool"
58 /> 58 />
59 <Tool 59 <Tool
60 Name="VCResourceCompilerTool" 60 Name="VCResourceCompilerTool"
61 /> 61 />
62 <Tool 62 <Tool
63 Name="VCPreLinkEventTool" 63 Name="VCPreLinkEventTool"
64 /> 64 />
65 <Tool 65 <Tool
66 Name="VCLinkerTool" 66 Name="VCLinkerTool"
67 AdditionalOptions="/FORCE:MULTIPLE" 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-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" 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-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"
69 OutputFile="$(OutDir)/test.exe" 69 OutputFile="$(OutDir)/test.exe"
70 LinkIncremental="2" 70 LinkIncremental="2"
71 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_debug&quot;" 71 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_debug&quot;"
72 IgnoreDefaultLibraryNames="libcmt.lib" 72 IgnoreDefaultLibraryNames="libcmt.lib"
73 GenerateDebugInformation="true" 73 GenerateDebugInformation="true"
74 ProgramDatabaseFile="$(OutDir)/test.pdb" 74 ProgramDatabaseFile="$(OutDir)/test.pdb"
75 SubSystem="1" 75 SubSystem="1"
76 TargetMachine="1" 76 TargetMachine="1"
77 /> 77 />
78 <Tool 78 <Tool
79 Name="VCALinkTool" 79 Name="VCALinkTool"
80 /> 80 />
81 <Tool 81 <Tool
82 Name="VCManifestTool" 82 Name="VCManifestTool"
83 /> 83 />
84 <Tool 84 <Tool
85 Name="VCXDCMakeTool" 85 Name="VCXDCMakeTool"
86 /> 86 />
87 <Tool 87 <Tool
88 Name="VCBscMakeTool" 88 Name="VCBscMakeTool"
89 /> 89 />
90 <Tool 90 <Tool
91 Name="VCFxCopTool" 91 Name="VCFxCopTool"
92 /> 92 />
93 <Tool 93 <Tool
94 Name="VCAppVerifierTool" 94 Name="VCAppVerifierTool"
95 /> 95 />
96 <Tool 96 <Tool
97 Name="VCWebDeploymentTool" 97 Name="VCWebDeploymentTool"
98 /> 98 />
99 <Tool 99 <Tool
100 Name="VCPostBuildEventTool" 100 Name="VCPostBuildEventTool"
101 /> 101 />
102 </Configuration> 102 </Configuration>
103 <Configuration 103 <Configuration
104 Name="Release|Win32" 104 Name="Release|Win32"
105 OutputDirectory="Release" 105 OutputDirectory="Release"
106 IntermediateDirectory="Release" 106 IntermediateDirectory="Release"
107 ConfigurationType="1" 107 ConfigurationType="1"
108 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 108 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
109 CharacterSet="2" 109 CharacterSet="2"
110 > 110 >
111 <Tool 111 <Tool
112 Name="VCPreBuildEventTool" 112 Name="VCPreBuildEventTool"
113 /> 113 />
114 <Tool 114 <Tool
115 Name="VCCustomBuildTool" 115 Name="VCCustomBuildTool"
116 /> 116 />
117 <Tool 117 <Tool
118 Name="VCXMLDataGeneratorTool" 118 Name="VCXMLDataGeneratorTool"
119 /> 119 />
120 <Tool 120 <Tool
121 Name="VCWebServiceProxyGeneratorTool" 121 Name="VCWebServiceProxyGeneratorTool"
122 /> 122 />
123 <Tool 123 <Tool
124 Name="VCMIDLTool" 124 Name="VCMIDLTool"
125 /> 125 />
126 <Tool 126 <Tool
127 Name="VCCLCompilerTool" 127 Name="VCCLCompilerTool"
128 Optimization="2" 128 Optimization="2"
129 InlineFunctionExpansion="2" 129 InlineFunctionExpansion="2"
130 EnableIntrinsicFunctions="true" 130 EnableIntrinsicFunctions="true"
131 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;" 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" 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" 133 StringPooling="true"
134 MinimalRebuild="false" 134 MinimalRebuild="false"
135 BasicRuntimeChecks="0" 135 BasicRuntimeChecks="0"
136 RuntimeLibrary="0" 136 RuntimeLibrary="0"
137 TreatWChar_tAsBuiltInType="false" 137 TreatWChar_tAsBuiltInType="false"
138 ForceConformanceInForLoopScope="true" 138 ForceConformanceInForLoopScope="true"
139 RuntimeTypeInfo="true" 139 RuntimeTypeInfo="true"
140 UsePrecompiledHeader="0" 140 UsePrecompiledHeader="0"
141 WarningLevel="3" 141 WarningLevel="3"
142 WarnAsError="false" 142 WarnAsError="false"
143 Detect64BitPortabilityProblems="false" 143 Detect64BitPortabilityProblems="false"
144 DebugInformationFormat="3" 144 DebugInformationFormat="3"
145 /> 145 />
146 <Tool 146 <Tool
147 Name="VCManagedResourceCompilerTool" 147 Name="VCManagedResourceCompilerTool"
148 /> 148 />
149 <Tool 149 <Tool
150 Name="VCResourceCompilerTool" 150 Name="VCResourceCompilerTool"
151 /> 151 />
152 <Tool 152 <Tool
153 Name="VCPreLinkEventTool" 153 Name="VCPreLinkEventTool"
154 /> 154 />
155 <Tool 155 <Tool
156 Name="VCLinkerTool" 156 Name="VCLinkerTool"
157 AdditionalOptions="/FORCE:MULTIPLE" 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" 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" 159 OutputFile="$(OutDir)/test.exe"
160 LinkIncremental="2" 160 LinkIncremental="2"
161 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;" 161 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
162 IgnoreDefaultLibraryNames="" 162 IgnoreDefaultLibraryNames=""
163 GenerateDebugInformation="true" 163 GenerateDebugInformation="true"
164 ProgramDatabaseFile="$(OutDir)/test.pdb" 164 ProgramDatabaseFile="$(OutDir)/test.pdb"
165 SubSystem="1" 165 SubSystem="1"
166 OptimizeReferences="1" 166 OptimizeReferences="1"
167 EnableCOMDATFolding="1" 167 EnableCOMDATFolding="1"
168 TargetMachine="1" 168 TargetMachine="1"
169 /> 169 />
170 <Tool 170 <Tool
171 Name="VCALinkTool" 171 Name="VCALinkTool"
172 /> 172 />
173 <Tool 173 <Tool
174 Name="VCManifestTool" 174 Name="VCManifestTool"
175 /> 175 />
176 <Tool 176 <Tool
177 Name="VCXDCMakeTool" 177 Name="VCXDCMakeTool"
178 /> 178 />
179 <Tool 179 <Tool
180 Name="VCBscMakeTool" 180 Name="VCBscMakeTool"
181 /> 181 />
182 <Tool 182 <Tool
183 Name="VCFxCopTool" 183 Name="VCFxCopTool"
184 /> 184 />
185 <Tool 185 <Tool
186 Name="VCAppVerifierTool" 186 Name="VCAppVerifierTool"
187 /> 187 />
188 <Tool 188 <Tool
189 Name="VCWebDeploymentTool" 189 Name="VCWebDeploymentTool"
190 /> 190 />
191 <Tool 191 <Tool
192 Name="VCPostBuildEventTool" 192 Name="VCPostBuildEventTool"
193 CommandLine="$(TargetPath)" 193 CommandLine="$(TargetPath)"
194 /> 194 />
195 </Configuration> 195 </Configuration>
196 <Configuration 196 <Configuration
197 Name="ReleaseNoOpt|Win32" 197 Name="ReleaseNoOpt|Win32"
198 OutputDirectory="$(ConfigurationName)" 198 OutputDirectory="$(ConfigurationName)"
199 IntermediateDirectory="$(ConfigurationName)" 199 IntermediateDirectory="$(ConfigurationName)"
200 ConfigurationType="1" 200 ConfigurationType="1"
201 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 201 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
202 CharacterSet="2" 202 CharacterSet="2"
203 > 203 >
204 <Tool 204 <Tool
205 Name="VCPreBuildEventTool" 205 Name="VCPreBuildEventTool"
206 /> 206 />
207 <Tool 207 <Tool
208 Name="VCCustomBuildTool" 208 Name="VCCustomBuildTool"
209 /> 209 />
210 <Tool 210 <Tool
211 Name="VCXMLDataGeneratorTool" 211 Name="VCXMLDataGeneratorTool"
212 /> 212 />
213 <Tool 213 <Tool
214 Name="VCWebServiceProxyGeneratorTool" 214 Name="VCWebServiceProxyGeneratorTool"
215 /> 215 />
216 <Tool 216 <Tool
217 Name="VCMIDLTool" 217 Name="VCMIDLTool"
218 /> 218 />
219 <Tool 219 <Tool
220 Name="VCCLCompilerTool" 220 Name="VCCLCompilerTool"
221 Optimization="0" 221 Optimization="0"
222 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;" 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" 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" 224 MinimalRebuild="false"
225 BasicRuntimeChecks="0" 225 BasicRuntimeChecks="0"
226 RuntimeLibrary="0" 226 RuntimeLibrary="0"
227 TreatWChar_tAsBuiltInType="false" 227 TreatWChar_tAsBuiltInType="false"
228 ForceConformanceInForLoopScope="true" 228 ForceConformanceInForLoopScope="true"
229 RuntimeTypeInfo="true" 229 RuntimeTypeInfo="true"
230 UsePrecompiledHeader="0" 230 UsePrecompiledHeader="0"
231 WarningLevel="3" 231 WarningLevel="3"
232 Detect64BitPortabilityProblems="false" 232 Detect64BitPortabilityProblems="false"
233 DebugInformationFormat="3" 233 DebugInformationFormat="3"
234 /> 234 />
235 <Tool 235 <Tool
236 Name="VCManagedResourceCompilerTool" 236 Name="VCManagedResourceCompilerTool"
237 /> 237 />
238 <Tool 238 <Tool
239 Name="VCResourceCompilerTool" 239 Name="VCResourceCompilerTool"
240 /> 240 />
241 <Tool 241 <Tool
242 Name="VCPreLinkEventTool" 242 Name="VCPreLinkEventTool"
243 /> 243 />
244 <Tool 244 <Tool
245 Name="VCLinkerTool" 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.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 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"
247 OutputFile="$(OutDir)/test.exe" 247 OutputFile="$(OutDir)/test.exe"
248 LinkIncremental="2" 248 LinkIncremental="2"
249 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;" 249 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
250 IgnoreDefaultLibraryNames="libcmtd" 250 IgnoreDefaultLibraryNames="libcmtd"
251 GenerateDebugInformation="true" 251 GenerateDebugInformation="true"
252 ProgramDatabaseFile="$(OutDir)/test.pdb" 252 ProgramDatabaseFile="$(OutDir)/test.pdb"
253 SubSystem="1" 253 SubSystem="1"
254 TargetMachine="1" 254 TargetMachine="1"
255 /> 255 />
256 <Tool 256 <Tool
257 Name="VCALinkTool" 257 Name="VCALinkTool"
258 /> 258 />
259 <Tool 259 <Tool
260 Name="VCManifestTool" 260 Name="VCManifestTool"
261 /> 261 />
262 <Tool 262 <Tool
263 Name="VCXDCMakeTool" 263 Name="VCXDCMakeTool"
264 /> 264 />
265 <Tool 265 <Tool
266 Name="VCBscMakeTool" 266 Name="VCBscMakeTool"
267 /> 267 />
268 <Tool 268 <Tool
269 Name="VCFxCopTool" 269 Name="VCFxCopTool"
270 /> 270 />
271 <Tool 271 <Tool
272 Name="VCAppVerifierTool" 272 Name="VCAppVerifierTool"
273 /> 273 />
274 <Tool 274 <Tool
275 Name="VCWebDeploymentTool" 275 Name="VCWebDeploymentTool"
276 /> 276 />
277 <Tool 277 <Tool
278 Name="VCPostBuildEventTool" 278 Name="VCPostBuildEventTool"
279 CommandLine="$(TargetPath)" 279 CommandLine="$(TargetPath)"
280 /> 280 />
281 </Configuration> 281 </Configuration>
282 </Configurations> 282 </Configurations>
283 <References> 283 <References>
284 </References> 284 </References>
285 <Files> 285 <Files>
286 <Filter 286 <Filter
287 Name="Source Files" 287 Name="Source Files"
288 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" 288 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
289 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" 289 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
290 > 290 >
291 <File 291 <File
292 RelativePath=".\common.cpp" 292 RelativePath=".\common.cpp"
293 > 293 >
294 </File> 294 </File>
295 <File 295 <File
296 RelativePath=".\inventory.cpp" 296 RelativePath=".\inventory.cpp"
297 > 297 >
298 </File> 298 </File>
299 <File 299 <File
300 RelativePath=".\io.cpp" 300 RelativePath=".\io.cpp"
301 > 301 >
302 </File> 302 </File>
303 <File 303 <File
304 RelativePath=".\llapp_tut.cpp" 304 RelativePath=".\llapp_tut.cpp"
305 > 305 >
306 </File> 306 </File>
307 <File 307 <File
308 RelativePath=".\llbase64_tut.cpp" 308 RelativePath=".\llbase64_tut.cpp"
309 > 309 >
310 </File> 310 </File>
311 <File 311 <File
312 RelativePath=".\llbitpack_tut.cpp" 312 RelativePath=".\llbitpack_tut.cpp"
313 > 313 >
314 </File> 314 </File>
315 <File 315 <File
316 RelativePath=".\llblowfish_tut.cpp" 316 RelativePath=".\llblowfish_tut.cpp"
317 > 317 >
318 </File> 318 </File>
319 <File 319 <File
320 RelativePath=".\lldatabase_tut.cpp" 320 RelativePath=".\lldatabase_tut.cpp"
321 > 321 >
322 </File> 322 </File>
323 <File 323 <File
324 RelativePath=".\llerror_tut.cpp" 324 RelativePath=".\llerror_tut.cpp"
325 > 325 >
326 </File> 326 </File>
327 <File 327 <File
328 RelativePath=".\llhttpclient_tut.cpp" 328 RelativePath=".\llhttpclient_tut.cpp"
329 > 329 >
330 </File> 330 </File>
331 <File 331 <File
332 RelativePath=".\llhttpnode_tut.cpp" 332 RelativePath=".\llhttpnode_tut.cpp"
333 > 333 >
334 </File> 334 </File>
335 <File 335 <File
336 RelativePath=".\llinventoryparcel_tut.cpp" 336 RelativePath=".\llinventoryparcel_tut.cpp"
337 > 337 >
338 </File> 338 </File>
339 <File 339 <File
340 RelativePath=".\lliohttpserver_tut.cpp" 340 RelativePath=".\lliohttpserver_tut.cpp"
341 > 341 >
342 </File> 342 </File>
343 <File 343 <File
344 RelativePath=".\llmessageconfig_tut.cpp" 344 RelativePath=".\llmessageconfig_tut.cpp"
345 > 345 >
346 </File> 346 </File>
347 <File 347 <File
348 RelativePath=".\llmime_tut.cpp" 348 RelativePath=".\llmime_tut.cpp"
349 > 349 >
350 </File> 350 </File>
351 <File 351 <File
352 RelativePath=".\llpipeutil.cpp" 352 RelativePath=".\llpipeutil.cpp"
353 > 353 >
354 </File> 354 </File>
355 <File 355 <File
356 RelativePath=".\llrandom_tut.cpp" 356 RelativePath=".\llrandom_tut.cpp"
357 > 357 >
358 </File> 358 </File>
359 <File 359 <File
360 RelativePath=".\llsd_new_tut.cpp" 360 RelativePath=".\llsd_new_tut.cpp"
361 > 361 >
362 </File> 362 </File>
363 <File 363 <File
364 RelativePath=".\llsdmessagebuilder_tut.cpp" 364 RelativePath=".\llsdmessagebuilder_tut.cpp"
365 > 365 >
366 </File> 366 </File>
367 <File 367 <File
368 RelativePath=".\llsdmessagereader_tut.cpp" 368 RelativePath=".\llsdmessagereader_tut.cpp"
369 > 369 >
370 </File> 370 </File>
371 <File 371 <File
372 RelativePath=".\llsdserialize_tut.cpp" 372 RelativePath=".\llsdserialize_tut.cpp"
373 > 373 >
374 </File> 374 </File>
375 <File 375 <File
376 RelativePath=".\llservicebuilder_tut.cpp" 376 RelativePath=".\llservicebuilder_tut.cpp"
377 > 377 >
378 </File> 378 </File>
379 <File 379 <File
380 RelativePath=".\lltiming_tut.cpp" 380 RelativePath=".\lltiming_tut.cpp"
381 > 381 >
382 </File> 382 </File>
383 <File 383 <File
384 RelativePath=".\lltut.cpp" 384 RelativePath=".\lltut.cpp"
385 > 385 >
386 </File> 386 </File>
387 <File 387 <File
388 RelativePath=".\lluri_tut.cpp" 388 RelativePath=".\lluri_tut.cpp"
389 > 389 >
390 </File> 390 </File>
391 <File 391 <File
392 RelativePath=".\lluserrelations_tut.cpp" 392 RelativePath=".\lluserrelations_tut.cpp"
393 > 393 >
394 </File> 394 </File>
395 <File 395 <File
396 RelativePath=".\llxfer_tut.cpp" 396 RelativePath=".\llxfer_tut.cpp"
397 > 397 >
398 </File> 398 </File>
399 <File 399 <File
400 RelativePath=".\math.cpp" 400 RelativePath=".\math.cpp"
401 > 401 >
402 </File> 402 </File>
403 <File 403 <File
404 RelativePath=".\reflection_tut.cpp" 404 RelativePath=".\reflection_tut.cpp"
405 > 405 >
406 </File> 406 </File>
407 <File 407 <File
408 RelativePath=".\test.cpp" 408 RelativePath=".\test.cpp"
409 > 409 >
410 </File> 410 </File>
411 <File 411 <File
412 RelativePath=".\v2math_tut.cpp" 412 RelativePath=".\v2math_tut.cpp"
413 > 413 >
414 </File> 414 </File>
415 <File 415 <File
416 RelativePath=".\v3dmath_tut.cpp" 416 RelativePath=".\v3dmath_tut.cpp"
417 > 417 >
418 </File> 418 </File>
419 <File 419 <File
420 RelativePath=".\v3math_tut.cpp" 420 RelativePath=".\v3math_tut.cpp"
421 > 421 >
422 </File> 422 </File>
423 <File 423 <File
424 RelativePath=".\xform_tut.cpp" 424 RelativePath=".\xform_tut.cpp"
425 > 425 >
426 </File> 426 </File>
427 </Filter> 427 </Filter>
428 <Filter 428 <Filter
429 Name="Header Files" 429 Name="Header Files"
430 Filter="h;hpp;hxx;hm;inl;inc;xsd" 430 Filter="h;hpp;hxx;hm;inl;inc;xsd"
431 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 431 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
432 > 432 >
433 <File 433 <File
434 RelativePath=".\llpipeutil.h" 434 RelativePath=".\llpipeutil.h"
435 > 435 >
436 </File> 436 </File>
437 <File 437 <File
438 RelativePath=".\llsdtraits.h" 438 RelativePath=".\llsdtraits.h"
439 > 439 >
440 </File> 440 </File>
441 <File 441 <File
442 RelativePath=".\lltut.h" 442 RelativePath=".\lltut.h"
443 > 443 >
444 </File> 444 </File>
445 </Filter> 445 </Filter>
446 <Filter 446 <Filter
447 Name="Resource Files" 447 Name="Resource Files"
448 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" 448 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
449 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" 449 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
450 > 450 >
451 </Filter> 451 </Filter>
452 </Files> 452 </Files>
453 <Globals> 453 <Globals>
454 </Globals> 454 </Globals>
455</VisualStudioProject> 455</VisualStudioProject>
diff --git a/linden/indra/test/test_vc9.vcproj b/linden/indra/test/test_vc9.vcproj
index 88c77af..7230df4 100644
--- a/linden/indra/test/test_vc9.vcproj
+++ b/linden/indra/test/test_vc9.vcproj
@@ -1,453 +1,453 @@
1<?xml version="1.0" encoding="Windows-1252"?> 1<?xml version="1.0" encoding="Windows-1252"?>
2<VisualStudioProject 2<VisualStudioProject
3 ProjectType="Visual C++" 3 ProjectType="Visual C++"
4 Version="9.00" 4 Version="9.00"
5 Name="test" 5 Name="test"
6 ProjectGUID="{BBAA6588-CA96-4A87-A988-B02270B8D02B}" 6 ProjectGUID="{BBAA6588-CA96-4A87-A988-B02270B8D02B}"
7 RootNamespace="test" 7 RootNamespace="test"
8 Keyword="Win32Proj" 8 Keyword="Win32Proj"
9 TargetFrameworkVersion="131072" 9 TargetFrameworkVersion="131072"
10 > 10 >
11 <Platforms> 11 <Platforms>
12 <Platform 12 <Platform
13 Name="Win32" 13 Name="Win32"
14 /> 14 />
15 </Platforms> 15 </Platforms>
16 <ToolFiles> 16 <ToolFiles>
17 </ToolFiles> 17 </ToolFiles>
18 <Configurations> 18 <Configurations>
19 <Configuration 19 <Configuration
20 Name="Debug|Win32" 20 Name="Debug|Win32"
21 OutputDirectory="Debug" 21 OutputDirectory="Debug"
22 IntermediateDirectory="Debug" 22 IntermediateDirectory="Debug"
23 ConfigurationType="1" 23 ConfigurationType="1"
24 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 24 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
25 CharacterSet="2" 25 CharacterSet="2"
26 > 26 >
27 <Tool 27 <Tool
28 Name="VCPreBuildEventTool" 28 Name="VCPreBuildEventTool"
29 /> 29 />
30 <Tool 30 <Tool
31 Name="VCCustomBuildTool" 31 Name="VCCustomBuildTool"
32 /> 32 />
33 <Tool 33 <Tool
34 Name="VCXMLDataGeneratorTool" 34 Name="VCXMLDataGeneratorTool"
35 /> 35 />
36 <Tool 36 <Tool
37 Name="VCWebServiceProxyGeneratorTool" 37 Name="VCWebServiceProxyGeneratorTool"
38 /> 38 />
39 <Tool 39 <Tool
40 Name="VCMIDLTool" 40 Name="VCMIDLTool"
41 /> 41 />
42 <Tool 42 <Tool
43 Name="VCCLCompilerTool" 43 Name="VCCLCompilerTool"
44 Optimization="0" 44 Optimization="0"
45 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;" 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" 46 PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE;LL_WINDOWS;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE;_USE_32BIT_TIME_T;LL_DEBUG"
47 MinimalRebuild="false" 47 MinimalRebuild="false"
48 BasicRuntimeChecks="3" 48 BasicRuntimeChecks="3"
49 RuntimeLibrary="1" 49 RuntimeLibrary="1"
50 TreatWChar_tAsBuiltInType="false" 50 TreatWChar_tAsBuiltInType="false"
51 RuntimeTypeInfo="true" 51 RuntimeTypeInfo="true"
52 UsePrecompiledHeader="0" 52 UsePrecompiledHeader="0"
53 WarningLevel="3" 53 WarningLevel="3"
54 Detect64BitPortabilityProblems="false" 54 Detect64BitPortabilityProblems="false"
55 DebugInformationFormat="3" 55 DebugInformationFormat="3"
56 /> 56 />
57 <Tool 57 <Tool
58 Name="VCManagedResourceCompilerTool" 58 Name="VCManagedResourceCompilerTool"
59 /> 59 />
60 <Tool 60 <Tool
61 Name="VCResourceCompilerTool" 61 Name="VCResourceCompilerTool"
62 /> 62 />
63 <Tool 63 <Tool
64 Name="VCPreLinkEventTool" 64 Name="VCPreLinkEventTool"
65 /> 65 />
66 <Tool 66 <Tool
67 Name="VCLinkerTool" 67 Name="VCLinkerTool"
68 AdditionalOptions="/FORCE:MULTIPLE" 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" 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" 70 OutputFile="$(OutDir)/test.exe"
71 LinkIncremental="2" 71 LinkIncremental="2"
72 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_debug&quot;" 72 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_debug&quot;"
73 IgnoreDefaultLibraryNames="libcmt.lib" 73 IgnoreDefaultLibraryNames="libcmt.lib"
74 GenerateDebugInformation="true" 74 GenerateDebugInformation="true"
75 ProgramDatabaseFile="$(OutDir)/test.pdb" 75 ProgramDatabaseFile="$(OutDir)/test.pdb"
76 SubSystem="1" 76 SubSystem="1"
77 RandomizedBaseAddress="1" 77 RandomizedBaseAddress="1"
78 DataExecutionPrevention="0" 78 DataExecutionPrevention="0"
79 TargetMachine="1" 79 TargetMachine="1"
80 /> 80 />
81 <Tool 81 <Tool
82 Name="VCALinkTool" 82 Name="VCALinkTool"
83 /> 83 />
84 <Tool 84 <Tool
85 Name="VCManifestTool" 85 Name="VCManifestTool"
86 /> 86 />
87 <Tool 87 <Tool
88 Name="VCXDCMakeTool" 88 Name="VCXDCMakeTool"
89 /> 89 />
90 <Tool 90 <Tool
91 Name="VCBscMakeTool" 91 Name="VCBscMakeTool"
92 /> 92 />
93 <Tool 93 <Tool
94 Name="VCFxCopTool" 94 Name="VCFxCopTool"
95 /> 95 />
96 <Tool 96 <Tool
97 Name="VCAppVerifierTool" 97 Name="VCAppVerifierTool"
98 /> 98 />
99 <Tool 99 <Tool
100 Name="VCPostBuildEventTool" 100 Name="VCPostBuildEventTool"
101 /> 101 />
102 </Configuration> 102 </Configuration>
103 <Configuration 103 <Configuration
104 Name="Release|Win32" 104 Name="Release|Win32"
105 OutputDirectory="Release" 105 OutputDirectory="Release"
106 IntermediateDirectory="Release" 106 IntermediateDirectory="Release"
107 ConfigurationType="1" 107 ConfigurationType="1"
108 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 108 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
109 CharacterSet="2" 109 CharacterSet="2"
110 > 110 >
111 <Tool 111 <Tool
112 Name="VCPreBuildEventTool" 112 Name="VCPreBuildEventTool"
113 /> 113 />
114 <Tool 114 <Tool
115 Name="VCCustomBuildTool" 115 Name="VCCustomBuildTool"
116 /> 116 />
117 <Tool 117 <Tool
118 Name="VCXMLDataGeneratorTool" 118 Name="VCXMLDataGeneratorTool"
119 /> 119 />
120 <Tool 120 <Tool
121 Name="VCWebServiceProxyGeneratorTool" 121 Name="VCWebServiceProxyGeneratorTool"
122 /> 122 />
123 <Tool 123 <Tool
124 Name="VCMIDLTool" 124 Name="VCMIDLTool"
125 /> 125 />
126 <Tool 126 <Tool
127 Name="VCCLCompilerTool" 127 Name="VCCLCompilerTool"
128 Optimization="2" 128 Optimization="2"
129 InlineFunctionExpansion="2" 129 InlineFunctionExpansion="2"
130 EnableIntrinsicFunctions="true" 130 EnableIntrinsicFunctions="true"
131 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;" 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" 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" 133 StringPooling="true"
134 MinimalRebuild="false" 134 MinimalRebuild="false"
135 BasicRuntimeChecks="0" 135 BasicRuntimeChecks="0"
136 RuntimeLibrary="0" 136 RuntimeLibrary="0"
137 TreatWChar_tAsBuiltInType="false" 137 TreatWChar_tAsBuiltInType="false"
138 ForceConformanceInForLoopScope="true" 138 ForceConformanceInForLoopScope="true"
139 RuntimeTypeInfo="true" 139 RuntimeTypeInfo="true"
140 UsePrecompiledHeader="0" 140 UsePrecompiledHeader="0"
141 WarningLevel="3" 141 WarningLevel="3"
142 WarnAsError="false" 142 WarnAsError="false"
143 Detect64BitPortabilityProblems="false" 143 Detect64BitPortabilityProblems="false"
144 DebugInformationFormat="3" 144 DebugInformationFormat="3"
145 /> 145 />
146 <Tool 146 <Tool
147 Name="VCManagedResourceCompilerTool" 147 Name="VCManagedResourceCompilerTool"
148 /> 148 />
149 <Tool 149 <Tool
150 Name="VCResourceCompilerTool" 150 Name="VCResourceCompilerTool"
151 /> 151 />
152 <Tool 152 <Tool
153 Name="VCPreLinkEventTool" 153 Name="VCPreLinkEventTool"
154 /> 154 />
155 <Tool 155 <Tool
156 Name="VCLinkerTool" 156 Name="VCLinkerTool"
157 AdditionalOptions="/FORCE:MULTIPLE" 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" 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" 159 OutputFile="$(OutDir)/test.exe"
160 LinkIncremental="2" 160 LinkIncremental="2"
161 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;" 161 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
162 IgnoreDefaultLibraryNames="" 162 IgnoreDefaultLibraryNames=""
163 GenerateDebugInformation="true" 163 GenerateDebugInformation="true"
164 ProgramDatabaseFile="$(OutDir)/test.pdb" 164 ProgramDatabaseFile="$(OutDir)/test.pdb"
165 SubSystem="1" 165 SubSystem="1"
166 OptimizeReferences="1" 166 OptimizeReferences="1"
167 EnableCOMDATFolding="1" 167 EnableCOMDATFolding="1"
168 RandomizedBaseAddress="1" 168 RandomizedBaseAddress="1"
169 DataExecutionPrevention="0" 169 DataExecutionPrevention="0"
170 TargetMachine="1" 170 TargetMachine="1"
171 /> 171 />
172 <Tool 172 <Tool
173 Name="VCALinkTool" 173 Name="VCALinkTool"
174 /> 174 />
175 <Tool 175 <Tool
176 Name="VCManifestTool" 176 Name="VCManifestTool"
177 /> 177 />
178 <Tool 178 <Tool
179 Name="VCXDCMakeTool" 179 Name="VCXDCMakeTool"
180 /> 180 />
181 <Tool 181 <Tool
182 Name="VCBscMakeTool" 182 Name="VCBscMakeTool"
183 /> 183 />
184 <Tool 184 <Tool
185 Name="VCFxCopTool" 185 Name="VCFxCopTool"
186 /> 186 />
187 <Tool 187 <Tool
188 Name="VCAppVerifierTool" 188 Name="VCAppVerifierTool"
189 /> 189 />
190 <Tool 190 <Tool
191 Name="VCPostBuildEventTool" 191 Name="VCPostBuildEventTool"
192 CommandLine="$(TargetPath)" 192 CommandLine="$(TargetPath)"
193 /> 193 />
194 </Configuration> 194 </Configuration>
195 <Configuration 195 <Configuration
196 Name="ReleaseNoOpt|Win32" 196 Name="ReleaseNoOpt|Win32"
197 OutputDirectory="$(ConfigurationName)" 197 OutputDirectory="$(ConfigurationName)"
198 IntermediateDirectory="$(ConfigurationName)" 198 IntermediateDirectory="$(ConfigurationName)"
199 ConfigurationType="1" 199 ConfigurationType="1"
200 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops" 200 InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
201 CharacterSet="2" 201 CharacterSet="2"
202 > 202 >
203 <Tool 203 <Tool
204 Name="VCPreBuildEventTool" 204 Name="VCPreBuildEventTool"
205 /> 205 />
206 <Tool 206 <Tool
207 Name="VCCustomBuildTool" 207 Name="VCCustomBuildTool"
208 /> 208 />
209 <Tool 209 <Tool
210 Name="VCXMLDataGeneratorTool" 210 Name="VCXMLDataGeneratorTool"
211 /> 211 />
212 <Tool 212 <Tool
213 Name="VCWebServiceProxyGeneratorTool" 213 Name="VCWebServiceProxyGeneratorTool"
214 /> 214 />
215 <Tool 215 <Tool
216 Name="VCMIDLTool" 216 Name="VCMIDLTool"
217 /> 217 />
218 <Tool 218 <Tool
219 Name="VCCLCompilerTool" 219 Name="VCCLCompilerTool"
220 Optimization="0" 220 Optimization="0"
221 AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;&quot;..\..\libraries\i686-win32\include&quot;" 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" 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" 223 MinimalRebuild="false"
224 BasicRuntimeChecks="0" 224 BasicRuntimeChecks="0"
225 RuntimeLibrary="0" 225 RuntimeLibrary="0"
226 TreatWChar_tAsBuiltInType="false" 226 TreatWChar_tAsBuiltInType="false"
227 ForceConformanceInForLoopScope="true" 227 ForceConformanceInForLoopScope="true"
228 RuntimeTypeInfo="true" 228 RuntimeTypeInfo="true"
229 UsePrecompiledHeader="0" 229 UsePrecompiledHeader="0"
230 WarningLevel="3" 230 WarningLevel="3"
231 Detect64BitPortabilityProblems="false" 231 Detect64BitPortabilityProblems="false"
232 DebugInformationFormat="3" 232 DebugInformationFormat="3"
233 /> 233 />
234 <Tool 234 <Tool
235 Name="VCManagedResourceCompilerTool" 235 Name="VCManagedResourceCompilerTool"
236 /> 236 />
237 <Tool 237 <Tool
238 Name="VCResourceCompilerTool" 238 Name="VCResourceCompilerTool"
239 /> 239 />
240 <Tool 240 <Tool
241 Name="VCPreLinkEventTool" 241 Name="VCPreLinkEventTool"
242 /> 242 />
243 <Tool 243 <Tool
244 Name="VCLinkerTool" 244 Name="VCLinkerTool"
245 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" 245 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"
246 OutputFile="$(OutDir)/test.exe" 246 OutputFile="$(OutDir)/test.exe"
247 LinkIncremental="2" 247 LinkIncremental="2"
248 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;" 248 AdditionalLibraryDirectories="&quot;../lib_$(ConfigurationName)/i686-win32&quot;;&quot;../../libraries/i686-win32/lib_release&quot;"
249 IgnoreDefaultLibraryNames="libcmtd" 249 IgnoreDefaultLibraryNames="libcmtd"
250 GenerateDebugInformation="true" 250 GenerateDebugInformation="true"
251 ProgramDatabaseFile="$(OutDir)/test.pdb" 251 ProgramDatabaseFile="$(OutDir)/test.pdb"
252 SubSystem="1" 252 SubSystem="1"
253 RandomizedBaseAddress="1" 253 RandomizedBaseAddress="1"
254 DataExecutionPrevention="0" 254 DataExecutionPrevention="0"
255 TargetMachine="1" 255 TargetMachine="1"
256 /> 256 />
257 <Tool 257 <Tool
258 Name="VCALinkTool" 258 Name="VCALinkTool"
259 /> 259 />
260 <Tool 260 <Tool
261 Name="VCManifestTool" 261 Name="VCManifestTool"
262 /> 262 />
263 <Tool 263 <Tool
264 Name="VCXDCMakeTool" 264 Name="VCXDCMakeTool"
265 /> 265 />
266 <Tool 266 <Tool
267 Name="VCBscMakeTool" 267 Name="VCBscMakeTool"
268 /> 268 />
269 <Tool 269 <Tool
270 Name="VCFxCopTool" 270 Name="VCFxCopTool"
271 /> 271 />
272 <Tool 272 <Tool
273 Name="VCAppVerifierTool" 273 Name="VCAppVerifierTool"
274 /> 274 />
275 <Tool 275 <Tool
276 Name="VCPostBuildEventTool" 276 Name="VCPostBuildEventTool"
277 CommandLine="$(TargetPath)" 277 CommandLine="$(TargetPath)"
278 /> 278 />
279 </Configuration> 279 </Configuration>
280 </Configurations> 280 </Configurations>
281 <References> 281 <References>
282 </References> 282 </References>
283 <Files> 283 <Files>
284 <Filter 284 <Filter
285 Name="Source Files" 285 Name="Source Files"
286 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" 286 Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
287 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" 287 UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
288 > 288 >
289 <File 289 <File
290 RelativePath=".\common.cpp" 290 RelativePath=".\common.cpp"
291 > 291 >
292 </File> 292 </File>
293 <File 293 <File
294 RelativePath=".\inventory.cpp" 294 RelativePath=".\inventory.cpp"
295 > 295 >
296 </File> 296 </File>
297 <File 297 <File
298 RelativePath=".\io.cpp" 298 RelativePath=".\io.cpp"
299 > 299 >
300 </File> 300 </File>
301 <File 301 <File
302 RelativePath=".\llapp_tut.cpp" 302 RelativePath=".\llapp_tut.cpp"
303 > 303 >
304 </File> 304 </File>
305 <File 305 <File
306 RelativePath=".\llbase64_tut.cpp" 306 RelativePath=".\llbase64_tut.cpp"
307 > 307 >
308 </File> 308 </File>
309 <File 309 <File
310 RelativePath=".\llbitpack_tut.cpp" 310 RelativePath=".\llbitpack_tut.cpp"
311 > 311 >
312 </File> 312 </File>
313 <File 313 <File
314 RelativePath=".\llblowfish_tut.cpp" 314 RelativePath=".\llblowfish_tut.cpp"
315 > 315 >
316 </File> 316 </File>
317 <File 317 <File
318 RelativePath=".\lldatabase_tut.cpp" 318 RelativePath=".\lldatabase_tut.cpp"
319 > 319 >
320 </File> 320 </File>
321 <File 321 <File
322 RelativePath=".\llerror_tut.cpp" 322 RelativePath=".\llerror_tut.cpp"
323 > 323 >
324 </File> 324 </File>
325 <File 325 <File
326 RelativePath=".\llhttpclient_tut.cpp" 326 RelativePath=".\llhttpclient_tut.cpp"
327 > 327 >
328 </File> 328 </File>
329 <File 329 <File
330 RelativePath=".\llhttpnode_tut.cpp" 330 RelativePath=".\llhttpnode_tut.cpp"
331 > 331 >
332 </File> 332 </File>
333 <File 333 <File
334 RelativePath=".\llinventoryparcel_tut.cpp" 334 RelativePath=".\llinventoryparcel_tut.cpp"
335 > 335 >
336 </File> 336 </File>
337 <File 337 <File
338 RelativePath=".\lliohttpserver_tut.cpp" 338 RelativePath=".\lliohttpserver_tut.cpp"
339 > 339 >
340 </File> 340 </File>
341 <File 341 <File
342 RelativePath=".\llmessageconfig_tut.cpp" 342 RelativePath=".\llmessageconfig_tut.cpp"
343 > 343 >
344 </File> 344 </File>
345 <File 345 <File
346 RelativePath=".\llmime_tut.cpp" 346 RelativePath=".\llmime_tut.cpp"
347 > 347 >
348 </File> 348 </File>
349 <File 349 <File
350 RelativePath=".\llpipeutil.cpp" 350 RelativePath=".\llpipeutil.cpp"
351 > 351 >
352 </File> 352 </File>
353 <File 353 <File
354 RelativePath=".\llrandom_tut.cpp" 354 RelativePath=".\llrandom_tut.cpp"
355 > 355 >
356 </File> 356 </File>
357 <File 357 <File
358 RelativePath=".\llsd_new_tut.cpp" 358 RelativePath=".\llsd_new_tut.cpp"
359 > 359 >
360 </File> 360 </File>
361 <File 361 <File
362 RelativePath=".\llsdmessagebuilder_tut.cpp" 362 RelativePath=".\llsdmessagebuilder_tut.cpp"
363 > 363 >
364 </File> 364 </File>
365 <File 365 <File
366 RelativePath=".\llsdmessagereader_tut.cpp" 366 RelativePath=".\llsdmessagereader_tut.cpp"
367 > 367 >
368 </File> 368 </File>
369 <File 369 <File
370 RelativePath=".\llsdserialize_tut.cpp" 370 RelativePath=".\llsdserialize_tut.cpp"
371 > 371 >
372 </File> 372 </File>
373 <File 373 <File
374 RelativePath=".\llservicebuilder_tut.cpp" 374 RelativePath=".\llservicebuilder_tut.cpp"
375 > 375 >
376 </File> 376 </File>
377 <File 377 <File
378 RelativePath=".\lltiming_tut.cpp" 378 RelativePath=".\lltiming_tut.cpp"
379 > 379 >
380 </File> 380 </File>
381 <File 381 <File
382 RelativePath=".\lltut.cpp" 382 RelativePath=".\lltut.cpp"
383 > 383 >
384 </File> 384 </File>
385 <File 385 <File
386 RelativePath=".\lluri_tut.cpp" 386 RelativePath=".\lluri_tut.cpp"
387 > 387 >
388 </File> 388 </File>
389 <File 389 <File
390 RelativePath=".\lluserrelations_tut.cpp" 390 RelativePath=".\lluserrelations_tut.cpp"
391 > 391 >
392 </File> 392 </File>
393 <File 393 <File
394 RelativePath=".\llxfer_tut.cpp" 394 RelativePath=".\llxfer_tut.cpp"
395 > 395 >
396 </File> 396 </File>
397 <File 397 <File
398 RelativePath=".\math.cpp" 398 RelativePath=".\math.cpp"
399 > 399 >
400 </File> 400 </File>
401 <File 401 <File
402 RelativePath=".\reflection_tut.cpp" 402 RelativePath=".\reflection_tut.cpp"
403 > 403 >
404 </File> 404 </File>
405 <File 405 <File
406 RelativePath=".\test.cpp" 406 RelativePath=".\test.cpp"
407 > 407 >
408 </File> 408 </File>
409 <File 409 <File
410 RelativePath=".\v2math_tut.cpp" 410 RelativePath=".\v2math_tut.cpp"
411 > 411 >
412 </File> 412 </File>
413 <File 413 <File
414 RelativePath=".\v3dmath_tut.cpp" 414 RelativePath=".\v3dmath_tut.cpp"
415 > 415 >
416 </File> 416 </File>
417 <File 417 <File
418 RelativePath=".\v3math_tut.cpp" 418 RelativePath=".\v3math_tut.cpp"
419 > 419 >
420 </File> 420 </File>
421 <File 421 <File
422 RelativePath=".\xform_tut.cpp" 422 RelativePath=".\xform_tut.cpp"
423 > 423 >
424 </File> 424 </File>
425 </Filter> 425 </Filter>
426 <Filter 426 <Filter
427 Name="Header Files" 427 Name="Header Files"
428 Filter="h;hpp;hxx;hm;inl;inc;xsd" 428 Filter="h;hpp;hxx;hm;inl;inc;xsd"
429 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" 429 UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
430 > 430 >
431 <File 431 <File
432 RelativePath=".\llpipeutil.h" 432 RelativePath=".\llpipeutil.h"
433 > 433 >
434 </File> 434 </File>
435 <File 435 <File
436 RelativePath=".\llsdtraits.h" 436 RelativePath=".\llsdtraits.h"
437 > 437 >
438 </File> 438 </File>
439 <File 439 <File
440 RelativePath=".\lltut.h" 440 RelativePath=".\lltut.h"
441 > 441 >
442 </File> 442 </File>
443 </Filter> 443 </Filter>
444 <Filter 444 <Filter
445 Name="Resource Files" 445 Name="Resource Files"
446 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" 446 Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
447 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" 447 UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
448 > 448 >
449 </Filter> 449 </Filter>
450 </Files> 450 </Files>
451 <Globals> 451 <Globals>
452 </Globals> 452 </Globals>
453</VisualStudioProject> 453</VisualStudioProject>