| # Copyright 2018 The Bazel 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 unittest |
| |
| from common import BazelKotlinTestCase |
| |
| |
| class TestRules(BazelKotlinTestCase): |
| def setUp(self): |
| self._pkg = "tests/smoke" |
| |
| def test_merge_resource_jar(self): |
| jar = self.buildJarGetZipFile("test_merge_resourcesjar", "jar") |
| self.assertJarContains(jar, "testresources/AClass.class", "testresources/BClass.class") |
| self.assertJarContains(jar, "pkg/file.txt") |
| |
| def test_embed_resources(self): |
| jar = self.buildJarGetZipFile("test_embed_resources", "jar") |
| self.assertJarContains(jar, "testresources/AClass.class", "testresources/BClass.class") |
| self.assertJarContains(jar, "tests/smoke/testresources/resources/one/two/aFile.txt", "tests/smoke/testresources/resources/one/alsoAFile.txt") |
| |
| def test_embed_resources_strip_prefix(self): |
| jar = self.buildJarGetZipFile("test_embed_resources_strip_prefix", "jar") |
| self.assertJarContains(jar, "testresources/AClass.class", "testresources/BClass.class") |
| self.assertJarContains(jar, "one/two/aFile.txt", "one/alsoAFile.txt") |
| |
| def test_test_targets_launch_correctly(self): |
| self.buildLaunchExpectingSuccess("junittest", command="test") |
| |
| def test_bin_targets_launch_correctly_with_data(self): |
| self.buildLaunchExpectingSuccess("helloworld") |
| |
| def test_conventional_strip_resources(self): |
| jar = self.buildJarGetZipFile("conventional_strip_resources", "jar") |
| self.assertJarContains(jar, "main.txt", "test.txt") |
| |
| def test_export_ct_propagation(self): |
| self.buildJar("propagation_ct_consumer") |
| |
| def test_export_ct_propagation_fail_on_runtime(self): |
| self.buildJarExpectingFail("propagation_ct_consumer_fail_on_runtime") |
| |
| def test_export_rt_propagation(self): |
| self.buildLaunchExpectingSuccess("propagation_rt_via_export_consumer") |
| |
| def test_export_rt_propagation_via_dep(self): |
| self.buildLaunchExpectingSuccess("propagation_rt_via_runtime_deps_consumer") |
| |
| def test_mixed_mode_compilation(self): |
| jar = self.buildJarGetZipFile("hellojava", "jar") |
| self.assertJarContains( |
| jar, |
| "hellojava/HelloWorldJava.class", |
| "hellojava/MessageHolderKotlin.class", |
| "hellojava/MessageHolder.class", |
| "hellojava/HelloWorldKt.class" |
| ) |
| |
| def test_mixed_mode_compilation_with_merge(self): |
| jar = self.buildJarGetZipFile("hellojava_withmerge", "jar") |
| self.assertJarContains( |
| jar, |
| "hellojava/HelloWorldJava.class", |
| "hellojava/MessageHolderKotlin.class", |
| "hellojava/MessageHolder.class", |
| "hellojava/HelloWorldKt.class", |
| "tests/smoke/resourcejar/pkg/file.txt" |
| ) |
| # re-enable this test, and ensure the srcjar includes java sources when mixed mode. |
| # def test_srcjar(self): |
| # jar = self.buildJarGetZipFile("testresources", "srcjar") |
| # self.assertJarContains(jar, "testresources/AClass.kttestresources/ConsumerLib.kt") |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |