diff options
Diffstat (limited to 'linden/indra/test')
-rw-r--r-- | linden/indra/test/common.cpp | 41 | ||||
-rw-r--r-- | linden/indra/test/io.cpp | 30 | ||||
-rw-r--r-- | linden/indra/test/llhttpclient_tut.cpp | 42 | ||||
-rw-r--r-- | linden/indra/test/llsdserialize_tut.cpp | 927 | ||||
-rw-r--r-- | linden/indra/test/test_vc8.vcproj | 910 | ||||
-rw-r--r-- | linden/indra/test/test_vc9.vcproj | 906 |
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 | ||
44 | namespace tut | 49 | namespace 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;"..\..\libraries\i686-win32\include"" | 44 | AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;"..\..\libraries\i686-win32\include"" |
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=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" | 71 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" |
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;"..\..\libraries\i686-win32\include"" | 131 | AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;"..\..\libraries\i686-win32\include"" |
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=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 161 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
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;"..\..\libraries\i686-win32\include"" | 222 | AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;"..\..\libraries\i686-win32\include"" |
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=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 249 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
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;"..\..\libraries\i686-win32\include"" | 45 | AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;"..\..\libraries\i686-win32\include"" |
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=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" | 72 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_debug"" |
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;"..\..\libraries\i686-win32\include"" | 131 | AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;"..\..\libraries\i686-win32\include"" |
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=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 161 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
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;"..\..\libraries\i686-win32\include"" | 221 | AdditionalIncludeDirectories="..\llcommon;..\lldatabase;..\llmessage;..\llmath;..\llinventory;..\llvfs;..\llxml;..\..\libraries\include;"..\..\libraries\i686-win32\include"" |
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=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" | 248 | AdditionalLibraryDirectories=""../lib_$(ConfigurationName)/i686-win32";"../../libraries/i686-win32/lib_release"" |
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> |