Commit Graph

306 Commits (a9cf349de4fea24d0cc0ad659bde7327ec623005)

Author SHA1 Message Date
Nat Goodspeed d10b06dc4f DRTVWR-493: When a test fails due to exception, display exception. 2019-08-19 10:00:09 -04:00
Nat Goodspeed adb3f447b3 DRTVWR-493: Introduce test catch_what(), catch_llerrs() functions.
Use them in place of awkward try/catch test boilerplate.
2019-08-10 20:33:59 -04:00
Nat Goodspeed f7e99f0db7 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2018-11-14 16:17:36 -05:00
Oz Linden d87cc1859f Modify logging so that the in-viewer console and stderr do not escape line breaks
Improve the implementation so that escaping is computed only once
2018-10-11 14:17:52 -04:00
Brad Payne (Vir Linden) a84ee929a5 merge 2018-09-27 19:54:10 +01:00
Oz Linden 88e04ab2ab Restore the ability for sockets to specify the interface to listen on 2018-08-30 16:25:45 -04:00
AndreyL ProductEngine 236f986d35 Backed out changeset: 871c2923afce 2018-08-28 22:26:12 +03:00
Nat Goodspeed 00839eb635 Add optional hostname param to LLSocket::create() for testing.
This allows the io.cpp test to listen only on the localhost loopback, avoiding
the macOS 10.13.6 "allow listening for incoming connections" popup while
running build-time tests that might halt an unattended TeamCity build.
2018-08-08 20:52:00 -04:00
Brad Payne (Vir Linden) 2b79663021 merge 2018-02-13 13:58:23 +00:00
Oz Linden d7c8678c3a merge 5.1.0-release 2018-01-17 12:43:28 -05:00
Brad Payne (Vir Linden) e36745eb98 merge 2018-01-17 16:06:27 +00:00
Nat Goodspeed 5002bf5660 MAINT-8087: Use env vars from VMP for AppData\Roaming and Local.
On Windows, when logged in with a non-ASCII username, every one of the three
documented APIs -- SHGetSpecialFolderPath(), SHGetFolderPath() and
SHGetKnownFolderPath() -- fails to retrieve any pathname at all. We cannot
account for the fact that the oldest of these continues to work with the
release viewer and within a Python script (though not, curiously, from a
Python interactive session). With a non-ASCII username, they consistently fail
when called from an Alex Ivy viewer build: "The filename, directory name, or
volume label syntax is incorrect."

Empirically, with a non-ASCII username, the preset APPDATA and LOCALAPPDATA
environment variables are also useless, e.g. c:\Users\??????\AppData\Roaming
where those are, yup, actual question marks.

Empirically, the VMP is able to successfully call SHGetFolderPath() to
retrieve both AppData\Roaming and AppData\Local. Therefore, we make the VMP
set the APPDATA and LOCALAPPDATA environment variables to the UTF-8 encoded
correct pathnames. Instead of calling SHGetSomethingFolderPath() at all, make
LLDir_Win32 retrieve those environment variables.

Make LLFile::mkdir() treat "directory already exists" as a success case. Every
single call fell into one of two categories: either it didn't check success at
all, or it tested specially to exempt errno == EEXIST. Migrate that test into
mkdir(); eliminate it from call sites.

