[phobos] Silent failure of std.container unittests
Sean Kelly
sean at invisibleduck.org
Fri Jul 16 12:15:04 PDT 2010
I'd guess this code is pre- at disable. Not sure what the correct fix is for std.container though, since it seems reasonable for .tupleof to perform a copy.
On Jul 13, 2010, at 11:59 PM, Lars Tandle Kyllingstad wrote:
> Thanks, Sean, that was the clue I needed. I reran the unittests,
> compiling against an earlier version of druntime, and it turns out that
> the failing assert is in line 1255 of container.d. That's the postblit
> constructor of Array.Payload, which is defined simply as
>
> this(this)
> {
> assert(0);
> }
>
> So, firstly: Why is the constructor defined like this? If it is meant
> to disable copying of Array.Payload, isn't that what @disable is for?
>
> Moving on, I did try to @disable the postblit constructor in order to
> track down why it's called. Then the error changes to
>
> std/exception.d(407): Error: struct
> std.container.Array!(uint).Array.Payload is not copyable
> because it is annotated with @disable
>
> Line 407 of exception.d is inside pointsTo(), and contains
>
> foreach (i, subobj; source.tupleof)
>
> typeof(source) is Tuple!(Payload,"_backend",ulong,"_length"), and it
> would seem that taking .tupleof on this type attempts a copy of Payload.
>
> -Lars
>
>
>
> On Tue, 2010-07-13 at 07:23 -0700, Sean Kelly wrote:
>> If a unittest throws an exception the test is marked as failed and you'll see an errorlevel 1 after the tests complete. I didn't report the exception because unittest output is often parsed to accumulate results, but this could easily be changed.
>>
>> Sent from my iPhone
>>
>> On Jul 12, 2010, at 6:55 AM, Lars Tandle Kyllingstad <lars at kyllingen.net> wrote:
>>
>>> When running 'make unittest' on the latest revision of Phobos, it just
>>> fails on/after std.container, without any sensible error message:
>>>
>>> Testing generated/posix/debug/unittest/std/container
>>> make[1]: *** [generated/posix/debug/unittest/std/container] Error 1
>>> make: *** [unittest] Error 2
>>>
>>> Anyone else seeing this?
>>>
>>> -Lars
>>>
>>> _______________________________________________
>>> phobos mailing list
>>> phobos at puremagic.com
>>> http://lists.puremagic.com/mailman/listinfo/phobos
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos
More information about the phobos
mailing list