Update tulsi so that it works with {platform}_{unit,ui}_test rules.

PiperOrigin-RevId: 245942523
diff --git a/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl b/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl
index 8aff559..8f995db 100644
--- a/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl
+++ b/src/TulsiGenerator/Bazel/tulsi/tulsi_aspects.bzl
@@ -54,7 +54,6 @@
     "srcs",  # To propagate down onto rules which generate source files.
     "tests",  # for test_suite when the --noexpand_test_suites flag is used.
     "_implicit_tests",  # test_suites without a `tests` attr have an '$implicit_tests' attr instead.
-    "test_bundle",
     "test_host",
     "additional_contents",  # macos_application can specify a dict with supported rules as keys.
     # Special attribute name which serves as an escape hatch intended for custom
@@ -738,7 +737,6 @@
         datamodels = datamodels,
         supporting_files = supporting_files,
         test_host = _get_label_attr(rule_attr, "test_host.label"),
-        test_bundle = _get_label_attr(rule_attr, "test_bundle.label"),
     )
 
     # Inheritable attributes are pulled up through dependencies of type 'binary'
diff --git a/src/TulsiGenerator/RuleEntry.swift b/src/TulsiGenerator/RuleEntry.swift
index 6f3c229..9918a24 100644
--- a/src/TulsiGenerator/RuleEntry.swift
+++ b/src/TulsiGenerator/RuleEntry.swift
@@ -165,10 +165,7 @@
     // handling in the generated Xcode project. For example, asset_catalog, storyboard, and xibs
     // attributes all end up as supporting_files.
     case supporting_files
-    // For the apple_unit_test and apple_ui_test rules, contains a label reference to the .xctest
-    // bundle packaging target.
-    case test_bundle
-    // For the apple_unit_test and apple_ui_test rules, contains a label reference to the
+    // For the {platform}_unit_test and {platform}_ui_test rules, contains a label reference to the
     // ios_application target to be used as the test host when running the tests.
     case test_host
   }
diff --git a/src/TulsiGeneratorIntegrationTests/AspectTests.swift b/src/TulsiGeneratorIntegrationTests/AspectTests.swift
index d2deb1c..735dfc3 100644
--- a/src/TulsiGeneratorIntegrationTests/AspectTests.swift
+++ b/src/TulsiGeneratorIntegrationTests/AspectTests.swift
@@ -114,10 +114,6 @@
         .hasTestHost("//tulsi_test:Application")
         .hasDeploymentTarget(DeploymentTarget(platform: .ios, osVersion: "10.0"))
         .dependsOn("//tulsi_test:Application")
-        .dependsOn("//tulsi_test:XCTest_test_bundle")
-
-    checker.assertThat("//tulsi_test:XCTest_test_bundle")
-        .dependsOn("//tulsi_test:Application")
         .dependsOn("//tulsi_test:TestLibrary")
   }
 
@@ -308,10 +304,6 @@
     checker.assertThat("//tulsi_test:XCTest")
         .hasTestHost("//tulsi_test:Application")
         .dependsOn("//tulsi_test:Application")
-        .dependsOn("//tulsi_test:XCTest_test_bundle")
-
-    checker.assertThat("//tulsi_test:XCTest_test_bundle")
-        .dependsOn("//tulsi_test:Application")
         .dependsOn("//tulsi_test:XCTest_test_binary")
 
     checker.assertThat("//tulsi_test:XCTest_test_binary")
@@ -340,7 +332,8 @@
         .hasTestHost("//tulsi_test:Application")
         .hasDeploymentTarget(DeploymentTarget(platform: .ios, osVersion: "10.0"))
         .dependsOn("//tulsi_test:Application")
-        .dependsOn("//tulsi_test:XCTest_test_bundle")
+        .dependsOn("//tulsi_test:Library")
+        .dependsOn("//tulsi_test:TestLibrary")
 
     checker.assertThat("//tulsi_test:ApplicationLibrary")
         .dependsOn("//tulsi_test:CoreDataResources")
@@ -348,11 +341,6 @@
         .dependsOn("//tulsi_test:ObjCFramework")
         .dependsOn("//tulsi_test:SrcGenerator")
 
-    checker.assertThat("//tulsi_test:XCTest_test_bundle")
-        .dependsOn("//tulsi_test:Application")
-        .dependsOn("//tulsi_test:Library")
-        .dependsOn("//tulsi_test:TestLibrary")
-
     checker.assertThat("//tulsi_test:Library")
         .hasSources(["tulsi_test/LibrarySources/srcs/src1.m",
                      "tulsi_test/LibrarySources/srcs/src2.m",
diff --git a/src/TulsiGeneratorIntegrationTests/EndToEndGenerationTests.swift b/src/TulsiGeneratorIntegrationTests/EndToEndGenerationTests.swift
index 9e37474..b91bf39 100644
--- a/src/TulsiGeneratorIntegrationTests/EndToEndGenerationTests.swift
+++ b/src/TulsiGeneratorIntegrationTests/EndToEndGenerationTests.swift
@@ -41,7 +41,7 @@
                                  type: "ios_application",
                                  linkedTargetLabels: []),
                         RuleInfo(label: BuildLabel("//\(testDir):XCTest"),
-                                 type: "apple_unit_test",
+                                 type: "ios_unit_test",
                                  linkedTargetLabels: hostLabels)]
     let additionalFilePaths = ["\(testDir)/BUILD"]
 
@@ -187,7 +187,7 @@
                                  type: "ios_application",
                                  linkedTargetLabels: []),
                         RuleInfo(label: BuildLabel("//\(testDir):XCTest"),
-                                 type: "apple_unit_test",
+                                 type: "ios_unit_test",
                                  linkedTargetLabels: hostLabels)]
     let additionalFilePaths = ["\(testDir)/BUILD"]
 
@@ -324,13 +324,13 @@
     let uiTestsLabel = BuildLabel("//\(testDir):UITests")
     let hostLabels = Set<BuildLabel>([appLabel])
     let buildTargets = [RuleInfo(label: unitTestsLabel,
-                                 type: "apple_unit_test",
+                                 type: "macos_unit_test",
                                  linkedTargetLabels: hostLabels),
                         RuleInfo(label: unitTestsNoHostLabel,
-                                 type: "apple_unit_test",
+                                 type: "macos_unit_test",
                                  linkedTargetLabels: []),
                         RuleInfo(label: uiTestsLabel,
-                                 type: "apple_ui_test",
+                                 type: "macos_ui_test",
                                  linkedTargetLabels: hostLabels)]
     let additionalFilePaths = ["\(testDir)/BUILD"]
 
diff --git a/src/TulsiGeneratorIntegrationTests/QueryTests.swift b/src/TulsiGeneratorIntegrationTests/QueryTests.swift
index 8fef8eb..9e9acb3 100644
--- a/src/TulsiGeneratorIntegrationTests/QueryTests.swift
+++ b/src/TulsiGeneratorIntegrationTests/QueryTests.swift
@@ -61,7 +61,7 @@
       .hasNoDependencies()
 
     checker.assertThat("//tulsi_test:XCTest")
-        .hasType("apple_unit_test")
+        .hasType("ios_unit_test")
         .hasExactlyOneLinkedTargetLabel(BuildLabel("//tulsi_test:Application"))
         .hasNoDependencies()
 
@@ -154,7 +154,7 @@
         .hasNoDependencies()
 
     checker.assertThat("//tulsi_complex_test:XCTest")
-        .hasType("apple_unit_test")
+        .hasType("ios_unit_test")
         .hasExactlyOneLinkedTargetLabel(BuildLabel("//tulsi_complex_test:Application"))
         .hasNoDependencies()
   }
diff --git a/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift b/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift
index d4c1b4b..7ffaf03 100644
--- a/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift
+++ b/src/TulsiGeneratorTests/PBXTargetGeneratorTests.swift
@@ -405,7 +405,7 @@
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithNoSourcesAndSkylarkUnitTest() {
-    checkGenerateTargetsForLinkedRuleEntriesWithNoSources("apple_unit_test",
+    checkGenerateTargetsForLinkedRuleEntriesWithNoSources("ios_unit_test",
                                                           testProductType: .UnitTest,
                                                           testHostAttributeName: "test_host")
   }
@@ -522,7 +522,7 @@
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithNoSourcesAndSkylarkUITest() {
-    let testRuleType = "apple_ui_test"
+    let testRuleType = "ios_ui_test"
     let testHostAttributeName = "test_host"
     let rule1BuildPath = "test/app"
     let rule1TargetName = "TestApplication"
@@ -632,7 +632,7 @@
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithNoSourcesMacOSUnitTests() {
-    let testRuleType = "apple_unit_test"
+    let testRuleType = "ios_unit_test"
     let testHostAttributeName = "test_host"
     let rule1BuildPath = "test/app"
     let rule1TargetName = "TestApplication"
@@ -748,7 +748,7 @@
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithNoSourcesMacOSUITests() {
-    let testRuleType = "apple_ui_test"
+    let testRuleType = "ios_ui_test"
     let testHostAttributeName = "test_host"
     let rule1BuildPath = "test/app"
     let rule1TargetName = "TestApplication"
@@ -863,7 +863,7 @@
   }
 
   func testGenerateTargetWithNoSourcesNoHostMacOSUnitTests() {
-    let testRuleType = "apple_unit_test"
+    let testRuleType = "ios_unit_test"
     let rule1BuildPath = "test/testbundle"
     let rule1TargetName = "TestBundle"
     let rule1BuildTarget = "\(rule1BuildPath):\(rule1TargetName)"
@@ -929,7 +929,7 @@
   }
 
   func testGenerateTargetWithSourcesNoHostMacOSUnitTests() {
-    let testRuleType = "apple_unit_test"
+    let testRuleType = "ios_unit_test"
     let rule1BuildPath = "test/testbundle"
     let rule1TargetName = "TestBundle"
     let rule1BuildTarget = "\(rule1BuildPath):\(rule1TargetName)"
@@ -999,7 +999,7 @@
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithSourcesWithSkylarkUnitTest() {
-    checkGenerateTargetsForLinkedRuleEntriesWithSources("apple_unit_test",
+    checkGenerateTargetsForLinkedRuleEntriesWithSources("ios_unit_test",
                                                         testProductType: .UnitTest,
                                                         testHostAttributeName: "test_host")
   }
@@ -1119,29 +1119,24 @@
 
   func testGenerateTestTargetWithObjectiveCSources() {
     let testRuleTargetName = "Tests"
-    let testRuleType = "apple_unit_test"
+    let testRuleType = "ios_unit_test"
     let testHostTargetName = "App"
     let testRulePackage = "test/app"
     let testSources = ["test/app/Tests.m"]
     let objcLibraryRuleEntry = makeTestRuleEntry("\(testRulePackage):ObjcLib",
       type: "objc_library",
       sourceFiles: testSources)
-    let testBundleRuleEntry = makeTestRuleEntry("\(testRulePackage):Tests_test_bundle",
-      type: "ios_test_bundle",
-      dependencies: Set([BuildLabel(objcLibraryRuleEntry.label.value)]))
     let testHostRuleEntry = makeTestRuleEntry("\(testRulePackage):\(testHostTargetName)",
       type: "ios_application", productType: .Application)
     let testRuleEntry = makeTestRuleEntry("\(testRulePackage):\(testRuleTargetName)",
       type: "\(testRuleType)",
-      attributes: ["test_bundle": testBundleRuleEntry.label.value as AnyObject,
-                   "test_host": testHostRuleEntry.label.value as AnyObject],
+      attributes: ["test_host": testHostRuleEntry.label.value as AnyObject],
       sourceFiles: testSources,
       productType: .UnitTest,
       platformType: "ios",
       osDeploymentTarget: "8.0")
 
     let ruleEntryMap = makeRuleEntryMap(withRuleEntries: [objcLibraryRuleEntry,
-                                                          testBundleRuleEntry,
                                                           testHostRuleEntry,
                                                           testRuleEntry])
 
@@ -1201,22 +1196,18 @@
 
   func testGenerateTestTargetWithSwiftSources() {
     let testRuleTargetName = "Tests"
-    let testRuleType = "apple_unit_test"
+    let testRuleType = "ios_unit_test"
     let testHostTargetName = "App"
     let testRulePackage = "test/app"
     let testSources = ["test/app/Tests.swift"]
     let swiftLibraryRuleEntry = makeTestRuleEntry("\(testRulePackage):SwiftLib",
                                                   type: "swift_library",
                                                   sourceFiles: testSources)
-    let testBundleRuleEntry = makeTestRuleEntry("\(testRulePackage):Tests_test_bundle",
-                                                type: "ios_test_bundle",
-                                                dependencies: Set([BuildLabel(swiftLibraryRuleEntry.label.value)]))
     let testHostRuleEntry = makeTestRuleEntry("\(testRulePackage):\(testHostTargetName)",
                                               type: "ios_application", productType: .Application)
     let testRuleEntry = makeTestRuleEntry("\(testRulePackage):\(testRuleTargetName)",
                                           type: "\(testRuleType)",
                                           attributes: ["has_swift_dependency": true as AnyObject,
-                                                       "test_bundle": testBundleRuleEntry.label.value as AnyObject,
                                                        "test_host": testHostRuleEntry.label.value as AnyObject],
                                           sourceFiles: testSources,
                                           productType: .UnitTest,
@@ -1224,7 +1215,6 @@
                                           osDeploymentTarget: "8.0")
 
     let ruleEntryMap = makeRuleEntryMap(withRuleEntries: [swiftLibraryRuleEntry,
-                                                          testBundleRuleEntry,
                                                           testHostRuleEntry,
                                                           testRuleEntry])
 
@@ -1291,7 +1281,7 @@
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithSourcesWithSkylarkUITest() {
-    let testRuleType = "apple_ui_test"
+    let testRuleType = "ios_ui_test"
     let testProductType = PBXTarget.ProductType.UIUnitTest
     let testHostAttributeName = "test_host"
     let rule1BuildPath = "test/app"
@@ -1405,12 +1395,12 @@
 
   func testGenerateTargetsForLinkedRuleEntriesWithSameTestHostNameInDifferentPackagesWithSkylarkUnitTest() {
     checkGenerateTargetsForLinkedRuleEntriesWithSameTestHostNameInDifferentPackages(
-      "apple_unit_test", testProductType: .UnitTest, testHostAttributeName: "test_host")
+      "ios_unit_test", testProductType: .UnitTest, testHostAttributeName: "test_host")
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithSameTestHostNameInDifferentPackagesWithSkylarkUITest() {
     checkGenerateTargetsForLinkedRuleEntriesWithSameTestHostNameInDifferentPackages(
-      "apple_ui_test", testProductType: .UIUnitTest, testHostAttributeName: "test_host")
+      "ios_ui_test", testProductType: .UIUnitTest, testHostAttributeName: "test_host")
   }
 
   func checkGenerateTargetsForLinkedRuleEntriesWithSameTestHostNameInDifferentPackages(
@@ -1453,12 +1443,12 @@
 
   func testGenerateTargetsForLinkedRuleEntriesWithoutIncludingTheHostWarnsWithSkylarkUnitTest() {
     checkGenerateTargetsForLinkedRuleEntriesWithoutIncludingTheHostWarns(
-        "apple_unit_test", testHostAttributeName: "test_host")
+        "ios_unit_test", testHostAttributeName: "test_host")
   }
 
   func testGenerateTargetsForLinkedRuleEntriesWithoutIncludingTheHostWarnsWithSkylarkUITest() {
     checkGenerateTargetsForLinkedRuleEntriesWithoutIncludingTheHostWarns(
-        "apple_ui_test", testHostAttributeName: "test_host")
+        "ios_ui_test", testHostAttributeName: "test_host")
   }
 
   func checkGenerateTargetsForLinkedRuleEntriesWithoutIncludingTheHostWarns(
diff --git a/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift b/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift
index 48d6958..0a5ed2d 100644
--- a/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift
+++ b/src/TulsiGeneratorTests/XcodeProjectGeneratorTests.swift
@@ -179,13 +179,13 @@
   }
 
   func testTestSuiteSchemeGenerationWithSkylarkUnitTest() {
-    checkTestSuiteSchemeGeneration("apple_unit_test",
+    checkTestSuiteSchemeGeneration("ios_unit_test",
                                    testProductType: .UnitTest,
                                    testHostAttributeName: "test_host")
   }
 
   func testTestSuiteSchemeGenerationWithSkylarkUITest() {
-    checkTestSuiteSchemeGeneration("apple_ui_test",
+    checkTestSuiteSchemeGeneration("ios_ui_test",
                                    testProductType: .UIUnitTest,
                                    testHostAttributeName: "test_host")
   }