Make LLDir::append() and add() convenience functions accept variadic
arguments. Replace add(add()...) constructs, as well as clumsy concatenations
of directory names and getDirDelimiter(), with simple variadic add() calls.
2017-12-20 22:51:26 -05:00
Nat Goodspeed 870008f15b MAINT-8087: New LLDir_Win32 code requires ole32 in a few more places. 2017-12-14 19:33:10 -05:00
Nat Goodspeed 0c7bc67814 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2017-10-11 14:35:49 -04:00
Brad Payne (Vir Linden) 299592e88e merge 2017-10-11 14:16:39 +01:00
Oz Linden d62ad1ef8a merge changes for 5.0.8-release 2017-10-11 09:13:55 -04:00
Brad Payne (Vir Linden) 2af5332e46 Added cycle_object_animations.lsl. Also change to test.cpp to see if it affects a g++ internal compiler error. 2017-06-30 21:59:39 +01:00
Oz Linden d8be66c8e2 merge changes for 5.0.6-release 2017-06-20 17:05:53 -04:00
Nat Goodspeed a3066b7375 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2017-06-20 16:11:33 -04:00
andreykproductengine f8254a9d78 MAINT-7758 Fixed freeze on loading lsl scripts from unicode named windows folder. 2017-08-30 19:57:02 +03:00
Brad Payne (Vir Linden) b8e2c58cec no-op edit to force a rebuild 2017-05-24 13:08:12 +01:00
Brad Payne (Vir Linden) 9311cc89ea DRTVWR-434 - trivial code change to trigger TC rebuild, also slight improvement to a log message 2017-04-11 13:45:43 -04:00
Oz Linden 0a7fd3686a Look for logcontrol-dev.xml in the user settings directory 2017-02-27 09:52:50 -05:00
Nat Goodspeed 434f0e161a Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2017-02-03 09:54:52 -05:00
Nat Goodspeed 1df282efa1 DRTVWR-418: Fix streamtools test.
When std::istream::good() returns false, presumably we can no longer rely on
get() returning valid data. Certain streamtools tests were assuming that get()
would return the empty string at EOF, but in fact it appears that it left the
previous buffer contents unmodified.
2016-12-19 15:58:52 -05:00
Nat Goodspeed 704c53b3c5 MAINT-5232: Merge up to VLC viewer from viewer-release 2016-10-11 10:59:17 -04:00
Nat Goodspeed c92eb7e591 Automated merge with ssh://bitbucket.org/lindenlab/viewer-release 2016-08-30 11:36:06 -04:00
Nat Goodspeed 8854f5ca29 Automated merge with ssh://bitbucket.org/nat_linden/viewer-mac-mainloop 2016-07-01 14:11:45 -04:00
Nat Goodspeed 464a0df4c1 DRTVWR-418: Unify control flow through LLAppViewer across platforms.
The LLApp API used to consist of init(), mainLoop(), cleanup() methods. This
makes sense -- but on Mac that structure was being subverted. The method
called mainLoop() was in fact being called once per frame. There was
initialization code in the method, which (on Mac) needed to be skipped with an
already-initialized bool. There was a 'while' loop which (on Mac) needed to be
turned into an 'if' instead so the method would return after every frame.

Rename LLApp::mainLoop() to frame(). Propagate through subclasses LLAppViewer
and LLCrashLogger. Document the fact that frame() returns true to mean "done."
(This was always the case, but had to be inferred from the code.)

Rename the Mac Objective-C function mainLoop to oneFrame. Rename the C++ free
function it calls from runMainLoop() to pumpMainLoop(). Add comments to
llappdelegate-objc.mm explaining (inferred) control flow.

Change the Linux viewer main() and the Windows viewer WINMAIN() from a single
LLAppViewer::mainLoop() call to repeatedly call frame() until it returns true.

Move initialization code from the top of LLAppViewer::frame() to the init()
method, where it more properly belongs. Remove corresponding
mMainLoopInitialized flag (and all references) from LLAppViewer.

Remove 'while (! LLApp::isExiting())' (or on Mac, 'if (! LLApp::isExiting())')
from LLAppViewer::frame() -- thus unindenting the whole body of the 'while'
and causing many lines of apparent change. (Apologies to reviewers.)

There are four LLApp states: APP_STATUS_RUNNING, APP_STATUS_QUITTING,
APP_STATUS_STOPPED and APP_STATUS_ERROR. Change LLAppViewer::frame() return
value from (isExiting()) (QUITTING or ERROR) to (! isRunning()). I do not know
under what circumstances the state might transition to STOPPED during a
frame() call, but I'm quite sure that if it does, we don't want to call
frame() again. We only want a subsequent call if the state is RUNNING.

Also rename mainLoop() method in LLCrashLogger subclasses
LLCrashLoggerWindows, LLCrashLoggerMac, LLCrashLoggerLinux. Of course it's
completely up to the frame() method whether to yield control; none of those in
fact do. Honor protocol by returning true (frame() is done), even though each
one's main() caller ignores the return value.

