On 07/05/2010 02:44 PM, Walter Bright wrote:
The failing unittests still exit with an errorlevel. The change was to
not exit immediately on the assert error, but to remember that it
failed, run all the unittests, then exit with errorlevel set to 1 if any
of them had failed.

I'm glad we see eye to eye on that! In fact there is a bug in your implementation of Linux - it doesn't do as you mention above. Look at this:

$ generated/posix/debug/unittest/std/xml
std.xml(379): unittest failure
$ echo $?
0
$ _

So something somewhere makes the program return success even though it fails.

I also find the ErrnoException saying "(No error)" is very strange.

errnoEnforce() enforces its argument and assumes that failure will set errno. Somewhere there's an errnoEnforce() against an exception that does NOT set errno.

BTW, the std.complex failures are possibly due to changes in toString().

I figured what's happening.

The problem stems again from the lack of a default constructor (or the inability to disable it effectively). Previously, Appender was passed around by reference, which made it possible for it itself to hold a null-initialized payload. But that was a hack - one should be able to pass it by value. Once I changed Appender to support pass-by-value, it started having that problem we discussed in conjunction with built-in hashtables: it has reference semantics if not null, and crappy semantics if null.


Andrei
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos

Reply via email to