New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 857001 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 3
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

java.lang.IllegalArgumentException: Ambiguous arguments when running run_chrome_public_test_apk

Project Member Reported by fhorschig@chromium.org, Jun 27 2018

Issue description

When building origin/master right now, Android test can be compiled but not run using the wrapper scripts. When run, it just throws this error and fails:
Unexpected output while listing tests:
  Fatal exception when running tests
  java.lang.IllegalArgumentException: Ambiguous argument

 
Failing command:
ninja -C out/Debug  -j2000 -l20 chrome_public_test_apk_incremental && out/Debug/bin/run_chrome_public_test_apk_incremental
(Full log is attached)

gn args out/Debug: 
target_os = "android"
is_debug = false
is_java_debug = true
use_goma = true
is_component_build = true
remove_webcore_debug_symbols = true
is_clang = true
symbol_level = 1  # Faster build with fewer symbols. -g1 rather than -g2
enable_incremental_javac = true  # Much faster; experimental
disable_incremental_isolated_processes=true
use_lld = true
use_signing_keys = true
(Also reproducible for x86, is_debug=true, is_component_build=false)


Stack trace:
Unexpected output while listing tests:
  Fatal exception when running tests
  java.lang.IllegalArgumentException: Ambiguous arguments: cannot provide both test package and test class(es) to run
      at android.support.test.internal.runner.TestRequestBuilder.validate(TestRequestBuilder.java:773)
      at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:742)
      at org.chromium.base.test.BaseChromiumAndroidJUnitRunner$IncrementalInstallTestRequestBuilder.build(BaseChromiumAndroidJUnitRunner.java:225)
      at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.createListTestRequest(BaseChromiumAndroidJUnitRunner.java:186)
      at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.listTests(BaseChromiumAndroidJUnitRunner.java:152)
      at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.onStart(BaseChromiumAndroidJUnitRunner.java:113)
      at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:2075)
  

 
adb_test.log
123 KB View Download
Description: Show this description
Description: Show this description
Could be reproduced in a second checkout.

It does compile and ran with only:
target_os = "android"
use_goma = true
Components: -Infra Infra>Client>Chrome
Passing this to CCI for a first pass --- please recomponentize/reassign as needed, thanks!
Owner: jbudorick@chromium.org
Status: Started (was: Untriaged)
We rolled to the P DP3 SDK overnight; I wouldn't be surprised if this is related to that.
er, this is due to the mockito upgrade. https://codesearch.chromium.org/chromium/src/build/android/pylib/local/device/local_device_instrumentation_test_run.py?rcl=b09ef22f0fcaec3e92f63147f0b08a0e44a5f7ae&l=664 conflicts w/ some of what we do for incremental tests. using a non-experimental build should work in the meantime.
Project Member

Comment 7 by bugdroid1@chromium.org, Jun 28 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/997af6acbfc5a9e47476554a97ace2fe16bc67a1

commit 997af6acbfc5a9e47476554a97ace2fe16bc67a1
Author: John Budorick <jbudorick@chromium.org>
Date: Thu Jun 28 04:36:28 2018

android: Fix how incremental tests exclude net.bytebuddy from test discovery.

Bug:  857001 
Change-Id: I89c070724cb540f2ea37fe1c34bfee27f2977549
Reviewed-on: https://chromium-review.googlesource.com/1117648
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: John Budorick <jbudorick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571027}
[modify] https://crrev.com/997af6acbfc5a9e47476554a97ace2fe16bc67a1/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java

This class seems to continue causing (now slightly different) problems on my nougat emulator. Some more stack traces: (btw: no incremental build, just target_os, x86 and use_goma)

06-28 13:16:52.210 14481-14496/org.chromium.chrome I/TestRequestBuilder: Scanning classpath to find tests in apks [/data/app/org.chromium.chrome.tests-1/base.apk]
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art: Rejecting re-init on previously-failed class java.lang.Class<net.bytebuddy.agent.builder.ResettableClassFileTransformer>: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/instrument/ClassFileTransformer;
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class java.lang.Class.classForName!(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:400)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class android.support.test.internal.runner.TestLoader.doLoadClass(java.lang.String) (TestLoader.java:92)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class android.support.test.internal.runner.TestLoader.loadIfTest(java.lang.String) (TestLoader.java:113)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void android.support.test.internal.runner.TestRequestBuilder.loadClassesFromClassPath(android.support.test.internal.runner.TestLoader, java.util.Set) (TestRequestBuilder.java:801)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at android.support.test.internal.runner.TestRequest android.support.test.internal.runner.TestRequestBuilder.build() (TestRequestBuilder.java:747)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at android.support.test.internal.runner.TestRequest org.chromium.base.test.BaseChromiumAndroidJUnitRunner$IncrementalInstallTestRequestBuilder.build() (BaseChromiumAndroidJUnitRunner.java:236)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at android.support.test.internal.runner.TestRequest org.chromium.base.test.BaseChromiumAndroidJUnitRunner.createListTestRequest(android.os.Bundle) (BaseChromiumAndroidJUnitRunner.java:189)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void org.chromium.base.test.BaseChromiumAndroidJUnitRunner.listTests() (BaseChromiumAndroidJUnitRunner.java:155)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void org.chromium.base.test.BaseChromiumAndroidJUnitRunner.onStart() (BaseChromiumAndroidJUnitRunner.java:116)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void android.app.Instrumentation$InstrumentationThread.run() (Instrumentation.java:1932)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.instrument.ClassFileTransformer" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/org.chromium.chrome.tests-1/base.apk", zip file "/data/app/org.chromium.chrome-1/base.apk"],nativeLibraryDirectories=[/data/app/org.chromium.chrome.tests-1/lib/x86, /data/app/org.chromium.chrome-1/lib/x86, /data/app/org.chromium.chrome.tests-1/base.apk!/lib/x86, /data/app/org.chromium.chrome-1/base.apk!/lib/x86, /system/lib, /vendor/lib]]
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class java.lang.Class.classForName!(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:-2)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader) (Class.java:400)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class android.support.test.internal.runner.TestLoader.doLoadClass(java.lang.String) (TestLoader.java:92)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at java.lang.Class android.support.test.internal.runner.TestLoader.loadIfTest(java.lang.String) (TestLoader.java:113)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void android.support.test.internal.runner.TestRequestBuilder.loadClassesFromClassPath(android.support.test.internal.runner.TestLoader, java.util.Set) (TestRequestBuilder.java:801)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at android.support.test.internal.runner.TestRequest android.support.test.internal.runner.TestRequestBuilder.build() (TestRequestBuilder.java:747)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at android.support.test.internal.runner.TestRequest org.chromium.base.test.BaseChromiumAndroidJUnitRunner$IncrementalInstallTestRequestBuilder.build() (BaseChromiumAndroidJUnitRunner.java:236)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at android.support.test.internal.runner.TestRequest org.chromium.base.test.BaseChromiumAndroidJUnitRunner.createListTestRequest(android.os.Bundle) (BaseChromiumAndroidJUnitRunner.java:189)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void org.chromium.base.test.BaseChromiumAndroidJUnitRunner.listTests() (BaseChromiumAndroidJUnitRunner.java:155)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void org.chromium.base.test.BaseChromiumAndroidJUnitRunner.onStart() (BaseChromiumAndroidJUnitRunner.java:116)
06-28 13:16:52.378 14481-14496/org.chromium.chrome I/art:     at void android.app.Instrumentation$InstrumentationThread.run() (Instrumentation.java:1932)
06-28 13:16:52.379 14481-14496/org.chromium.chrome E/AndroidRuntime: FATAL EXCEPTION: Instr: org.chromium.base.test.BaseChromiumAndroidJUnitRunner
                                                                     Process: org.chromium.chrome, PID: 14481
                                                                     java.lang.NoClassDefFoundError: Failed resolution of: Ljava/lang/instrument/ClassFileTransformer;
                                                                         at java.lang.Class.classForName(Native Method)
                                                                         at java.lang.Class.forName(Class.java:400)
                                                                         at android.support.test.internal.runner.TestLoader.doLoadClass(TestLoader.java:92)
                                                                         at android.support.test.internal.runner.TestLoader.loadIfTest(TestLoader.java:113)
                                                                         at android.support.test.internal.runner.TestRequestBuilder.loadClassesFromClassPath(TestRequestBuilder.java:801)
                                                                         at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:747)
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner$IncrementalInstallTestRequestBuilder.build(BaseChromiumAndroidJUnitRunner.java:236)
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.createListTestRequest(BaseChromiumAndroidJUnitRunner.java:189)
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.listTests(BaseChromiumAndroidJUnitRunner.java:155)
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.onStart(BaseChromiumAndroidJUnitRunner.java:116)
                                                                         at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1932)
                                                                      Caused by: java.lang.ClassNotFoundException: Didn't find class "java.lang.instrument.ClassFileTransformer" on path: DexPathList[[zip file "/system/framework/android.test.runner.jar", zip file "/data/app/org.chromium.chrome.tests-1/base.apk", zip file "/data/app/org.chromium.chrome-1/base.apk"],nativeLibraryDirectories=[/data/app/org.chromium.chrome.tests-1/lib/x86, /data/app/org.chromium.chrome-1/lib/x86, /data/app/org.chromium.chrome.tests-1/base.apk!/lib/x86, /data/app/org.chromium.chrome-1/base.apk!/lib/x86, /system/lib, /vendor/lib]]
                                                                         at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                         at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
                                                                         at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
                                                                         at java.lang.Class.classForName(Native Method) 
                                                                         at java.lang.Class.forName(Class.java:400) 
                                                                         at android.support.test.internal.runner.TestLoader.doLoadClass(TestLoader.java:92) 
                                                                         at android.support.test.internal.runner.TestLoader.loadIfTest(TestLoader.java:113) 
                                                                         at android.support.test.internal.runner.TestRequestBuilder.loadClassesFromClassPath(TestRequestBuilder.java:801) 
                                                                         at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:747) 
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner$IncrementalInstallTestRequestBuilder.build(BaseChromiumAndroidJUnitRunner.java:236) 
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.createListTestRequest(BaseChromiumAndroidJUnitRunner.java:189) 
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.listTests(BaseChromiumAndroidJUnitRunner.java:155) 
                                                                         at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.onStart(BaseChromiumAndroidJUnitRunner.java:116) 
                                                                         at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1932) 
