content/shell/android_linker_test/ contains an APK to verify that the Chromium linker works properly (in particular that RELRO sharing is working as expected).
There seems to be two ways to call this, but none of them works:
1) Using "test_runner.py linker" as described in [1], which fails
immediately because it cannot locate anything. It can be made to
work a little better with arguments, i.e.:
test_runner.py linker \
--output-dir=out/Release \
--test-apk=out/Release/apks/ChromiumTestLinker.apk
Unfortunately, this fails with a weird Python Type Error:
....
TypeError: GetTests() takes exactly 1 argument (2 given)
So let's assume some Python function/script is broken somewhere.
2) Using 'out/Release/bin/cjro,iu,_linker_test_apk__apk run'
(yes, it seems the _apk__apk suffix is an error in a BUILD.gn rule).
This actually runs, but ends up with a runtime Java assertion
failure, (see stack trace below).
It seems that's because the code in ChromiumLinkerTestActivity
never calls Linker.setTestRunnerClassNameForTesting() before
LibraryLoader.ensureInitialized().
This seems an error in the test setup itself, not in the Linker
though :-/
06-12 11:52:31.258 8224 8224 E AndroidRuntime: FATAL EXCEPTION: main
06-12 11:52:31.258 8224 8224 E AndroidRuntime: Process: org.chromium.chromium_linker_test_apk, PID: 8224
06-12 11:52:31.258 8224 8224 E AndroidRuntime: java.lang.AssertionError
06-12 11:52:31.258 8224 8224 E AndroidRuntime: at org.chromium.base.library_loader.Linker.assertForTesting(Linker.java:292)
06-12 11:52:31.258 8224 8224 E AndroidRuntime: at org.chromium.base.library_loader.Linker.runTestRunnerClassForTesting(Linker.java:417)
06-12 11:52:31.258 8224 8224 E AndroidRuntime: at org.chromium.base.library_loader.Linker.finishLibraryLoad(Linker.java:736)
06-12 11:52:31.258 8224 8224 E AndroidRuntime: at org.chromium.base.library_loader.LibraryLoader.loadAlreadyLocked(LibraryLoader.java:418)
06-12 11:52:31.258 8224 8224 E AndroidRuntime: at org.chromium.base.library_loader.LibraryLoader.ensureInitialized(LibraryLoader.java:143)
06-12 11:52:31.258 8224 8224 E AndroidRuntime: at org.chromium.chromium_linker_test_apk.ChromiumLinkerTestActivity.onCreate(ChromiumLinkerTestActivity.java:86)
Comment 1 by bugdroid1@chromium.org
, Jun 12 2018