digitalmars.D.ldc - Test results for D on Android/ARM
- Joakim (47/47) Oct 31 2015 I've been running the druntime and phobos tests from the master
- Brad Anderson (7/11) Oct 31 2015 My LG G2 results here probably aren't as useful because it's for
- Joakim (16/32) Nov 02 2015 No, it's useful. I wondered if the std.stdio and std.socket
- rsw0x (137/138) Nov 01 2015 0.000s PASS release32 core.atomic
- rsw0x (3/6) Nov 01 2015 sigh, knew I forgot to paste something.
- John Colvin (3/8) Nov 01 2015 Android 5.1, Motorola, Snapdragon 400:
- Elie Morisse (7/11) Nov 01 2015 Android 5.1.1, nVidia Shield, Tegra K1: All tests pass, apk.
- Thomas Brix Larsen (3/4) Nov 02 2015 - Android 4.3, TomTom Bridge, Snapdragon 400: All tests pass,
- Radu (4/9) Nov 02 2015 Android 5.1.1, Samsung Galaxy S6 Edge (Exynos 7420), apk all
- Nick Sabalausky (153/153) Nov 02 2015 Ran the full test suite, not all passed.
- Joakim (22/46) Nov 02 2015 Hmm, looks like core.sys.posix.unistd.getcwd on your device
- Vladimir Panteleev (5/19) Nov 04 2015 Sure.
- Vladimir Panteleev (15/18) Nov 02 2015 Note that some devices (e.g. the Samsung Galaxy Note series) can
- =?UTF-8?B?VGjDqW8=?= Bueno (4/8) Nov 02 2015 Android 6.0, LG Nexus 5 (D821), Snapdragon 800: All test pass
- Joakim (23/62) Nov 04 2015 That's interesting that all the tests pass in the apk, but rsw0x
- TheFlyingFiddle (2/7) Nov 05 2015 It is an unrooted phone.
- Austin G (4/22) Nov 07 2015 Definitely hung, re-ran the test for each hung module to confirm
- Joakim (10/14) Nov 07 2015 Root is not necessary. Simply download the command-line test
- Adrian Matoga (4/17) Nov 03 2015 5.0.1, Samsung Galaxy S4 (I9505), Snapdragon 600
- Austin G (16/16) Nov 04 2015 LG G4
- TheFlyingFiddle (19/20) Nov 04 2015 Android 4.1.2, HTC 500
- Paulo Pinto (2/2) Nov 05 2015 Android 4.4 S4 Mini - All tests pass with the APK.
- Kapps (3/3) Nov 05 2015 Using the APK on a Note 4 with Snapdragon 805 running CyanogenMod
- Yazan D (141/141) Nov 06 2015 Tested on Samsung Galaxy Grand I9082, Android 4.2.2, Cortex A9 using the...
- Jakob Ovrum (182/187) Nov 06 2015 Android: 4.4.4
- Joakim (30/48) Nov 08 2015 They're both related to accessing files, whether a socket file or
- FilippoR (4/4) Nov 09 2015 Android 6.0
- Jakob Ovrum (26/39) Nov 11 2015 Running it as root in the home directory
- Joakim (20/63) Nov 17 2015 Unless you're running sshdroid as root, it should create a
- MrSmith (3/7) Nov 06 2015 Android 5.1.1, Nexus 7 (Asus), Snapdragon S4 Pro 8064: All tests
- Laeeth Isharc (142/142) Jan 04 2016 Huawei Watch rooted with custom OS (since it seemed easiest way
- Joakim (6/10) Jan 04 2016 Heh, I didn't think anyone would get it running on a wearable
- Laeeth Isharc (10/21) Jan 04 2016 That's v interesting if true, as I had thought it was crippled.
- Laeeth Isharc (3/14) Jan 04 2016 drop me an email if you have time - laeeth at
- Joakim (40/68) Jan 17 2016 I've released updated test runners on github:
- David Nadlinger via digitalmars-d-ldc (12/14) Jan 18 2016 I don't have much to contribute right now but thank you for keeping us
- Joakim (24/38) Jan 18 2016 Yes, I wanted to polish off some of these remaining rough edges
- Dan Olson (7/22) Jan 18 2016 I think David did mean that your Android changes might get messed up by
- Nick Sabalausky (143/149) Apr 21 2016 I retested. All tests now pass
- Nick Sabalausky (148/150) Apr 21 2016 Also tested on another device, NOT all passed:
- Joakim (10/26) Apr 22 2016 It appears that you are running the command-line binary as root
- blm768 (3/8) Jan 18 2016 Android 5.1, Motorola, Snapdragon 410: all tests pass using the
- dangbinghoo (194/199) Dec 07 2018 android 6.0 64bit snapdragon 625
- Joakim (15/20) Dec 07 2018 Thanks, but I'm not really looking for test results these days,
I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread: https://github.com/joakim-noah/android/releases/tag/runners Some output is expected and doesn't need to be reported, while any other deviations should be reported. Please report the Android version, found in Settings->About Device->Android Version; the manufacturer; the chipset, which can be found on device databases like gsmarena; and which runners you ran. If you google your device's name, usually the first link is the gsmarena entry. For example, the Samsung Galaxy S6 uses the Exynos 7420: http://www.gsmarena.com/samsung_galaxy_s6-6849.php I'm using this ldc forum for this device reporting because it doesn't require any registration, unlike the wiki or github. I'll collect all the results and put them on the wiki later. All source is available to build ldc and the test runner yourself, only missing the build script I used for the apk version of the test runner. I'll write up the build process on the wiki and push that last script into CMake next. Expected output: - Bionic didn't support hex format for floating point, either for literals or output, until Android 5.0. As a result, I skip such tests in std.conv and std.format if they fail. The command-line test runner will note that those tests were skipped on pre-5.0 Android: that's expected and only needs to be reported if it _doesn't_ happen on pre-5.0 Android. My results: - Android 5.1.1, Samsung, Exynos 5250: All tests pass, both command-line and apk. - Android 5.0.2, Samsung, Exynos 5420: Std.stdio and std.socket hang in both command-line and apk, all other tests pass. - Android 4.2.2, HTC, Tegra 3 AP37: All tests pass in the apk. The command-line runner keeps segfaulting consistently at the same spots, not sure why since the apk runs fine, could be some aggressive process killing since this device has only 1 GB of RAM. If I split up test.list to run only the druntime tests, the phobos tests before std.file, then the rest, ie three different runs, everything passes. - Android 4.4.4, Sony, Snapdragon 801: All tests pass, both command-line and apk. - Android 4.4.2, Samsung, Exynos 4412: All tests pass, both command-line and apk. - Android 5.0.2, Samsung, Snapdragon 410: Std.stdio and std.socket hang in both command-line and apk, all other tests pass.
Oct 31 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread:My LG G2 results here probably aren't as useful because it's for some random cyanogen nightly but here they are anyway: Android 5.0.2 (CyanogenMod 12-20150304-NIGHTLY), LG, Qualcomm MSM8974 Snapdragon 800: Std.stdio and std.socket hang in apk, all other tests pass. Very exciting stuff.
Oct 31 2015
Thanks for all the info everyone, keep it coming. On Sunday, 1 November 2015 at 06:33:46 UTC, Brad Anderson wrote:My LG G2 results here probably aren't as useful because it's for some random cyanogen nightly but here they are anyway: Android 5.0.2 (CyanogenMod 12-20150304-NIGHTLY), LG, Qualcomm MSM8974 Snapdragon 800: Std.stdio and std.socket hang in apk, all other tests pass. Very exciting stuff.No, it's useful. I wondered if the std.stdio and std.socket hangs might be Samsung-specific, as I only tested their 5.0 devices, but your and others' consistent reproductions show that they hit all 5.0 devices exclusively. I'll look into the reasons. On Sunday, 1 November 2015 at 10:15:18 UTC, rsw0x wrote:On Sunday, 1 November 2015 at 10:08:56 UTC, rsw0x wrote:No problem, the Nexus 5 was only ever equipped with that chip, so I could have figured it out. :) You're probably the first person to ever run D code on an Android 6.0 device, good to see that there's only one issue. On Monday, 2 November 2015 at 08:52:44 UTC, Thomas Brix Larsen wrote:On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:sigh, knew I forgot to paste something. chipset is a snapdragon 800....original Nexus 5(LG-D820,) Android Marshmallow(6.0)On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:Never heard of this device, and I consider myself a bit of a mobile buff. I just had to look it up, a GPS tablet for businesses....- Android 4.3, TomTom Bridge, Snapdragon 400: All tests pass, both command-line and apk.
Nov 02 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:...0.000s PASS release32 core.atomic 0.024s PASS release32 core.bitop 0.000s PASS release32 core.checkedint 0.005s PASS release32 core.memory 0.000s PASS release32 core.exception 0.000s PASS release32 core.math 0.008s PASS release32 core.demangle 0.176s PASS release32 core.time 0.185s PASS release32 core.thread 0.000s PASS release32 core.internal.convert 0.000s PASS release32 core.internal.hash 0.000s PASS release32 core.sync.config 0.008s PASS release32 core.sync.mutex 0.023s PASS release32 core.sync.condition 0.001s PASS release32 core.sync.barrier 0.018s PASS release32 core.sync.rwmutex 0.000s PASS release32 core.sys.posix.sys.select 0.001s PASS release32 object 0.000s PASS release32 rt.aaA 0.000s PASS release32 rt.arraybyte 0.000s PASS release32 rt.arrayassign 0.000s PASS release32 rt.cover 0.000s PASS release32 rt.arraycast 0.000s PASS release32 rt.minfo 0.001s PASS release32 rt.arraydouble 0.000s PASS release32 rt.qsort 0.000s PASS release32 rt.typeinfo.ti_Aint 0.000s PASS release32 rt.adi 0.008s PASS release32 rt.lifetime 0.000s PASS release32 rt.monitor_ 0.000s PASS release32 rt.arrayreal 0.000s PASS release32 rt.arrayfloat 0.000s PASS release32 rt.util.string 0.000s PASS release32 rt.util.utf 0.000s PASS release32 rt.util.hash 0.088s PASS release32 rt.util.container.treap 0.000s PASS release32 rt.util.container.hashtab 0.000s PASS release32 rt.util.container.array 0.000s PASS release32 rt.util.typeinfo 0.000s PASS release32 rt.arrayshort 0.000s PASS release32 rt.aApply 0.000s PASS release32 rt.switch_ 0.001s PASS release32 rt.arrayint 0.000s PASS release32 rt.aApplyR 0.000s PASS release32 gc.config 0.000s PASS release32 gc.gc 0.000s PASS release32 gc.bits 0.000s PASS release32 gc.pooltable 0.000s PASS release32 std.typetuple 0.015s PASS release32 std.format 0.029s PASS release32 std.conv 7.895s PASS release32 std.random 0.222s PASS release32 std.uni 0.005s PASS release32 std.encoding 0.004s PASS release32 std.zip 0.029s PASS release32 std.variant 0.003s PASS release32 std.mmfile 0.016s PASS release32 std.path 1.359s PASS release32 std.process 6.085s PASS release32 std.datetime 0.000s PASS release32 std.cstream 0.000s PASS release32 std.meta No service for epmap. 3.128s PASS release32 std.socket 0.000s PASS release32 std.signals 0.000s PASS release32 std.typelist 0.000s PASS release32 std.outbuffer 0.023s PASS release32 std.stdio 0.001s PASS release32 std.csv 0.001s PASS release32 std.xml 0.000s PASS release32 std.mathspecial 0.002s PASS release32 std.exception 0.001s PASS release32 std.math 0.007s PASS release32 std.uuid 0.064s PASS release32 std.string 0.000s PASS release32 std.traits 0.001s PASS release32 std.ascii 0.000s PASS release32 std.complex 0.001s PASS release32 std.functional 0.003s PASS release32 std.typecons 0.003s PASS release32 std.getopt 0.005s PASS release32 std.utf 0.559s PASS release32 std.uri 0.007s PASS release32 std.stream 0.013s PASS release32 std.concurrency 0.007s PASS release32 std.bitmanip 0.020s PASS release32 std.array 0.006s PASS release32 std.bigint 0.000s PASS release32 std.base64 0.053s PASS release32 std.zlib 2.291s PASS release32 std.parallelism 0.001s PASS release32 std.json 0.001s PASS release32 std.numeric ****** FAIL release32 std.file core.exception.AssertError /home/-/ldc/runtime/phobos/std/file.d(1348): Assertion failure 0.027s PASS release32 std.algorithm.searching 0.016s PASS release32 std.algorithm.setops 0.018s PASS release32 std.algorithm.mutation 0.010s PASS release32 std.algorithm.sorting 0.002s PASS release32 std.algorithm.comparison 0.012s PASS release32 std.algorithm.iteration 0.000s PASS release32 std.container 0.002s PASS release32 std.container.util 0.000s PASS release32 std.container.binaryheap 0.023s PASS release32 std.container.rbtree 0.001s PASS release32 std.container.array 0.000s PASS release32 std.container.slist 0.000s PASS release32 std.container.dlist 0.052s PASS release32 std.digest.md 0.030s PASS release32 std.digest.crc 0.063s PASS release32 std.digest.ripemd 0.831s PASS release32 std.digest.sha 0.070s PASS release32 std.digest.digest 0.000s PASS release32 std.experimental.logger.nulllogger 0.183s PASS release32 std.experimental.logger.core 0.000s PASS release32 std.experimental.logger.filelogger 0.000s PASS release32 std.experimental.logger.multilogger 0.001s PASS release32 std.net.curl 0.017s PASS release32 std.net.isemail 0.013s PASS release32 std.range 0.004s PASS release32 std.range.primitives 0.000s PASS release32 std.range.interfaces 0.010s PASS release32 std.regex 0.000s PASS release32 std.regex.internal.ir 0.000s PASS release32 std.regex.internal.backtracking 0.006s PASS release32 std.regex.internal.generator 0.002s PASS release32 std.regex.internal.parser 0.333s PASS release32 std.regex.internal.tests 0.000s PASS release32 std.regex.internal.kickstart 0.000s PASS release32 std.internal.cstring 0.000s PASS release32 std.internal.scopebuffer 0.000s PASS release32 std.internal.math.biguintcore 0.000s PASS release32 std.internal.math.biguintnoasm 0.000s PASS release32 std.internal.math.errorfunction 0.000s PASS release32 std.internal.math.gammafunction original Nexus 5(LG-D820,) Android Marshmallow(6.0)
Nov 01 2015
On Sunday, 1 November 2015 at 10:08:56 UTC, rsw0x wrote:On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:sigh, knew I forgot to paste something. chipset is a snapdragon 800....original Nexus 5(LG-D820,) Android Marshmallow(6.0)
Nov 01 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread: [...]Android 5.1, Motorola, Snapdragon 400: All tests pass with both command-line and apk
Nov 01 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread:Android 5.1.1, nVidia Shield, Tegra K1: All tests pass, apk. Android 5.0, LG G3, Snapdragon 801: Apk and command-line hang, one time after core.time, and the other times after std.meta. After deletion of std.socket it hanged at std.stdio, and once these two were removed all other tests pass.
Nov 01 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:...- Android 4.3, TomTom Bridge, Snapdragon 400: All tests pass, both command-line and apk.
Nov 02 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread: [...]Android 5.1.1, Samsung Galaxy S6 Edge (Exynos 7420), apk all tests pass. Awesome job!
Nov 02 2015
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. =================== 0.001s PASS core.atomic 0.090s PASS core.bitop 0.000s PASS core.checkedint 0.009s PASS core.memory 0.000s PASS core.exception 0.000s PASS core.math 0.003s PASS core.demangle 0.734s PASS core.time 0.636s PASS core.thread 0.000s PASS core.internal.convert 0.018s PASS core.internal.hash 0.000s PASS core.sync.config 0.011s PASS core.sync.mutex 0.022s PASS core.sync.condition 0.002s PASS core.sync.barrier 0.013s PASS core.sync.rwmutex 0.000s PASS core.sys.posix.sys.select 0.306s PASS object 0.000s PASS rt.aaA 0.001s PASS rt.arraybyte 0.000s PASS rt.arrayassign 0.000s PASS rt.cover 0.000s PASS rt.arraycast 0.000s PASS rt.minfo 0.003s PASS rt.arraydouble 0.000s PASS rt.qsort 0.000s PASS rt.typeinfo.ti_Aint 0.003s PASS rt.adi 0.035s PASS rt.lifetime 0.000s PASS rt.monitor_ 0.000s PASS rt.arrayreal 0.001s PASS rt.arrayfloat 0.000s PASS rt.util.string 0.009s PASS rt.util.utf 0.000s PASS rt.util.hash 0.299s PASS rt.util.container.treap 0.000s PASS rt.util.container.hashtab 0.000s PASS rt.util.container.array 0.000s PASS rt.util.typeinfo 0.001s PASS rt.arrayshort 0.000s PASS rt.aApply 0.000s PASS rt.switch_ 0.004s PASS rt.arrayint 0.000s PASS rt.aApplyR 0.000s PASS gc.config 0.000s PASS gc.gc 0.000s PASS gc.bits 0.000s PASS gc.pooltable 0.000s PASS std.typetuple 0.057s PASS std.format 0.349s PASS std.conv 39.613s PASS std.random 0.697s PASS std.uni 0.018s PASS std.encoding 0.030s PASS std.zip 0.043s PASS std.variant ****** 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 ****** FAIL std.cstream std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.002s PASS std.meta ****** FAIL std.socket std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.000s PASS std.signals 0.000s PASS std.typelist 0.000s PASS std.outbuffer ****** FAIL std.stdio std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.017s PASS std.csv 0.011s PASS std.xml 0.003s PASS std.mathspecial 0.014s PASS std.exception 0.005s PASS std.math 0.049s PASS std.uuid 0.155s PASS std.string 0.002s PASS std.traits 0.003s PASS std.ascii 0.000s PASS std.complex 0.004s PASS std.functional 0.015s PASS std.typecons 0.006s PASS std.getopt 0.032s PASS std.utf 1.287s PASS std.uri ****** FAIL std.stream std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.023s PASS std.concurrency 0.010s PASS std.bitmanip 0.046s PASS std.array 0.017s PASS std.bigint ****** FAIL std.base64 std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.116s PASS std.zlib ****** FAIL std.parallelism std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.004s PASS std.json 0.003s PASS std.numeric ****** FAIL std.file std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.057s PASS std.algorithm.searching 0.016s PASS std.algorithm.setops 0.004s PASS std.algorithm.mutation 0.022s PASS std.algorithm.sorting 0.004s PASS std.algorithm.comparison 0.025s PASS std.algorithm.iteration 0.000s PASS std.container 0.034s PASS std.container.util 0.000s PASS std.container.binaryheap 0.059s PASS std.container.rbtree 0.004s PASS std.container.array 0.000s PASS std.container.slist 0.000s PASS std.container.dlist 0.117s PASS std.digest.md 0.048s PASS std.digest.crc 0.137s PASS std.digest.ripemd 2.660s PASS std.digest.sha 0.211s PASS std.digest.digest 0.000s PASS std.experimental.logger.nulllogger ****** FAIL std.experimental.logger.core std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument ****** FAIL std.experimental.logger.filelogger std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument ****** FAIL std.experimental.logger.multilogger std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.013s PASS std.net.curl 0.043s PASS std.net.isemail ****** FAIL std.range std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument 0.013s PASS std.range.primitives 0.000s PASS std.range.interfaces 0.031s PASS std.regex 0.000s PASS std.regex.internal.ir 0.000s PASS std.regex.internal.backtracking 0.033s PASS std.regex.internal.generator 0.006s PASS std.regex.internal.parser 0.816s PASS std.regex.internal.tests 0.003s PASS std.regex.internal.kickstart 0.000s PASS std.internal.cstring 0.007s PASS std.internal.scopebuffer 0.000s PASS std.internal.math.biguintcore 0.000s PASS std.internal.math.biguintnoasm 0.000s PASS std.internal.math.errorfunction 0.001s PASS std.internal.math.gammafunction
Nov 02 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.datetimeHmm, 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: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.For example, the Samsung Galaxy S6 uses the Exynos 7420: http://www.gsmarena.com/samsung_galaxy_s6-6849.phpNote 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.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.
Nov 02 2015
On Monday, 2 November 2015 at 16:27:57 UTC, Joakim wrote:Sure. How do I see the timezone string that's been set on my device? Maybe this is why my phone is showing the wrong time when roaming :)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.
Nov 04 2015
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.phpNote 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.My results:Android 4.4.4, Samsung Galaxy Note 4 (SM-N910H), Exynos Octa 5433 1.90GHz, rooted: 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)); Logs: http://dump.thecybershadow.net/f2f82fd45920cd5adf9e7ae047823447/test-apk.log http://dump.thecybershadow.net/21c26788fcee4cc9d1d6c37eadd5a0ea/test-cli.log (the latter seems to have some additional debug output)
Nov 02 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread:Android 6.0, LG Nexus 5 (D821), Snapdragon 800: All test pass (apk) http://pastebin.com/W6BhWzMM
Nov 02 2015
On Monday, 2 November 2015 at 21:13:19 UTC, Théo Bueno wrote:Android 6.0, LG Nexus 5 (D821), Snapdragon 800: All test pass (apk) http://pastebin.com/W6BhWzMMThat's interesting that all the tests pass in the apk, but rsw0x had one test fail on the command-line on the same device. Usually it's the other way around, the apk is more restrictive. On Wednesday, 4 November 2015 at 17:51:29 UTC, Austin G wrote:LG G4 Android 5.1 Snapdragon 808 Hung on: core.thread std.parallelism std.container.rbtree std.experimental.logger.core std.net.isemail std.range.primitves std.regex std.regex.internal.thompson std.regex.internal.parser std.regex.internal.tests std.regex.internal.kickstart All other tests passed.That's strange, others have reported no problems with Android 5.1. Did all these tests hang or simply fail? When I say hang, I mean the test runner keeps running but nothing happens, so you have to close or kill it. Whereas if a test asserts, it'll just say that module failed and move on to the next one. Could be some issue related to threading, given that core.thread is the only druntime module on your list. The only other cause I can think of is that yours is one of the few ARMv8 chips tested so far, but the others haven't had this problem. Can you try running the other test runner, the command-line binary if you tried the apk so far, and see if you can reproduce or get some error output? Thanks for any feedback. On Wednesday, 4 November 2015 at 23:38:56 UTC, TheFlyingFiddle wrote:On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:Thanks, this confirms the getcwd issue Nick reported above, on what is presumably an unrooted phone. I'll try adding a workaround for this and let you two know once I make available an updated test runner.Android 4.1.2, HTC 500 The following modules fail: std.mmfile std.path std.process std.cstream std.socket std.stdio std.stream std.base64 std.parallelism std.file std.experimental.logger.core std.experimental.logger.filelogger std.experimental.logger.multilogger std.range All modules fail with the same error: std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument
Nov 04 2015
On Thursday, 5 November 2015 at 05:29:00 UTC, Joakim wrote:On Monday, 2 November 2015 at 21:13:19 UTC, Théo Bueno wrote: Thanks, this confirms the getcwd issue Nick reported above, on what is presumably an unrooted phone. I'll try adding a workaround for this and let you two know once I make available an updated test runner.It is an unrooted phone.
Nov 05 2015
On Thursday, 5 November 2015 at 05:29:00 UTC, Joakim wrote:On Wednesday, 4 November 2015 at 17:51:29 UTC, Austin G wrote:Definitely hung, re-ran the test for each hung module to confirm it was actually hanging. I will re-run with the command line binary as soon as I can get Android to cooperate (not rooted).LG G4 Android 5.1 Snapdragon 808 [snip]That's strange, others have reported no problems with Android 5.1. Did all these tests hang or simply fail? When I say hang, I mean the test runner keeps running but nothing happens, so you have to close or kill it. Whereas if a test asserts, it'll just say that module failed and move on to the next one. Could be some issue related to threading, given that core.thread is the only druntime module on your list. The only other cause I can think of is that yours is one of the few ARMv8 chips tested so far, but the others haven't had this problem. Can you try running the other test runner, the command-line binary if you tried the apk so far, and see if you can reproduce or get some error output? Thanks for any feedback.
Nov 07 2015
On Saturday, 7 November 2015 at 18:04:09 UTC, Austin G wrote:Definitely hung, re-ran the test for each hung module to confirm it was actually hanging. I will re-run with the command line binary as soon as I can get Android to cooperate (not rooted).Root is not necessary. Simply download the command-line test runner to your device, install a terminal app, type 'cd' at the command-line to go to the terminal app's local folder, then copy the test-runner and test.list to that local folder. You should be able to run it there, as apps can run executables from their local folder. Alternately, you can install an SSH server app, as discussed on the wiki: http://wiki.dlang.org/Build_LDC_for_Android#Run_the_druntime_and_phobos_unit_tests
Nov 07 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread: https://github.com/joakim-noah/android/releases/tag/runners Some output is expected and doesn't need to be reported, while any other deviations should be reported. Please report the Android version, found in Settings->About Device->Android Version; the manufacturer; the chipset, which can be found on device databases like gsmarena; and which runners you ran. If you google your device's name, usually the first link is the gsmarena entry. For example, the Samsung Galaxy S6 uses the Exynos 7420:5.0.1, Samsung Galaxy S4 (I9505), Snapdragon 600 Tested with apk: std.socket and std.stdio seem to hang, after removing them all tests pass.
Nov 03 2015
LG G4 Android 5.1 Snapdragon 808 Hung on: core.thread std.parallelism std.container.rbtree std.experimental.logger.core std.net.isemail std.range.primitves std.regex std.regex.internal.thompson std.regex.internal.parser std.regex.internal.tests std.regex.internal.kickstart All other tests passed.
Nov 04 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:Android 4.1.2, HTC 500 The following modules fail: std.mmfile std.path std.process std.cstream std.socket std.stdio std.stream std.base64 std.parallelism std.file std.experimental.logger.core std.experimental.logger.filelogger std.experimental.logger.multilogger std.range All modules fail with the same error: std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1802): cannot get cwd: Invalid argument
Nov 04 2015
Android 4.4 S4 Mini - All tests pass with the APK. Android 4.3 S3 - All tests pass with the APK
Nov 05 2015
Using the APK on a Note 4 with Snapdragon 805 running CyanogenMod 12 Nightly (5.1.1, build 20151015), all tests passed(!) and nothing hung. Awesome to see this.
Nov 05 2015
Tested on Samsung Galaxy Grand I9082, Android 4.2.2, Cortex A9 using the APK. All tests pass except for one in std.datetime due to a wrong test with my timezone (https://issues.dlang.org/show_bug.cgi?id=9488) (happens on desktop too). Great work! 0.000s PASS core.atomic 0.031s PASS core.bitop 0.000s PASS core.checkedint 0.005s PASS core.memory 0.000s PASS core.exception 0.000s PASS core.math 0.015s PASS core.demangle 0.521s PASS core.time 0.289s PASS core.thread 0.000s PASS core.internal.convert 0.000s PASS core.internal.hash 0.000s PASS core.sync.config 0.003s PASS core.sync.mutex 0.026s PASS core.sync.condition 0.014s PASS core.sync.barrier 0.008s PASS core.sync.rwmutex 0.000s PASS core.sys.posix.sys.select 0.001s PASS object 0.000s PASS rt.aaA 0.000s PASS rt.arraybyte 0.000s PASS rt.arrayassign 0.000s PASS rt.cover 0.000s PASS rt.arraycast 0.000s PASS rt.minfo 0.001s PASS rt.arraydouble 0.000s PASS rt.qsort 0.000s PASS rt.typeinfo.ti_Aint 0.000s PASS rt.adi 0.018s PASS rt.lifetime 0.000s PASS rt.monitor_ 0.000s PASS rt.arrayreal 0.000s PASS rt.arrayfloat 0.000s PASS rt.util.string 0.001s PASS rt.util.utf 0.000s PASS rt.util.hash 0.179s PASS rt.util.container.treap 0.000s PASS rt.util.container.hashtab 0.000s PASS rt.util.container.array 0.000s PASS rt.util.typeinfo 0.000s PASS rt.arrayshort 0.000s PASS rt.aApply 0.000s PASS rt.switch_ 0.002s PASS rt.arrayint 0.000s PASS rt.aApplyR 0.000s PASS gc.config 0.000s PASS gc.gc 0.000s PASS gc.bits 0.000s PASS gc.pooltable 0.000s PASS std.typetuple 0.028s PASS std.format 0.066s PASS std.conv 16.738s PASS std.random 0.424s PASS std.uni 0.008s PASS std.encoding 0.008s PASS std.zip 0.029s PASS std.variant 0.004s PASS std.mmfile 0.029s PASS std.path 1.555s PASS std.process ****** FAIL std.datetime core.exception.AssertError /home/bert/ldc/runtime/phobos/std/datetime.d (1457): [1999-Jul-31 01:00:00] [1999-Jul-31 00:00:00] 0.000s PASS std.cstream 0.001s PASS std.meta 4.757s PASS std.socket 0.000s PASS std.signals 0.000s PASS std.typelist 0.001s PASS std.outbuffer 0.502s PASS std.stdio 0.002s PASS std.csv 0.003s PASS std.xml 0.000s PASS std.mathspecial 0.005s PASS std.exception 0.002s PASS std.math 0.023s PASS std.uuid 0.104s PASS std.string 0.001s PASS std.traits 0.002s PASS std.ascii 0.000s PASS std.complex 0.004s PASS std.functional 0.011s PASS std.typecons 0.004s PASS std.getopt 0.014s PASS std.utf 0.912s PASS std.uri 0.021s PASS std.stream 0.036s PASS std.concurrency 0.009s PASS std.bitmanip 0.039s PASS std.array 0.019s PASS std.bigint 0.001s PASS std.base64 0.094s PASS std.zlib 4.073s PASS std.parallelism 0.001s PASS std.json 0.002s PASS std.numeric 0.117s PASS std.file 0.042s PASS std.algorithm.searching 0.017s PASS std.algorithm.setops 0.009s PASS std.algorithm.mutation 0.059s PASS std.algorithm.sorting 0.003s PASS std.algorithm.comparison 0.013s PASS std.algorithm.iteration 0.000s PASS std.container 0.005s PASS std.container.util 0.000s PASS std.container.binaryheap 0.032s PASS std.container.rbtree 0.003s PASS std.container.array 0.000s PASS std.container.slist 0.000s PASS std.container.dlist 0.079s PASS std.digest.md 0.034s PASS std.digest.crc 0.118s PASS std.digest.ripemd 1.190s PASS std.digest.sha 0.155s PASS std.digest.digest 0.000s PASS std.experimental.logger.nulllogger 0.318s PASS std.experimental.logger.core 0.001s PASS std.experimental.logger.filelogger 0.000s PASS std.experimental.logger.multilogger 0.007s PASS std.net.curl 0.028s PASS std.net.isemail 0.017s PASS std.range 0.009s PASS std.range.primitives 0.000s PASS std.range.interfaces 0.015s PASS std.regex 0.000s PASS std.regex.internal.ir 0.000s PASS std.regex.internal.backtracking 0.013s PASS std.regex.internal.generator 0.004s PASS std.regex.internal.parser 0.578s PASS std.regex.internal.tests 0.001s PASS std.regex.internal.kickstart 0.000s PASS std.internal.cstring 0.000s PASS std.internal.scopebuffer 0.000s PASS std.internal.math.biguintcore 0.000s PASS std.internal.math.biguintnoasm 0.000s PASS std.internal.math.errorfunction 0.000s PASS std.internal.math.gammafunction
Nov 06 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread: https://github.com/joakim-noah/android/releases/tag/runnersAndroid: 4.4.4 Cyanogenmod: 11-20141115-UNOFFICIAL-M12-ace Model: HTC Desire HD (aka Ace) Chipset: Qualcomm MSM8255 Snapdragon S2 Rooted. With the APK everything passes, but from the command line (as root with SSHDroid) I get: 0.106s PASS release32 core.atomic 0.086s PASS release32 core.bitop 0.000s PASS release32 core.checkedint 0.006s PASS release32 core.memory 0.000s PASS release32 core.exception 0.000s PASS release32 core.math 0.012s PASS release32 core.demangle 1.348s PASS release32 core.time 0.640s PASS release32 core.thread 0.000s PASS release32 core.internal.convert 0.000s PASS release32 core.internal.hash 0.000s PASS release32 core.sync.config 0.008s PASS release32 core.sync.mutex 0.027s PASS release32 core.sync.condition 0.018s PASS release32 core.sync.barrier 0.058s PASS release32 core.sync.rwmutex 0.000s PASS release32 core.sys.posix.sys.select 0.043s PASS release32 object 0.000s PASS release32 rt.aaA 0.000s PASS release32 rt.arraybyte 0.000s PASS release32 rt.arrayassign 0.000s PASS release32 rt.cover 0.000s PASS release32 rt.arraycast 0.000s PASS release32 rt.minfo 0.008s PASS release32 rt.arraydouble 0.000s PASS release32 rt.qsort 0.000s PASS release32 rt.typeinfo.ti_Aint 0.000s PASS release32 rt.adi 0.139s PASS release32 rt.lifetime 0.000s PASS release32 rt.monitor_ 0.000s PASS release32 rt.arrayreal 0.001s PASS release32 rt.arrayfloat 0.000s PASS release32 rt.util.string 0.000s PASS release32 rt.util.utf 0.000s PASS release32 rt.util.hash 0.478s PASS release32 rt.util.container.treap 0.000s PASS release32 rt.util.container.hashtab 0.000s PASS release32 rt.util.container.array 0.000s PASS release32 rt.util.typeinfo 0.006s PASS release32 rt.arrayshort 0.000s PASS release32 rt.aApply 0.000s PASS release32 rt.switch_ 0.003s PASS release32 rt.arrayint 0.000s PASS release32 rt.aApplyR 0.000s PASS release32 gc.config 0.000s PASS release32 gc.gc 0.000s PASS release32 gc.bits 0.000s PASS release32 gc.pooltable 0.000s PASS release32 std.typetuple lower-case nan not supported, trying NaN lower-case nan not supported, trying NaN lower-case nan not supported, trying NaN 0.840s PASS release32 std.format --- std.conv(2891) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(2899) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(2907) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(2915) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(2923) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(2931) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(2936) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(2941) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(3002) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) --- std.conv(3003) test fails if Android earlier than 5.0 --- (core.exception.AssertError /home/bert/ldc/runtime/phobos/std/conv.d(2870): Assertion failure) 0.451s PASS release32 std.conv 52.151s PASS release32 std.random 1.572s PASS release32 std.uni 0.034s PASS release32 std.encoding 0.181s PASS release32 std.zip 0.073s PASS release32 std.variant 0.080s PASS release32 std.mmfile 0.106s PASS release32 std.path 4.579s PASS release32 std.process 32.452s PASS release32 std.datetime 0.204s PASS release32 std.cstream 0.002s PASS release32 std.meta No service for epmap. ****** FAIL release32 std.socket std.socket.SocketOSException /home/bert/ldc/runtime/phobos/std/socket.d(2783): Unable to bind socket: Operation not permitted 0.000s PASS release32 std.signals 0.000s PASS release32 std.typelist 0.000s PASS release32 std.outbuffer 1.746s PASS release32 std.stdio 0.198s PASS release32 std.csv 0.002s PASS release32 std.xml 0.065s PASS release32 std.mathspecial 0.115s PASS release32 std.exception 0.002s PASS release32 std.math 0.281s PASS release32 std.uuid 0.288s PASS release32 std.string 0.079s PASS release32 std.traits 0.011s PASS release32 std.ascii 0.004s PASS release32 std.complex 0.045s PASS release32 std.functional 0.127s PASS release32 std.typecons 0.003s PASS release32 std.getopt 0.020s PASS release32 std.utf 4.353s PASS release32 std.uri 0.178s PASS release32 std.stream 0.187s PASS release32 std.concurrency 0.061s PASS release32 std.bitmanip 0.505s PASS release32 std.array 0.199s PASS release32 std.bigint 0.147s PASS release32 std.base64 0.420s PASS release32 std.zlib 10.160s PASS release32 std.parallelism 0.291s PASS release32 std.json 0.001s PASS release32 std.numeric ****** FAIL release32 std.file std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1091): /storage/sdcard0/Download/deleteme.dmd.unittest.pid5691_slink 0.392s PASS release32 std.algorithm.searching 0.033s PASS release32 std.algorithm.setops 0.144s PASS release32 std.algorithm.mutation 0.336s PASS release32 std.algorithm.sorting 0.254s PASS release32 std.algorithm.comparison 0.005s PASS release32 std.algorithm.iteration 0.000s PASS release32 std.container 0.034s PASS release32 std.container.util 0.000s PASS release32 std.container.binaryheap 0.097s PASS release32 std.container.rbtree 0.100s PASS release32 std.container.array 0.000s PASS release32 std.container.slist 0.000s PASS release32 std.container.dlist 0.285s PASS release32 std.digest.md 0.086s PASS release32 std.digest.crc 0.315s PASS release32 std.digest.ripemd 5.517s PASS release32 std.digest.sha 1.078s PASS release32 std.digest.digest 0.000s PASS release32 std.experimental.logger.nulllogger 1.244s PASS release32 std.experimental.logger.core 0.057s PASS release32 std.experimental.logger.filelogger 0.029s PASS release32 std.experimental.logger.multilogger 0.013s PASS release32 std.net.curl 0.484s PASS release32 std.net.isemail 0.077s PASS release32 std.range 0.020s PASS release32 std.range.primitives 0.200s PASS release32 std.range.interfaces 0.072s PASS release32 std.regex 0.000s PASS release32 std.regex.internal.ir 0.000s PASS release32 std.regex.internal.backtracking 0.062s PASS release32 std.regex.internal.generator 0.030s PASS release32 std.regex.internal.parser 1.554s PASS release32 std.regex.internal.tests 0.002s PASS release32 std.regex.internal.kickstart 0.019s PASS release32 std.internal.cstring 0.000s PASS release32 std.internal.scopebuffer 0.001s PASS release32 std.internal.math.biguintcore 0.000s PASS release32 std.internal.math.biguintnoasm 0.000s PASS release32 std.internal.math.errorfunction 0.032s PASS release32 std.internal.math.gammafunction [1] + Segmentation fault ./test-runner There was a significant delay between the pass for std.internal.math.gammafunction and the segfault. How would I go about getting gdb on the device (or is there a different command line debugger I can use)?
Nov 06 2015
On Friday, 6 November 2015 at 19:23:17 UTC, Jakob Ovrum wrote:Android: 4.4.4 Cyanogenmod: 11-20141115-UNOFFICIAL-M12-ace Model: HTC Desire HD (aka Ace) Chipset: Qualcomm MSM8255 Snapdragon S2 Rooted. With the APK everything passes, but from the command line (as root with SSHDroid) I get: No service for epmap. ****** FAIL release32 std.socket std.socket.SocketOSException /home/bert/ldc/runtime/phobos/std/socket.d(2783): Unable to bind socket: Operation not permitted ****** FAIL release32 std.file std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(1091): /storage/sdcard0/Download/deleteme.dmd.unittest.pid5691_slinkThey're both related to accessing files, whether a socket file or a symbolic link. Given that they pass from the apk, my guess is that this is related to user/file permissions because you're running as root from the Download directory. Can you try running as a normal user in the local folder for SSHDroid, as described here? http://wiki.dlang.org/Build_LDC_for_Android#Run_the_druntime_and_phobos_unit_tests0.032s PASS release32 std.internal.math.gammafunction [1] + Segmentation fault ./test-runner There was a significant delay between the pass for std.internal.math.gammafunction and the segfault. How would I go about getting gdb on the device (or is there a different command line debugger I can use)?With some builds, I used to get an issue with core.thread interacting with the static destructor for std.parallelism, which would cause a segfault on exit. This could be that issue. As for debugging, the NDK comes with an ARM gdb server, found in prebuilt/android-arm/gdbserver/gdbserver, which you can use with their gdb to remotely debug Android apps. Simply copy the ARM gdbserver to the same directory as the command-line test runner on your Android device, then run this command: ./gdbserver :1234 ./test-runner On your development host with the NDK, run this command, where $NDK is the path to your NDK, 1234 is the random port at which the gdb server is listening, and 192.168.35.7 is the IP of your Android device: $NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86/bin/arm-l nux-androideabi-gdb -ex "target extended-remote 192.168.35.7:1234" ./path/to/test-runner Make sure you have that last path, a copy of the same test runner on the development host that you're running on the Android device, so gdb can load its symbols. After that, you should be to rerun the test runner as many times as you want, as it's in multi-process mode and you can restart as many processes as you want. When you're done, simply type 'monitor exit' to kill the gdb server remotely before quitting gdb.
Nov 08 2015
Android 6.0 Nexus 5 Snapdragon 800 All test pass on apk
Nov 09 2015
On Sunday, 8 November 2015 at 09:49:18 UTC, Joakim wrote:They're both related to accessing files, whether a socket file or a symbolic link. Given that they pass from the apk, my guess is that this is related to user/file permissions because you're running as root from the Download directory. Can you try running as a normal user in the local folder for SSHDroid, as described here? http://wiki.dlang.org/Build_LDC_for_Android#Run_the_druntime_and_phobos_unit_testsRunning it as root in the home directory (/data/data/berserker.android.apps.sshdroid/home) fixed those errors. I don't know how to add non-root users though.With some builds, I used to get an issue with core.thread interacting with the static destructor for std.parallelism, which would cause a segfault on exit. This could be that issue. As for debugging, the NDK comes with an ARM gdb server, found in prebuilt/android-arm/gdbserver/gdbserver, which you can use with their gdb to remotely debug Android apps.Thanks, I got gdb-server running. In core.thread and some later modules it stops because of SIGUSR1 and SIGUSR2; I guess I should make gdb ignore those? After continuing from all the SIGUSR signals, I get the segfault that occurs after std.internal.math.gammafunction passes: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 22658.22658] 0x4250a364 in core.thread.Thread.getAll() () (gdb) bt Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) info threads Id Target Id Frame * 1 Thread 22658.22658 0x4250a364 in core.thread.Thread.getAll() () I'm guessing this is the same issue you mentioned.
Nov 11 2015
On Thursday, 12 November 2015 at 03:46:07 UTC, Jakob Ovrum wrote:On Sunday, 8 November 2015 at 09:49:18 UTC, Joakim wrote:Unless you're running sshdroid as root, it should create a temporary user, like all Android apps, and run as that user, regardless of whether you used the login "root" or not. I've found that the SSH login is irrelevant: you can type in any login for sshdroid and it will accept it, as long as it has the right password, which makes sense because it doesn't really create users of its own. So you should have been running as the app's user in it's directory, just as I wanted. I'm uninterested in debugging the user/file permissions issues that come with running elsewhere, especially since that's not allowed unless you're root, ie you can't normally run binaries from the Download/ directory.They're both related to accessing files, whether a socket file or a symbolic link. Given that they pass from the apk, my guess is that this is related to user/file permissions because you're running as root from the Download directory. Can you try running as a normal user in the local folder for SSHDroid, as described here? http://wiki.dlang.org/Build_LDC_for_Android#Run_the_druntime_and_phobos_unit_testsRunning it as root in the home directory (/data/data/berserker.android.apps.sshdroid/home) fixed those errors. I don't know how to add non-root users though.Yes, there's a gdb command for it: handle SIGUSR1 SIGUSR2 nostop You can also add "noprint," if you don't even want to be notified that those signals were sent.With some builds, I used to get an issue with core.thread interacting with the static destructor for std.parallelism, which would cause a segfault on exit. This could be that issue. As for debugging, the NDK comes with an ARM gdb server, found in prebuilt/android-arm/gdbserver/gdbserver, which you can use with their gdb to remotely debug Android apps.Thanks, I got gdb-server running. In core.thread and some later modules it stops because of SIGUSR1 and SIGUSR2; I guess I should make gdb ignore those?After continuing from all the SIGUSR signals, I get the segfault that occurs after std.internal.math.gammafunction passes: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 22658.22658] 0x4250a364 in core.thread.Thread.getAll() () (gdb) bt Backtrace stopped: previous frame identical to this frame (corrupt stack?) (gdb) info threads Id Target Id Frame * 1 Thread 22658.22658 0x4250a364 in core.thread.Thread.getAll() () I'm guessing this is the same issue you mentioned.Yep, that's it. Guessing it's some sort of race on exit, since it doesn't always happen. You can remove core.thread from test.list to confirm that it's the same reason.
Nov 17 2015
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread:Android 5.1.1, Nexus 7 (Asus), Snapdragon S4 Pro 8064: All tests pass, apk.
Nov 06 2015
Huawei Watch rooted with custom OS (since it seemed easiest way to run an executable via adb shell, and Terminal Emulator is not so usable on that size screen). Android 5.1.1 Wear 1.3.0 Qualcomm MSM8926 Snapdragon 400 Quad-core 1.2 GHz Cortex-A7 All tests passed (command line). no end-point mapper since Wear doesn't give you tcp access even though the watch has wifi. 0.001s PASS release32 core.atomic 0.174s PASS release32 core.bitop 0.000s PASS release32 core.checkedint 0.014s PASS release32 core.memory 0.000s PASS release32 core.exception 0.000s PASS release32 core.math 0.010s PASS release32 core.demangle 1.566s PASS release32 core.time 0.955s PASS release32 core.thread 0.000s PASS release32 core.internal.convert 0.000s PASS release32 core.internal.hash 0.000s PASS release32 core.sync.config 0.019s PASS release32 core.sync.mutex 0.039s PASS release32 core.sync.condition 0.009s PASS release32 core.sync.barrier 0.044s PASS release32 core.sync.rwmutex 0.000s PASS release32 core.sys.posix.sys.select 0.006s PASS release32 object 0.000s PASS release32 rt.aaA 0.001s PASS release32 rt.arraybyte 0.000s PASS release32 rt.arrayassign 0.000s PASS release32 rt.cover 0.000s PASS release32 rt.arraycast 0.000s PASS release32 rt.minfo 0.006s PASS release32 rt.arraydouble 0.000s PASS release32 rt.qsort 0.000s PASS release32 rt.typeinfo.ti_Aint 0.000s PASS release32 rt.adi 0.068s PASS release32 rt.lifetime 0.000s PASS release32 rt.monitor_ 0.000s PASS release32 rt.arrayreal 0.003s PASS release32 rt.arrayfloat 0.000s PASS release32 rt.util.string 0.000s PASS release32 rt.util.utf 0.000s PASS release32 rt.util.hash 0.589s PASS release32 rt.util.container.treap 0.001s PASS release32 rt.util.container.hashtab 0.000s PASS release32 rt.util.container.array 0.002s PASS release32 rt.util.typeinfo 0.002s PASS release32 rt.arrayshort 0.000s PASS release32 rt.aApply 0.000s PASS release32 rt.switch_ 0.009s PASS release32 rt.arrayint 0.000s PASS release32 rt.aApplyR 0.000s PASS release32 gc.config 0.000s PASS release32 gc.gc 0.000s PASS release32 gc.bits 0.000s PASS release32 gc.pooltable 0.000s PASS release32 std.typetuple 0.033s PASS release32 std.format 0.167s PASS release32 std.conv 47.344s PASS release32 std.random 0.617s PASS release32 std.uni 0.012s PASS release32 std.encoding 0.011s PASS release32 std.zip 0.013s PASS release32 std.variant 0.002s PASS release32 std.mmfile 0.032s PASS release32 std.path 1.338s PASS release32 std.process 38.710s PASS release32 std.datetime 0.002s PASS release32 std.cstream 0.004s PASS release32 std.meta No service for epmap. 7.741s PASS release32 std.socket 0.000s PASS release32 std.signals 0.000s PASS release32 std.typelist 0.000s PASS release32 std.outbuffer 0.105s PASS release32 std.stdio 0.008s PASS release32 std.csv 0.006s PASS release32 std.xml 0.000s PASS release32 std.mathspecial 0.013s PASS release32 std.exception 0.008s PASS release32 std.math 0.059s PASS release32 std.uuid 0.349s PASS release32 std.string 0.005s PASS release32 std.traits 0.008s PASS release32 std.ascii 0.000s PASS release32 std.complex 0.007s PASS release32 std.functional 0.019s PASS release32 std.typecons 0.009s PASS release32 std.getopt 0.032s PASS release32 std.utf 5.807s PASS release32 std.uri 0.027s PASS release32 std.stream 0.046s PASS release32 std.concurrency 0.015s PASS release32 std.bitmanip 0.123s PASS release32 std.array 0.055s PASS release32 std.bigint 0.005s PASS release32 std.base64 0.350s PASS release32 std.zlib 18.893s PASS release32 std.parallelism 0.005s PASS release32 std.json 0.009s PASS release32 std.numeric 0.372s PASS release32 std.file 0.080s PASS release32 std.algorithm.searching 0.007s PASS release32 std.algorithm.setops 0.085s PASS release32 std.algorithm.mutation 0.065s PASS release32 std.algorithm.sorting 0.010s PASS release32 std.algorithm.comparison 0.013s PASS release32 std.algorithm.iteration 0.000s PASS release32 std.container 0.010s PASS release32 std.container.util 0.000s PASS release32 std.container.binaryheap 0.113s PASS release32 std.container.rbtree 0.003s PASS release32 std.container.array 0.001s PASS release32 std.container.slist 0.001s PASS release32 std.container.dlist 0.510s PASS release32 std.digest.md 0.121s PASS release32 std.digest.crc 0.640s PASS release32 std.digest.ripemd 8.470s PASS release32 std.digest.sha 1.285s PASS release32 std.digest.digest 0.000s PASS release32 std.experimental.logger.nulllogger 1.119s PASS release32 std.experimental.logger.core 0.004s PASS release32 std.experimental.logger.filelogger 0.003s PASS release32 std.experimental.logger.multilogger 0.007s PASS release32 std.net.curl 0.138s PASS release32 std.net.isemail 0.022s PASS release32 std.range 0.030s PASS release32 std.range.primitives 0.000s PASS release32 std.range.interfaces 0.035s PASS release32 std.regex 0.000s PASS release32 std.regex.internal.ir 0.000s PASS release32 std.regex.internal.backtracking 0.073s PASS release32 std.regex.internal.generator 0.020s PASS release32 std.regex.internal.parser 3.029s PASS release32 std.regex.internal.tests 0.006s PASS release32 std.regex.internal.kickstart 0.000s PASS release32 std.internal.cstring 0.000s PASS release32 std.internal.scopebuffer 0.002s PASS release32 std.internal.math.biguintcore 0.000s PASS release32 std.internal.math.biguintnoasm 0.000s PASS release32 std.internal.math.errorfunction 0.002s PASS release32 std.internal.math.gammafunction
Jan 04 2016
On Tuesday, 5 January 2016 at 00:34:19 UTC, Laeeth Isharc wrote:Huawei Watch rooted with custom OS (since it seemed easiest way to run an executable via adb shell, and Terminal Emulator is not so usable on that size screen). [...]Heh, I didn't think anyone would get it running on a wearable with Android Wear, good to see D runs fine on there too. The epmap thing doesn't work on all Android devices- see previous output in this thread- and I think wifi is working because none of the other tests in std.socket assert.
Jan 04 2016
On Tuesday, 5 January 2016 at 04:30:38 UTC, Joakim wrote:On Tuesday, 5 January 2016 at 00:34:19 UTC, Laeeth Isharc wrote:That's v interesting if true, as I had thought it was crippled. (It might be the custom boot image that is the reason for this - I would have liked to have try on stock but was just too much trouble to figure out how to get the executable onto somewhere I could run it, and pretty hard to control terminal from the watch - not even an onscreen keyboard comes up). One case where little D scripts might already be potentially usable - whether on tablet or wearable - would be to trigger them via Tasker (and its plugins/clones on Wear).Huawei Watch rooted with custom OS (since it seemed easiest way to run an executable via adb shell, and Terminal Emulator is not so usable on that size screen). [...]Heh, I didn't think anyone would get it running on a wearable with Android Wear, good to see D runs fine on there too. The epmap thing doesn't work on all Android devices- see previous output in this thread- and I think wifi is working because none of the other tests in std.socket assert.
Jan 04 2016
On Tuesday, 5 January 2016 at 04:30:38 UTC, Joakim wrote:On Tuesday, 5 January 2016 at 00:34:19 UTC, Laeeth Isharc wrote:drop me an email if you have time - laeeth at kaleidicassociates.comHuawei Watch rooted with custom OS (since it seemed easiest way to run an executable via adb shell, and Terminal Emulator is not so usable on that size screen). [...]Heh, I didn't think anyone would get it running on a wearable with Android Wear, good to see D runs fine on there too. The epmap thing doesn't work on all Android devices- see previous output in this thread- and I think wifi is working because none of the other tests in std.socket assert.
Jan 04 2016
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread: https://github.com/joakim-noah/android/releases/tag/runners Some output is expected and doesn't need to be reported, while any other deviations should be reported. Please report the Android version, found in Settings->About Device->Android Version; the manufacturer; the chipset, which can be found on device databases like gsmarena; and which runners you ran. If you google your device's name, usually the first link is the gsmarena entry. For example, the Samsung Galaxy S6 uses the Exynos 7420: http://www.gsmarena.com/samsung_galaxy_s6-6849.php I'm using this ldc forum for this device reporting because it doesn't require any registration, unlike the wiki or github. I'll collect all the results and put them on the wiki later. All source is available to build ldc and the test runner yourself, only missing the build script I used for the apk version of the test runner. I'll write up the build process on the wiki and push that last script into CMake next. Expected output: - Bionic didn't support hex format for floating point, either for literals or output, until Android 5.0. As a result, I skip such tests in std.conv and std.format if they fail. The command-line test runner will note that those tests were skipped on pre-5.0 Android: that's expected and only needs to be reported if it _doesn't_ happen on pre-5.0 Android.I've released updated test runners on github: https://github.com/joakim-noah/android/releases/tag/polish I count eight issues reported in this thread. Here's the list, along with what has been or needs to be done: 1. std.stdio and std.socket hang on Android 5.0- this was because of a regression with locking stdout in bionic 5.0, hacked in a workaround so it shouldn't hit anymore. 2. rsw0x reported a failing test in std.file from the command-line runner on Android 6.0- others didn't have an issue with the apk on 6.0, not sure what to make of this one. 3. Nick and TheFlyingFiddle reported several modules asserting because of getcwd on Android 4.1- this was because calling getcwd with the arguments null and 0 was not supported before 4.2, put in a workaround so it shouldn't cause a problem. 4. Vlad reported an issue with one time zone in std.datetime- we narrowed it down to the timezone parser from bionic on his device not reading the timezone data properly, left the issue there as it doesn't hit anybody else. 5. Austin G reported several modules hanging on his G4- I need more info about this, since it's the only device with these problems. 6. Yazan D reported std.datetime asserting for his timezone- as he said, this is a problem upstream too, so not specific to Android. 7. Jakob reported two modules asserting when trying to create links in the Downloads directory- this is likely related to Android not allowing symbolic links on the /sdcard partition, as he said it works fine in the /data partition. 8. Jakob reported a segfault from the command-line test runner after all tests are run, related to the static destructor for std.parallelism interacting somehow with core.thread- I've seen this occasionally but not in a while, so put it aside for now. So, 1 and 3 were worked around; I'll need more info on 2, 4, and 5; 6 and 7 are out of scope of this Android port; and 8 will need to be pinned down at some point, once it can be reproduced consistently. Please try out the updated test runners, particularly if the previous ones asserted anywhere for you, and report your results in the same format as before.
Jan 17 2016
Hi Joakim, On 17 Jan 2016, at 12:24, Joakim via digitalmars-d-ldc wrote:I've released updated test runners on github: https://github.com/joakim-noah/android/releases/tag/polishI don't have much to contribute right now but thank you for keeping us updated on the progress. We should probably figure out how to go forward with integrating this into mainline LDC soon (how do the upstream LLVM TLS support additions affect this, by the way?). I'm bringing this up now because the upcoming 2.069 merge (with the move to the D frontend) has the potential to be quite disruptive to long-term projects like yours, and I want to be sure things do no grind to a halt because of that. Best, David
Jan 18 2016
On Monday, 18 January 2016 at 09:32:06 UTC, David Nadlinger wrote:Hi Joakim, On 17 Jan 2016, at 12:24, Joakim via digitalmars-d-ldc wrote:Yes, I wanted to polish off some of these remaining rough edges before submitting PRs. I will do that next, as there's only a couple failing tests left and they don't bother me. As for "the upstream LLVM TLS support additions," I assume you're talking about the recent support for emulated TLS added to llvm 3.8, that mimics the way gcc does it. I tried it out a while back, works fine, except I'll need to figure out how to register that TLS data with the GC, as Johannes had to do for gcc. I haven't looked into that last GC portion yet.I've released updated test runners on github: https://github.com/joakim-noah/android/releases/tag/polishI don't have much to contribute right now but thank you for keeping us updated on the progress. We should probably figure out how to go forward with integrating this into mainline LDC soon (how do the upstream LLVM TLS support additions affect this, by the way?).I'm bringing this up now because the upcoming 2.069 merge (with the move to the D frontend) has the potential to be quite disruptive to long-term projects like yours, and I want to be sure things do no grind to a halt because of that.Why do you say that: do you expect it to take a while to get the 2.069 release of ldc done? Since I'm providing ldc as a cross-compiler, I don't see how it would affect the linux/x86 or linux/x64 host compiler. It might affect the native Android/ARM host compiler, but I'm optimistic that that won't take much. If you simply mean that merging might take a while after switching the ldc frontend to D, as my patches are against the current C++ version of ldc, my patches to the ldc compiler itself are fairly minimal. The vast majority is Kai's longdouble2 branch, which is only necessary when cross-compiling, and I suspect we could translate it fairly quickly if needed. Long answer short: I don't expect the 2.069 merge to affect the Android port much, but I'll try to get some PRs in before then anyway.
Jan 18 2016
Joakim <dlang joakim.fea.st> writes:I think David did mean that your Android changes might get messed up by the update to D frontend 2.069. I agree that Kai's longdouble2 branch could be the most work, but it is pretty straight forward and might be easier to just reimplement as LDC starts using 2.069 D frontend. -- DanI'm bringing this up now because the upcoming 2.069 merge (with the move to the D frontend) has the potential to be quite disruptive to long-term projects like yours, and I want to be sure things do no grind to a halt because of that.Why do you say that: do you expect it to take a while to get the 2.069 release of ldc done? Since I'm providing ldc as a cross-compiler, I don't see how it would affect the linux/x86 or linux/x64 host compiler. It might affect the native Android/ARM host compiler, but I'm optimistic that that won't take much. If you simply mean that merging might take a while after switching the ldc frontend to D, as my patches are against the current C++ version of ldc, my patches to the ldc compiler itself are fairly minimal. The vast majority is Kai's longdouble2 branch, which is only necessary when cross-compiling, and I suspect we could translate it fairly quickly if needed.
Jan 18 2016
On Sunday, 17 January 2016 at 11:24:58 UTC, Joakim wrote:I've released updated test runners on github: https://github.com/joakim-noah/android/releases/tag/polish...3. Nick and TheFlyingFiddle reported several modules asserting because of getcwd on Android 4.1- this was because calling getcwd with the arguments null and 0 was not supported before 4.2, put in a workaround so it shouldn't cause a problem.I retested. All tests now pass Android: v4.1.2 Device: SCH-I535 (Samsung Galaxy S3 Verizon) Chipset: Snapdragon S4 Plus Rooted: Yes Custom ROM: No 0.581s PASS core.time 0.005s PASS core.memory 0.035s PASS core.bitop 0.260s PASS core.thread 0.000s PASS core.math 0.000s PASS core.checkedint 0.000s PASS core.atomic 0.000s PASS core.exception 0.020s PASS core.demangle 0.000s PASS core.internal.convert 0.000s PASS core.internal.hash 0.016s PASS core.sync.rwmutex 0.034s PASS core.sync.condition 0.008s PASS core.sync.mutex 0.000s PASS core.sync.config 0.007s PASS core.sync.barrier 0.000s PASS core.sys.posix.sys.select 0.000s PASS core.sys.linux.tipc 0.000s PASS ldc.eh.fixedpool 0.007s PASS object 0.000s PASS rt.aApplyR 0.000s PASS rt.minfo 0.004s PASS rt.arraydouble 0.000s PASS rt.monitor_ 0.000s PASS rt.arraycast 0.000s PASS rt.aApply 0.000s PASS rt.arraybyte 0.001s PASS rt.arrayshort 0.021s PASS rt.arrayint 0.000s PASS rt.arrayassign 0.000s PASS rt.typeinfo.ti_Aint 0.000s PASS rt.aaA 0.000s PASS rt.arrayreal 0.001s PASS rt.arrayfloat 0.000s PASS rt.cover 0.018s PASS rt.lifetime 0.000s PASS rt.util.string 0.000s PASS rt.util.typeinfo 0.261s PASS rt.util.container.treap 0.000s PASS rt.util.container.hashtab 0.000s PASS rt.util.container.array 0.000s PASS rt.util.utf 0.000s PASS rt.util.hash 0.000s PASS rt.switch_ 0.006s PASS rt.adi 0.000s PASS rt.qsort 0.000s PASS gc.config 0.000s PASS gc.bits 0.000s PASS gc.pooltable 0.000s PASS gc.gc 0.071s PASS std.uuid 0.000s PASS std.outbuffer 0.009s PASS std.numeric 0.012s PASS std.traits 0.019s PASS std.encoding 0.042s PASS std.format 0.163s PASS std.string 5.982s PASS std.socket 0.114s PASS std.file 0.007s PASS std.xml 2.110s PASS std.process 1.182s PASS std.uri 0.004s PASS std.functional 0.077s PASS std.stream 0.004s PASS std.json 0.013s PASS std.csv 0.006s PASS std.getopt 0.106s PASS std.conv 0.003s PASS std.ascii 0.290s PASS std.stdio 0.676s PASS std.uni 0.000s PASS std.typetuple 0.010s PASS std.bitmanip 0.113s PASS std.zlib 0.000s PASS std.typelist 0.000s PASS std.signals 0.026s PASS std.utf 0.000s PASS std.mathspecial 15.397s PASS std.datetime 0.031s PASS std.path 0.001s PASS std.cstream 0.002s PASS std.meta 0.021s PASS std.bigint 0.059s PASS std.variant 0.004s PASS std.math 0.016s PASS std.typecons 6.746s PASS std.parallelism 0.002s PASS std.base64 0.001s PASS std.mmfile 0.029s PASS std.zip 0.062s PASS std.array 33.843s PASS std.random 0.002s PASS std.complex 0.018s PASS std.exception 0.014s PASS std.concurrency 0.002s PASS std.algorithm.comparison 0.041s PASS std.algorithm.iteration 0.006s PASS std.algorithm.mutation 0.076s PASS std.algorithm.searching 0.030s PASS std.algorithm.sorting 0.013s PASS std.algorithm.setops 0.000s PASS std.container.binaryheap 0.000s PASS std.container 0.000s PASS std.container.slist 0.007s PASS std.container.util 0.000s PASS std.container.dlist 0.111s PASS std.container.rbtree 0.024s PASS std.container.array 0.162s PASS std.digest.md 0.196s PASS std.digest.ripemd 0.053s PASS std.digest.crc 0.270s PASS std.digest.digest 3.978s PASS std.digest.sha 0.720s PASS std.experimental.logger.core 0.001s PASS std.experimental.logger.multilogger 0.000s PASS std.experimental.logger.nulllogger 0.001s PASS std.experimental.logger.filelogger 0.022s PASS std.net.curl 0.095s PASS std.net.isemail 0.035s PASS std.range 0.000s PASS std.range.interfaces 0.020s PASS std.range.primitives 0.071s PASS std.regex 0.003s PASS std.regex.internal.kickstart 0.023s PASS std.regex.internal.generator 0.000s PASS std.regex.internal.backtracking 0.005s PASS std.regex.internal.parser 1.041s PASS std.regex.internal.tests 0.000s PASS std.regex.internal.ir 0.000s PASS std.internal.scopebuffer 0.000s PASS std.internal.math.errorfunction 0.001s PASS std.internal.math.biguintcore 0.006s PASS std.internal.math.gammafunction 0.000s PASS std.internal.math.biguintnoasm 0.000s PASS std.internal.cstring
Apr 21 2016
On Sunday, 17 January 2016 at 11:24:58 UTC, Joakim wrote:I've released updated test runners on github: https://github.com/joakim-noah/android/releases/tag/polishAlso tested on another device, NOT all passed: Android: v5.1.1 Device: N910T3 (Samsung Galaxy Note 4 T-Mobile Rev.2) Chipset: Snapdragon 805 Rooted: Yes Custom ROM: No 0.304s PASS release32 core.time 0.002s PASS release32 core.memory 0.025s PASS release32 core.bitop Not safe to migrate Fibers between Threads on your system. Consider setting version CheckFiberMigration for this system in thread.d 0.235s PASS release32 core.thread 0.000s PASS release32 core.math 0.000s PASS release32 core.checkedint 0.000s PASS release32 core.atomic 0.000s PASS release32 core.exception 0.005s PASS release32 core.demangle 0.000s PASS release32 core.internal.convert 0.000s PASS release32 core.internal.hash 0.034s PASS release32 core.sync.rwmutex 0.044s PASS release32 core.sync.condition 0.027s PASS release32 core.sync.mutex 0.000s PASS release32 core.sync.config 0.009s PASS release32 core.sync.barrier 0.000s PASS release32 core.sys.posix.sys.select 0.000s PASS release32 core.sys.linux.tipc 0.000s PASS release32 ldc.eh.fixedpool 0.004s PASS release32 object 0.000s PASS release32 rt.aApplyR 0.000s PASS release32 rt.minfo 0.006s PASS release32 rt.arraydouble 0.000s PASS release32 rt.monitor_ 0.000s PASS release32 rt.arraycast 0.000s PASS release32 rt.aApply 0.001s PASS release32 rt.arraybyte 0.002s PASS release32 rt.arrayshort 0.016s PASS release32 rt.arrayint 0.000s PASS release32 rt.arrayassign 0.000s PASS release32 rt.typeinfo.ti_Aint 0.000s PASS release32 rt.aaA 0.000s PASS release32 rt.arrayreal 0.002s PASS release32 rt.arrayfloat 0.000s PASS release32 rt.cover 0.008s PASS release32 rt.lifetime 0.000s PASS release32 rt.util.string 0.001s PASS release32 rt.util.typeinfo 0.275s PASS release32 rt.util.container.treap 0.000s PASS release32 rt.util.container.hashtab 0.000s PASS release32 rt.util.container.array 0.000s PASS release32 rt.util.utf 0.000s PASS release32 rt.util.hash 0.000s PASS release32 rt.switch_ 0.000s PASS release32 rt.adi 0.000s PASS release32 rt.qsort 0.000s PASS release32 gc.config 0.000s PASS release32 gc.bits 0.000s PASS release32 gc.pooltable 0.000s PASS release32 gc.gc 0.019s PASS release32 std.uuid 0.000s PASS release32 std.outbuffer 0.002s PASS release32 std.numeric 0.002s PASS release32 std.traits 0.014s PASS release32 std.encoding 0.011s PASS release32 std.format 0.071s PASS release32 std.string No service for epmap. ****** FAIL release32 std.socket std.socket.SocketOSException /home/mux/ldc/runtime/phobos/std/socket.d(2783): Unable to bind socket: Operation not permitted ****** FAIL release32 std.file std.file.FileException /home/mux/ldc/runtime/phobos/std/file.d(1091): /storage/emulated/0/deleteme.dmd.unittest.pid5731_slink 0.005s PASS release32 std.xml 1.612s PASS release32 std.process 0.986s PASS release32 std.uri 0.002s PASS release32 std.functional 0.007s PASS release32 std.stream 0.001s PASS release32 std.json 0.002s PASS release32 std.csv 0.003s PASS release32 std.getopt 0.030s PASS release32 std.conv 0.002s PASS release32 std.ascii 0.244s PASS release32 std.stdio 0.540s PASS release32 std.uni 0.000s PASS release32 std.typetuple 0.004s PASS release32 std.bitmanip 0.087s PASS release32 std.zlib 0.000s PASS release32 std.typelist 0.000s PASS release32 std.signals 0.009s PASS release32 std.utf 0.000s PASS release32 std.mathspecial 5.547s PASS release32 std.datetime 0.029s PASS release32 std.path 0.001s PASS release32 std.cstream 0.001s PASS release32 std.meta 0.010s PASS release32 std.bigint 0.011s PASS release32 std.variant 0.002s PASS release32 std.math 0.007s PASS release32 std.typecons 9.969s PASS release32 std.parallelism 0.005s PASS release32 std.base64 0.002s PASS release32 std.mmfile 0.031s PASS release32 std.zip 0.034s PASS release32 std.array 7.248s PASS release32 std.random 0.000s PASS release32 std.complex 0.002s PASS release32 std.exception 0.017s PASS release32 std.concurrency 0.003s PASS release32 std.algorithm.comparison 0.011s PASS release32 std.algorithm.iteration 0.003s PASS release32 std.algorithm.mutation 0.028s PASS release32 std.algorithm.searching 0.010s PASS release32 std.algorithm.sorting 0.003s PASS release32 std.algorithm.setops 0.000s PASS release32 std.container.binaryheap 0.000s PASS release32 std.container 0.000s PASS release32 std.container.slist 0.003s PASS release32 std.container.util 0.000s PASS release32 std.container.dlist 0.038s PASS release32 std.container.rbtree 0.001s PASS release32 std.container.array 0.077s PASS release32 std.digest.md 0.116s PASS release32 std.digest.ripemd 0.035s PASS release32 std.digest.crc 0.104s PASS release32 std.digest.digest 2.172s PASS release32 std.digest.sha 0.380s PASS release32 std.experimental.logger.core 0.001s PASS release32 std.experimental.logger.multilogger 0.000s PASS release32 std.experimental.logger.nulllogger 0.001s PASS release32 std.experimental.logger.filelogger 0.001s PASS release32 std.net.curl 0.021s PASS release32 std.net.isemail 0.006s PASS release32 std.range 0.000s PASS release32 std.range.interfaces 0.003s PASS release32 std.range.primitives 0.013s PASS release32 std.regex 0.001s PASS release32 std.regex.internal.kickstart 0.010s PASS release32 std.regex.internal.generator 0.000s PASS release32 std.regex.internal.backtracking 0.003s PASS release32 std.regex.internal.parser 0.367s PASS release32 std.regex.internal.tests 0.000s PASS release32 std.regex.internal.ir 0.000s PASS release32 std.internal.scopebuffer 0.000s PASS release32 std.internal.math.errorfunction 0.000s PASS release32 std.internal.math.biguintcore 0.000s PASS release32 std.internal.math.gammafunction 0.000s PASS release32 std.internal.math.biguintnoasm 0.000s PASS release32 std.internal.cstring
Apr 21 2016
On Thursday, 21 April 2016 at 23:50:09 UTC, Nick Sabalausky wrote:On Sunday, 17 January 2016 at 11:24:58 UTC, Joakim wrote:Thanks for verifying that the tests now pass on 4.1.I've released updated test runners on github: https://github.com/joakim-noah/android/releases/tag/polishAlso tested on another device, NOT all passed: Android: v5.1.1 Device: N910T3 (Samsung Galaxy Note 4 T-Mobile Rev.2) Chipset: Snapdragon 805 Rooted: Yes Custom ROM: No No service for epmap. ****** FAIL release32 std.socket std.socket.SocketOSException /home/mux/ldc/runtime/phobos/std/socket.d(2783): Unable to bind socket: Operation not permitted ****** FAIL release32 std.file std.file.FileException /home/mux/ldc/runtime/phobos/std/file.d(1091): /storage/emulated/0/deleteme.dmd.unittest.pid5731_slinkIt appears that you are running the command-line binary as root in the /sdcard partition. Can you try running in the /data partition, as I asked Jakob to do earlier? http://forum.dlang.org/post/htjpgurovmvmadibyuyx forum.dlang.org It's likely the same issue I pointed out to him, having to do with symbolic links not working in the /sdcard partition. It should work fine in /data, which is where non-root apps normally run.
Apr 22 2016
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread: [...]Android 5.1, Motorola, Snapdragon 410: all tests pass using the APK.
Jan 18 2016
On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:I've been running the druntime and phobos tests from the master 2.068 branch on various Android devices. Please try out the Android test runners I just made available and report your own results in this thread:android 6.0 64bit snapdragon 625 apk logcat: 12-07 16:36:19.755 1345-6469/? E/GameModeController: notePausingActivity(10256,14,com.example.native_activity,android.app.NativeActivity) 12-07 16:36:19.766 1345-8491/? E/ActivityThread: Failed to find provider info for cn.nubia.launcher.fancyIcon 12-07 16:36:19.997 483-483/? E/SurfaceFlinger: com.example.native_activity/android.app.NativeActivity nAvgNum=41 avgtime=16581958.00 fps=60.31 12-07 16:36:20.337 9054-9068/? E/ANDR-PERF-OPTSHANDLER: Write 4:-1 into /sys/module/msm_performance/parameters/max_cpus 12-07 16:36:20.337 9054-9068/? E/ANDR-PERF-OPTSHANDLER: Write -1:-1 into /sys/module/msm_performance/parameters/max_cpus 12-07 16:36:20.557 417-417/? E/dmapp: dmapp is still alive. 12-07 16:36:34.106 8457-22551/? E/OperatorSimInfo: Create Res Apk Failed 12-07 16:36:34.107 8457-22551/? E/OperatorSimInfo: Create Res Apk Failed 12-07 16:36:34.125 8457-2748/? E/OperatorSimInfo: Create Res Apk Failed 12-07 16:36:34.126 8457-2748/? E/OperatorSimInfo: Create Res Apk Failed 12-07 16:36:34.149 8457-9800/? E/OperatorSimInfo: Create Res Apk Failed 12-07 16:36:34.150 8457-9800/? E/OperatorSimInfo: Create Res Apk Failed 12-07 16:36:36.811 8210-8210/? E/SogouIME: dongxiaohang status = 3true 12-07 16:36:47.444 14598-14598/? E/Watermelon: removeresult=-1 12-07 16:36:47.445 14598-14598/? E/Watermelon: kill zombie failed, zombie`s pid = 3017 12-07 16:36:47.483 18154-18154/? E/Watermelon: kill zombie failed, zombie`s pid = 3017 12-07 16:36:47.541 18154-18154/? E/Watermelon: flock selft /data/user/0/com.tencent.tim/app_indicators/observer_d2 result:0 12-07 16:37:15.039 8457-15370/? E/OperatorSimInfo: Create Res Apk Failed 12-07 16:37:15.040 8457-15370/? E/OperatorSimInfo: Create Res Apk Failed ----------------- And CLI result: (many failed due to Permission denied) ------------------- $ cat test.log.txt 0.000s PASS release32 core.atomic 0.017s PASS release32 core.bitop 0.000s PASS release32 core.checkedint 0.001s PASS release32 core.memory 0.000s PASS release32 core.exception 0.000s PASS release32 core.math 0.001s PASS release32 core.demangle 0.185s PASS release32 core.time 0.285s PASS release32 core.thread 0.000s PASS release32 core.internal.convert 0.000s PASS release32 core.internal.hash 0.000s PASS release32 core.sync.config 0.005s PASS release32 core.sync.mutex 0.037s PASS release32 core.sync.condition 0.003s PASS release32 core.sync.barrier 0.015s PASS release32 core.sync.rwmutex 0.000s PASS release32 core.sys.posix.sys.select 0.002s PASS release32 object 0.000s PASS release32 rt.aaA 0.000s PASS release32 rt.arraybyte 0.000s PASS release32 rt.arrayassign 0.000s PASS release32 rt.cover 0.000s PASS release32 rt.arraycast 0.000s PASS release32 rt.minfo 0.002s PASS release32 rt.arraydouble 0.000s PASS release32 rt.qsort 0.000s PASS release32 rt.typeinfo.ti_Aint 0.000s PASS release32 rt.adi 0.023s PASS release32 rt.lifetime 0.000s PASS release32 rt.monitor_ 0.000s PASS release32 rt.arrayreal 0.000s PASS release32 rt.arrayfloat 0.000s PASS release32 rt.util.string 0.000s PASS release32 rt.util.utf 0.000s PASS release32 rt.util.hash 0.097s PASS release32 rt.util.container.treap 0.000s PASS release32 rt.util.container.hashtab 0.000s PASS release32 rt.util.container.array 0.000s PASS release32 rt.util.typeinfo 0.000s PASS release32 rt.arrayshort 0.000s PASS release32 rt.aApply 0.000s PASS release32 rt.switch_ 0.001s PASS release32 rt.arrayint 0.000s PASS release32 rt.aApplyR 0.000s PASS release32 gc.config 0.000s PASS release32 gc.gc 0.000s PASS release32 gc.bits 0.000s PASS release32 gc.pooltable 0.000s PASS release32 std.typetuple 0.003s PASS release32 std.format 0.022s PASS release32 std.conv 7.712s PASS release32 std.random 0.248s PASS release32 std.uni 0.004s PASS release32 std.encoding 0.005s PASS release32 std.zip 0.004s PASS release32 std.variant ****** FAIL release32 std.mmfile std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/mmfile.d(308): Could not open file /data/local/tmp/deleteme.dmd.unittest.pid5270-testing.txt (Permission denied) 0.013s PASS release32 std.path ****** FAIL release32 std.process std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(445): /data/local/tmp/std.process temporary file ea1bc65f-8ae6-4154-a43b-6dcbaa5e7979: Permission denied 7.378s PASS release32 std.datetime ****** FAIL release32 std.cstream core.exception.AssertError /home/bert/ldc/runtime/phobos/std/cstream.d(158): Assertion failure 0.000s PASS release32 std.meta No service for epmap. ****** FAIL release32 std.socket std.socket.SocketOSException /home/bert/ldc/runtime/phobos/std/socket.d(2783): Unable to bind socket: Permission denied 0.000s PASS release32 std.signals 0.000s PASS release32 std.typelist 0.000s PASS release32 std.outbuffer ****** FAIL release32 std.stdio std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/stdio.d(482): Cannot open file `/data/local/tmp/deleteme.dmd.unittest.pid5270-дРтка.stdio.d.695' in mode `w' (Permission denied) 0.000s PASS release32 std.csv 0.001s PASS release32 std.xml 0.000s PASS release32 std.mathspecial 0.003s PASS release32 std.exception 0.001s PASS release32 std.math 0.011s PASS release32 std.uuid 0.056s PASS release32 std.string 0.000s PASS release32 std.traits 0.001s PASS release32 std.ascii 0.000s PASS release32 std.complex 0.001s PASS release32 std.functional 0.003s PASS release32 std.typecons 0.001s PASS release32 std.getopt 0.004s PASS release32 std.utf 0.629s PASS release32 std.uri ****** FAIL release32 std.stream std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/stdio.d(482): Cannot open file `/data/local/tmp/deleteme.dmd.unittest.pid5270-issue3363.txt' in mode `w' (Permission denied) 0.006s PASS release32 std.concurrency 0.001s PASS release32 std.bitmanip 0.010s PASS release32 std.array 0.004s PASS release32 std.bigint ****** FAIL release32 std.base64 std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(445): /data/local/tmp/deleteme.dmd.unittest.pid5270-testingEncoder: Permission denied 0.039s PASS release32 std.zlib ****** FAIL release32 std.parallelism std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/stdio.d(482): Cannot open file `/data/local/tmp/deleteme.dmd.unittest.pid5270-tempDelMe.txt' in mode `wb' (Permission denied) 0.000s PASS release32 std.json 0.000s PASS release32 std.numeric ****** FAIL release32 std.file std.file.FileException /home/bert/ldc/runtime/phobos/std/file.d(445): /data/local/tmp/deleteme.dmd.unittest.pid5270: Permission denied 0.006s PASS release32 std.algorithm.searching 0.000s PASS release32 std.algorithm.setops 0.000s PASS release32 std.algorithm.mutation 0.005s PASS release32 std.algorithm.sorting 0.000s PASS release32 std.algorithm.comparison 0.001s PASS release32 std.algorithm.iteration 0.000s PASS release32 std.container 0.015s PASS release32 std.container.util 0.000s PASS release32 std.container.binaryheap 0.013s PASS release32 std.container.rbtree 0.000s PASS release32 std.container.array 0.000s PASS release32 std.container.slist 0.000s PASS release32 std.container.dlist 0.070s PASS release32 std.digest.md 0.017s PASS release32 std.digest.crc 0.079s PASS release32 std.digest.ripemd 0.814s PASS release32 std.digest.sha 0.137s PASS release32 std.digest.digest 0.000s PASS release32 std.experimental.logger.nulllogger ****** FAIL release32 std.experimental.logger.core std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/stdio.d(482): Cannot open file `/data/local/tmp/deleteme.dmd.unittest.pid5270-someFile.log' in mode `a' (Permission denied) ****** FAIL release32 std.experimental.logger.filelogger std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/stdio.d(482): Cannot open file `/data/local/tmp/deleteme.dmd.unittest.pid5270std.experimental.logger.filelogger.__unittes L132_1.tempLogFile' in mode `a' (Permission denied) ****** FAIL release32 std.experimental.logger.multilogger std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/stdio.d(482): Cannot open file `/data/local/tmp/deleteme.dmd.unittest.pid5270std.experimental.logger.multilogger._ unittestL142_3.log' in mode `w' (Permission denied) 0.000s PASS release32 std.net.curl 0.013s PASS release32 std.net.isemail ****** FAIL release32 std.range std.exception.ErrnoException /home/bert/ldc/runtime/phobos/std/stdio.d(482): Cannot open file `/data/local/tmp/test.std.range.line-7768.986ec1bd-25d8-4ff -8c11-e259307d5b03' in mode `w' (Permission denied) 0.001s PASS release32 std.range.primitives 0.000s PASS release32 std.range.interfaces 0.005s PASS release32 std.regex 0.000s PASS release32 std.regex.internal.ir 0.000s PASS release32 std.regex.internal.backtracking 0.007s PASS release32 std.regex.internal.generator 0.003s PASS release32 std.regex.internal.parser 0.417s PASS release32 std.regex.internal.tests 0.000s PASS release32 std.regex.internal.kickstart 0.000s PASS release32 std.internal.cstring 0.000s PASS release32 std.internal.scopebuffer 0.000s PASS release32 std.internal.math.biguintcore 0.000s PASS release32 std.internal.math.biguintnoasm 0.000s PASS release32 std.internal.math.errorfunction 0.000s PASS release32 std.internal.math.gammafunction ------------------- thanks!/data/user/0/com.tencent.tim/app_indicators/observer_p2<<<<
Dec 07 2018
On Friday, 7 December 2018 at 08:49:42 UTC, dangbinghoo wrote:On Sunday, 1 November 2015 at 05:44:04 UTC, Joakim wrote:Thanks, but I'm not really looking for test results these days, as this is a three year-old thread and most everything works. If you want to make sure everything works on your device, I recommend building the 64-bit test runners and running in the local directory for the Termux app, as shown here: https://wiki.dlang.org/Build_D_for_Android Append the `--testrunners` flag to the shown ldc-build-runtime 64-bit command to build the druntime and Phobos test runners. You can build them in Termux itself by installing the ldc, cmake, and ninja packages, then running the ldc-build-runtime command shown for linux. For AArch64, 4-5 Phobos modules will trip asserts when built natively because of a couple things still left to port: https://github.com/ldc-developers/ldc/issues/2153 https://github.com/dlang/phobos/pull/6790[...]android 6.0 64bit snapdragon 625 apk logcat: [...]
Dec 07 2018