(The weird thing is, that the build seems to work exactly once: when I uninstall every chrome-related package and clean all of my out directory for a complete build. I am quite frustrated with this behavior. Applies to my device and all emulators.)
Cc: mdjones@chromium.org charliema@chromium.org
 Issue 859609  has been merged into this issue.
Project Member

Comment 11 by bugdroid1@chromium.org, Jul 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/488c85dd065c8d5b8ab7b11a86f8ea37066c4ef8

commit 488c85dd065c8d5b8ab7b11a86f8ea37066c4ef8
Author: John Budorick <jbudorick@chromium.org>
Date: Tue Jul 03 03:10:55 2018

android: Don't remove notPackage from test runner args.

Bug:  857001 
Change-Id: I24219576e71cf636da916ed5119c32c37d5e5394
Reviewed-on: https://chromium-review.googlesource.com/1123268
Commit-Queue: agrieve <agrieve@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572096}
[modify] https://crrev.com/488c85dd065c8d5b8ab7b11a86f8ea37066c4ef8/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java

Project Member

Comment 12 by bugdroid1@chromium.org, Aug 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b185fe6b924c2dfd141625767cf413c53b83aa66

commit b185fe6b924c2dfd141625767cf413c53b83aa66
Author: Andrew Grieve <agrieve@chromium.org>
Date: Thu Aug 02 04:59:13 2018

Fix incremental install tests not being able to list tests

Bug:  857001 
Change-Id: Id4eebe86e34e30edfda8fa5825ceb1e3e303dd95
Reviewed-on: https://chromium-review.googlesource.com/1148929
Reviewed-by: John Budorick <jbudorick@chromium.org>
Reviewed-by: agrieve <agrieve@chromium.org>
Commit-Queue: agrieve <agrieve@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580071}
[modify] https://crrev.com/b185fe6b924c2dfd141625767cf413c53b83aa66/base/test/android/javatests/src/org/chromium/base/test/BaseChromiumAndroidJUnitRunner.java

Status: Fixed (was: Started)
Owner: agrieve@chromium.org

Sign in to add a comment