Age | Commit message (Collapse) | Author |
|
Backed out changeset: 4f3024e9d629
|
|
same tcmalloc options as the sl executable
|
|
Add unit tests to verify basic functionality.
|
|
|
|
|
|
|
|
|
|
|
|
Defend test against the ambiguous answer to that question by not recording, or
testing for, EOF history events.
Enrich output for history-verification failures: display whole history array.
|
|
|
|
Previous logic was vulnerable to the case in which both pipes reached EOF in
the same loop iteration. Now we use std::list instead of std::vector, allowing
us to iterate and delete with a single pass.
|
|
co-authored with Zi Ree
|
|
Otherwise the unreferenced declaration causes a fatal warning.
|
|
Quiet the temporary child_status_callback() output.
Add a bit of diagnostic info if apr_proc_wait() returns anything but
APR_CHILD_DONE.
|
|
At least on OS X 10.7, a call to apr_proc_wait(APR_NOWAIT) in fact seems to
block the caller. So instead of polling apr_proc_wait(), use APR callback
mechanism (apr_proc_other_child_register() et al.) and poll that using
apr_proc_other_child_refresh_all().
Evidently this polls the underlying system waitpid(), but the internal call
seems to better support nonblocking. On arrival in the
child_status_callback(APR_OC_REASON_DEATH) call, though, apr_proc_wait()
produces ECHILD: the child process in question has already been reaped.
The OS-encoded wait() status does get passed to the callback, but then we have
to use OS-dependent macros to tease apart voluntary termination vs. killed by
signal... a bit of a hole in APR's abstraction layer.
Wrap ensure_equals() calls with a macro to explain which comparison failed.
|
|
Fix EOL issues: "\r\n" vs. "\n".
On Windows, requesting a read in nonblocking mode can produce EAGAIN instead
of EWOULDBLOCK.
|
|
|
|
That is, where before we just flung stuff to stdout with the expectation that
a human user would verify, replace with assertions in the test code itself.
Quiet previous noise on stdout.
Introduce a temp script file that produces output on both stdout and stderr,
with sleep() calls so we predictably have to wait for it. Track and then
verify the history of our interaction with the child process, noting
especially EWOULDBLOCK attempts.
|
|
|
|
|
|
As always with llcommon, this is expressed as an "integration test" to
sidestep a circular dependency: the llcommon build depends on its unit tests,
but all our unit tests depend on llcommon.
Initial test code is more for human verification than automated verification:
does APR's child-process management in fact support nonblocking operations?
|
|
window and in scroll list widget in general.
- Added a customizable date format string to be used for scroll list cell of "date" type.
- The date localization does not change the value of a scroll list cell changing only its string representation.
- Added using localized week days and month names from strings.xml for all locales not only Ja and Pl as it was before.
- Changed the date format in Item Profile window (French locale) as noted in the issue description.
- For this fix the French locale still needs the localization of the following strings in strings.xml:
<string name="dateTimeWeekdaysNames">
<string name="dateTimeWeekdaysShortNames">
<string name="dateTimeMonthNames">
<string name="dateTimeMonthShortNames">
<string name="dateTimeDayFormat">
<string name="dateTimeAM">
<string name="dateTimePM">
|
|
|
|
SH-2738: Texture fetching freezes due to LLcurl
SH-2777: viewer crashed on logout in LLCurl::Easy::releaseEasyHandle
|
|
SH-2738: Texture fetching freezes due to LLcurl
SH-2777: viewer crashed on logout in LLCurl::Easy::releaseEasyHandle
|
|
|
|
comparison and formatting
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Per Monty's code review, it's dubious practice to have a class in which
certain members are sometimes visible, other times not. If these were virtual
methods, or non-static data members, the error would be obvious -- but even
with static data members and non-virtual methods, it looks like an ODR
violation. Extract conditional methods as free functions, as in changeset
07cd70e75473.
|
|
|
|
occlusion queries from previous frame are still pending and perform texture decode work.
|
|
Changeset 07cd70e75473 moved LLSD::outstandingCount() and allocationCount() to
free functions so we could turn their visibility on/off via LLSD_DEBUG_INFO.
But on some platforms, without proper LL_COMMON_API declarations visible when
we compile llsd.cpp, those free functions lack proper linkage directives.
Declare LLSD_DEBUG_INFO in llsd.cpp so that when the llcommon library is
built, the free functions get proper linkage -- independent of compilations of
LLSD consumers.
|
|
|
|
|
|
Free functions can be unconditionally compiled into the .o file, but
conditionally hidden in the header file. Static class methods don't have that
flexibility: without a declaration in the header file, you can't compile a
function definition in the .cpp file. That makes it awkward to use the same
llcommon build for production and for unit tests.
Why make the function declarations conditional at all? These are debugging
functions. They break the abstraction, they peek under the covers. Production
code should not use them. Making them conditional on an #ifdef symbol in the
unit-test source file means the compiler would reject any use by production
code. Put differently, it allows us to assert with confidence that only unit
tests do use them.
Put new free functions in (lowercase) llsd namespace so as not to clutter
global namespace.
Tweak the one known consumer (llsd_new_tut.cpp) accordingly.
|
|
|
|
|
|
|
|
|
|
https://bitbucket.org/VirLinden/viewer-development-shining-fixes
|
|
|
|
This establishes that there are no viewer-side unit tests relying on these
methods. The point is to try to clean up the LLSD public API. In the same
vein, remove from LLSD public API a diagnostic method which is nothing more
than an implementation detail for the corresponding LLSD::Impl method. The
same effect can be achieved by making LLSD::Impl a friend of LLSD, moving the
method with the messy signature (classic-C arrays!) into LLSD::Impl itself.
|
|
|
|
per Monty code review
|