Add more targets for android branch parsing

Also added better test coverage for 64-bit target only.

BUG=chromium:1087154
TEST=`./run_tests`

Change-Id: I20f08e3d613e1254ad5a1b8cf4dbb7141d096f76
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/2217715
Commit-Queue: Morg <morg@chromium.org>
Tested-by: Morg <morg@chromium.org>
Auto-Submit: Morg <morg@chromium.org>
Reviewed-by: Junichi Uekawa <uekawa@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Satoshi Niwa <niwa@chromium.org>
diff --git a/service/packages.py b/service/packages.py
index d8ada13..c4b4115 100644
--- a/service/packages.py
+++ b/service/packages.py
@@ -753,9 +753,11 @@
     return None
   ebuild_path = portage_util.FindEbuildForBoardPackage(android_package, board)
   # We assume all targets pull from the same branch and that we always
-  # have an ARM_TARGET, ARM_USERDEBUG_TARGET, or an X86_64_USERDEBUG_TARGET.
+  # have at least one of the following targets.
   # TODO(crbug.com/1087167): Ensure this condition in PFQ to avoid CQ breakage.
-  targets = ['ARM_TARGET', 'ARM_USERDEBUG_TARGET', 'X86_64_USERDEBUG_TARGET']
+  targets = ['ARM_TARGET', 'ARM_USERDEBUG_TARGET', 'X86_USERDEBUG_TARGET',
+             'ARM64_TARGET', 'ARM64_USERDEBUG_TARGET', 'X86_64_TARGET',
+             'X86_64_USERDEBUG_TARGET']
   ebuild_content = osutils.SourceEnvironment(ebuild_path, targets)
   for target in targets:
     if target in ebuild_content:
diff --git a/service/packages_unittest.py b/service/packages_unittest.py
index fdfbcca..8a8be67 100644
--- a/service/packages_unittest.py
+++ b/service/packages_unittest.py
@@ -492,7 +492,7 @@
     self.PatchObject(portage_util, 'FindEbuildForBoardPackage',
                      return_value='chromeos-base/android-container-nyc')
     FakeEnvironment = {
-        'ARM_TARGET': '3-linux-target'
+        'ARM_TARGET': '3-linux-target',
     }
     self.PatchObject(osutils, 'SourceEnvironment',
                      return_value=FakeEnvironment)
@@ -515,6 +515,13 @@
     branch = packages.determine_android_branch(self.board)
     self.assertEqual(branch, '3')
 
+  def test_determine_android_branch_64bit_targets(self):
+    """Tests that a valid android branch is returned with only 64bit targets."""
+    self.PatchObject(osutils, 'SourceEnvironment',
+                     return_value={'ARM64_TARGET': '3-linux-target'})
+    branch = packages.determine_android_branch(self.board)
+    self.assertEqual(branch, '3')
+
   def test_determine_android_branch_when_not_present(self):
     """Tests that a None is returned for branch when android is not present."""
     package_result = ['chromeos-base/update_engine-0.0.3-r3408']