In fact LLCrashLoggerWindows::mainLoop() wasn't using the return protocol
correctly anyway, returning wParam or 0 or 1 -- possibly because the return
protocol was never explicitly documented. It should always return true: "I'm
done, don't call me again."
2016-06-30 16:51:50 -04:00
callum_linden 9c4ed8d113 Automated merge with tip of viewer-release to pick up 4.0.5 2016-05-19 11:00:03 -07:00
callum_linden b50df60aa1 DRTVWR-418 remove vestiges of TCMALLOC and GooglePerfTools from the viewer 2016-04-21 16:13:39 -07:00
Oz Linden 9be58e915a merge with 4.0.3-release 2016-04-04 15:53:09 -04:00
Oz Linden 867ef882fd merge changes for OPEN-292 2016-02-07 13:41:41 -08:00
Cinder Biscuits cc235cdcc4 Merged lindenlab/viewer-tools-update into default 2015-11-29 20:14:22 -07:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Rider Linden 907efc9cc9 MAINT-5507: Remove llcurl, move constant values and untilities to llcorehttp lib 2015-09-15 17:01:26 -07:00
Rider Linden 196caf21a8 MAINT-5507: Removal of sdrpc client/server
MAINT-5507: removal of LLCurl::Easy, LLCurl::Multi LLCurl::Responder
2015-09-14 16:10:20 -07:00
Rider Linden 32912a3958 MAINT-5507: Test checkin with RPC code and URL request disabled. Make sure it does not break non windows builds. 2015-09-14 13:33:50 -07:00
Rider Linden 5753c274ba Adding boost libs to lltest 2015-08-17 11:37:47 -07:00
Rider Linden efbbbca9b0 Get unit tests (Integration and project) compiling and linking again. 2015-08-17 10:25:11 -07:00
Nat Goodspeed 4302637464 MAINT-5232: Make gMessageSystem an LLPounceable<LLMessageSystem*>.
This will permit other subsystems to use gMessageSystem.callWhenReady() to (e.g.)
register callbacks as soon as gMessageSystem is fully initialized.
2015-05-23 12:41:47 -04:00
Oz Linden 5c6cf3e7fb restore the ll[io]fstream because we need them as wrappers on Windows for wide char paths; on other platforms they are now just typedefs to the std classes 2015-04-10 11:02:37 -04:00
Oz Linden 8b42c7898e replace llifstream and llofstream with std::ifstream and std::ofstream respectively 2015-04-07 17:59:28 -04:00
Oz Linden 3a57b18896 convert llifstream and llofstream to std::ifstream and std::ofstream respectively 2015-04-07 17:28:05 -04:00
Cinder ca08bd5aba OPEN-292 - Remove lscript from project,
Remove legacy udp script upload methods,
Refactor script runtime perms from three arrays to one struct array so we don't have to juggle array order anymore.
2015-02-08 12:53:39 -07:00
Nat Goodspeed 834a1f6afe Re-enable skipped test: evidently Windows APR libs CAN transcode.
I don't know at what point the skip() was introduced, but that test now passes
even on Windows.
2015-01-23 11:51:01 -05:00
Nat Goodspeed 210c95b283 Remove Visual Studio workaround for lack of std::fpclassify().
Visual Studio 2013 evidently does provide std::fpclassify(), so we no longer
need the funky local alias.
2014-12-16 14:03:57 -05:00
Nat Goodspeed d74d8ff7c5 Replace boost::lambda::_1 with boost::phoenix::placeholders::arg1.
Apparently in Boost 1.57 with Xcode 6, the combination of Boost.Lambda and
Boost.Function is broken -- Trac ticket 10864:
https://svn.boost.org/trac/boost/ticket/10864
However, Boost.Phoenix provides an acceptable replacement.
2014-12-10 11:15:56 -08:00
Nat Goodspeed c54d102c8f Wrap #pragma clang in #if __clang__, else VS produces fatal warnings. 2014-12-05 08:48:10 -05:00
Nat Goodspeed 80fdd85a0c Suppress non-useful NaN test in llsd_new_tut.cpp 2014-10-24 11:55:37 -07:00