From dd7ff641f3face54cbb2d2db05629d1cac4efac7 Mon Sep 17 00:00:00 2001 From: Sascha Bischoff Date: Thu, 15 Mar 2018 16:35:45 +0000 Subject: [PATCH] fw/workload: Fix installed apk info Fix an issue where AndroidWorkload.pull_apk would sometimes get the wrong package if the desired package name is a substring of another package name. Rather than using a regex to match the package name, use the new get_package_info method to match the name exactly. --- wa/framework/workload.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/wa/framework/workload.py b/wa/framework/workload.py index 84182c2c..b11181cd 100644 --- a/wa/framework/workload.py +++ b/wa/framework/workload.py @@ -780,9 +780,8 @@ class PackageHandler(object): if not self.target.package_is_installed(package): message = 'Cannot retrieve "{}" as not installed on Target' raise WorkloadError(message.format(package)) - package_info = self.target.execute('pm list packages -f {}'.format(package)) - apk_path = re.match('package:(.*)={}'.format(package), package_info).group(1) - self.target.pull(apk_path, self.owner.dependencies_directory) + package_info = self.target.get_package_info(package) + self.target.pull(package_info.apk_path, self.owner.dependencies_directory) def teardown(self): self.target.execute('am force-stop {}'.format(self.apk_info.package))