List files on missing APKs in run_on_as_app.py
Bug: 130343699
Change-Id: I2ae1c1a873dc28a6b1adc60ded4e3d32b93f069b
diff --git a/tools/as_utils.py b/tools/as_utils.py
index 83d0d15..fa81ac4 100644
--- a/tools/as_utils.py
+++ b/tools/as_utils.py
@@ -121,6 +121,15 @@
or 'transformClassesWithDexBuilderFor' in x
or 'transformDexArchiveWithDexMergerFor' in x)
+def ListFiles(directory, predicate=None):
+ files = []
+ for root, directories, filenames in os.walk(directory):
+ for filename in filenames:
+ file = os.path.join(root, filename)
+ if predicate is None or predicate(file):
+ files.append(file)
+ return files
+
def SetPrintConfigurationDirective(app, checkout_dir, destination):
proguard_config_file = FindProguardConfigurationFile(app, checkout_dir)
with open(proguard_config_file) as f:
diff --git a/tools/run_on_as_app.py b/tools/run_on_as_app.py
index 23d790a..9ef28a8 100755
--- a/tools/run_on_as_app.py
+++ b/tools/run_on_as_app.py
@@ -642,8 +642,8 @@
else apk_base_name + '.apk')
unsigned_apk_name = apk_base_name + '-unsigned.apk'
- build_dir = app.build_dir
- build_output_apks = os.path.join(app.module, build_dir, 'outputs', 'apk')
+ build_dir = os.path.join(app.module, app.build_dir)
+ build_output_apks = os.path.join(build_dir, 'outputs', 'apk')
if app.flavor:
build_output_apks = os.path.join(build_output_apks, app.flavor, 'release')
else:
@@ -652,6 +652,12 @@
signed_apk = os.path.join(build_output_apks, signed_apk_name)
unsigned_apk = os.path.join(build_output_apks, unsigned_apk_name)
+ assert os.path.isfile(signed_apk) or os.path.isfile(unsigned_apk), (
+ "Expected a file to be present at {} or {}, found: {}".format(
+ signed_apk, unsigned_apk,
+ ', '.join(
+ as_utils.ListFiles(build_dir, lambda x : x.endswith('.apk')))))
+
if options.sign_apks and not os.path.isfile(signed_apk):
assert os.path.isfile(unsigned_apk)
if options.sign_apks: