Added a target to run the end to end test that runs with Bazel nightly.
PiperOrigin-RevId: 219193470
diff --git a/src/TulsiEndToEndTests/NightlyButtonsEndToEndTest.swift b/src/TulsiEndToEndTests/NightlyButtonsEndToEndTest.swift
new file mode 100644
index 0000000..e1fe0cf
--- /dev/null
+++ b/src/TulsiEndToEndTests/NightlyButtonsEndToEndTest.swift
@@ -0,0 +1,50 @@
+
+// Copyright 2016 The Tulsi Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+import XCTest
+@testable import BazelIntegrationTestCase
+@testable import TulsiEndToEndTestBase
+
+
+// End to end test that generates the Buttons project and runs its unit tests. This variation of the
+// test uses the nightly Bazel binary.
+class ButtonsNightlyEndToEndTest: TulsiEndToEndTest {
+ override func setUp() {
+ super.setUp()
+
+ if (!copyDataToFakeWorkspace("third_party/bazel_rules/rules_apple/examples/multi_platform/Buttons")) {
+ XCTFail("Failed to copy Buttons files to fake execroot.")
+ }
+
+ if (!copyDataToFakeWorkspace("third_party/tulsi/src/TulsiEndToEndTests/Resources")) {
+ XCTFail("Failed to copy Buttons tulsiproj to fake execroot.")
+ }
+ }
+
+ func testButtonsWithNightlyBazel() throws {
+ guard let nightlyBazelURL = fakeBazelWorkspace.nightlyBazelURL else {
+ XCTFail("Expected Bazel nightly URL.")
+ return
+ }
+ XCTAssert(fileManager.fileExists(atPath: nightlyBazelURL.path), "Bazel nightly is missing.")
+
+ bazelURL = nightlyBazelURL
+ let buttonsProjectPath = "third_party/tulsi/src/TulsiEndToEndTests/Resources/Buttons.tulsiproj"
+ let xcodeProjectURL = generateXcodeProject(tulsiProject: buttonsProjectPath,
+ config: "Buttons")
+ XCTAssert(fileManager.fileExists(atPath: xcodeProjectURL.path), "Xcode project was not generated.")
+ testXcodeProject(xcodeProjectURL, scheme: "ButtonsLogicTests")
+ }
+}