Test results for D on Android/ARM

Joakim via digitalmars-d-ldc digitalmars-d-ldc at puremagic.com
Mon Nov 2 08:27:56 PST 2015


On Monday, 2 November 2015 at 13:58:11 UTC, Nick Sabalausky wrote:
> Ran the full test suite, not all passed.
>
> Android: v4.1.2
> Device: SCH-I535 (Samsung Galaxy S3 Verizon)
> Chipset: Snapdragon S4 Plus
>
> It is rooted, FWIW.
> ****** FAIL std.mmfile
> std.file.FileException@/home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument
> ****** FAIL std.path
> std.file.FileException@/home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument
> ****** FAIL std.process
> std.file.FileException@/home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument
> 15.633s PASS std.datetime

Hmm, looks like core.sys.posix.unistd.getcwd on your device 
doesn't accept arguments of null and 0.  Since your Android 4.1, 
ie API level 16, device is the oldest tested so far, perhaps 
getcwd was implemented differently back then.  I'll look at the 
source for getcwd in bionic from that time and try putting in a 
workaround.

On Monday, 2 November 2015 at 14:35:18 UTC, Vladimir Panteleev 
wrote:
> On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:
>> For example, the Samsung Galaxy S6 uses the Exynos 7420:
>>
>> http://www.gsmarena.com/samsung_galaxy_s6-6849.php
>
> Note that some devices (e.g. the Samsung Galaxy Note series) 
> can use different chipsets depending on the exact model, even 
> though they are marketed under the same product name.

Yeah, I'm aware.  I wanted to see if chipsets make a difference, 
but so far there doesn't appear to be any effect from hardware or 
manufacturer, only the Android version.  I just read that google 
strongly recommends that manufacturers simply use AOSP for the 
native APIs, so perhaps only the Android API level matters most 
of the time.

> All tests pass except std.datetime, both APK and CLI.
>
> Seems to be failing on these lines:
>
>                     assert(to!string(ourTimeInfo.tm_zone) ==
>                                      
> to!string(osTimeInfo.tm_zone));

Yeah, it appears that that time zone string is being set wrongly 
only on your device.  I'm not that familiar with std.datetime: 
once I wrote some code to extract timezone data from the two 
different versions of Android's concatenated timezone file, 
everything just worked.  If you don't mind, I'll send you a small 
binary that'll produce log output that'll help track this issue 
down.


More information about the digitalmars-d-ldc mailing list