From 667acd9439bd0b572e2f66c0fd0ce7441e968703 Mon Sep 17 00:00:00 2001 From: Ittai Zeidman Date: Sun, 19 Jan 2020 15:14:03 +0200 Subject: [PATCH 1/4] exposing java jar to BEP from all binary rules added a passing e2e for java jar of scala library for symmetry --- scala/private/phases/phase_final.bzl | 4 ++-- test/BUILD | 27 +++++++++++++++++++++++++ test/shell/test_build_event_protocol.sh | 25 +++++++++++++++++++++-- 3 files changed, 52 insertions(+), 4 deletions(-) diff --git a/scala/private/phases/phase_final.bzl b/scala/private/phases/phase_final.bzl index 1fdb9514a..e5fe00db8 100644 --- a/scala/private/phases/phase_final.bzl +++ b/scala/private/phases/phase_final.bzl @@ -6,7 +6,7 @@ def phase_binary_final(ctx, p): defaultInfo = DefaultInfo( executable = p.declare_executable, - files = depset([p.declare_executable, ctx.outputs.jar]), + files = depset([p.declare_executable] + p.compile.full_jars), runfiles = p.runfiles.runfiles, ) return [defaultInfo, p.compile.merged_provider, p.collect_jars.jars2labels] + p.compile.coverage.providers @@ -21,7 +21,7 @@ def phase_library_final(ctx, p): def phase_scalatest_final(ctx, p): defaultInfo = DefaultInfo( executable = p.declare_executable, - files = depset([p.declare_executable, ctx.outputs.jar]), + files = depset([p.declare_executable] + p.compile.full_jars), runfiles = ctx.runfiles(p.coverage_runfiles.coverage_runfiles, transitive_files = p.runfiles.runfiles.files), ) return [defaultInfo, p.compile.merged_provider, p.collect_jars.jars2labels] + p.compile.coverage.providers diff --git a/test/BUILD b/test/BUILD index daeb207b1..0bbf21d09 100644 --- a/test/BUILD +++ b/test/BUILD @@ -303,6 +303,33 @@ sh_test( data = ["MixJavaScalaLibTestOutputs"], ) +scala_binary( + name = "MixJavaScalaBinary", + srcs = ["src/main/scala/scalarules/test/MixJavaScalaLibBinary.scala"] + + glob(["src/main/scala/scalarules/test/mix_java_scala/*.scala"]) + + glob(["src/main/scala/scalarules/test/mix_java_scala/*.java"]), + main_class = "scalarules.test.JavaBinary", +) + +scala_test( + name = "MixJavaScalaScalaTest", + size = "small", + srcs = ["HelloLibTest.scala"] + glob(["src/main/scala/scalarules/test/mix_java_scala/*.scala"]) + + glob(["src/main/scala/scalarules/test/mix_java_scala/*.java"]), + deps = [ + ":HelloLib", + ], +) + +scala_junit_test( + name = "MixJavaScalaJunitTest", + size = "small", + srcs = ["src/main/scala/scalarules/test/junit/JunitTests.scala", "OtherJavaLib.java"], + suffixes = ["Test"], + runtime_deps = [":JUnitRuntimeDep"], + deps = [":JUnitCompileTimeDep"], +) + #needed to test java sources are compiled scala_binary( name = "MixJavaScalaLibBinary", diff --git a/test/shell/test_build_event_protocol.sh b/test/shell/test_build_event_protocol.sh index 0ba50edce..42678cb16 100755 --- a/test/shell/test_build_event_protocol.sh +++ b/test/shell/test_build_event_protocol.sh @@ -5,11 +5,12 @@ runner=$(get_test_runner "${1:-local}") scala_binary_common_jar_is_exposed_in_build_event_protocol() { local target=$1 + local target_suffix=${2:-""} set +e bazel build test:$target --build_event_text_file=$target_bes.txt - cat $target_bes.txt | grep "test/$target.jar" + cat $target_bes.txt | grep "test/$target$target_suffix.jar" if [ $? -ne 0 ]; then - echo "test/$target.jar was not found in build event protocol:" + echo "test/$target$target_suffix.jar was not found in build event protocol:" cat $target_bes.txt rm $target_bes.txt exit 1 @@ -31,6 +32,26 @@ scala_junit_test_jar_is_exposed_in_build_event_protocol() { scala_binary_common_jar_is_exposed_in_build_event_protocol JunitTestWithDeps } +scala_binary_java_jar_is_exposed_in_build_event_protocol() { + scala_binary_common_jar_is_exposed_in_build_event_protocol MixJavaScalaBinary _java +} + +scala_library_java_jar_is_exposed_in_build_event_protocol() { + scala_binary_common_jar_is_exposed_in_build_event_protocol MixJavaScalaLib _java +} + +scala_test_java_jar_is_exposed_in_build_event_protocol() { + scala_binary_common_jar_is_exposed_in_build_event_protocol MixJavaScalaScalaTest _java +} + +junit_test_java_jar_is_exposed_in_build_event_protocol() { + scala_binary_common_jar_is_exposed_in_build_event_protocol MixJavaScalaJunitTest _java +} + $runner scala_binary_jar_is_exposed_in_build_event_protocol $runner scala_test_jar_is_exposed_in_build_event_protocol $runner scala_junit_test_jar_is_exposed_in_build_event_protocol +$runner scala_binary_java_jar_is_exposed_in_build_event_protocol +$runner scala_library_java_jar_is_exposed_in_build_event_protocol +$runner scala_test_java_jar_is_exposed_in_build_event_protocol +$runner junit_test_java_jar_is_exposed_in_build_event_protocol From 2b4a5d5700b87bcc06f12ff8a4c9d549f1123c31 Mon Sep 17 00:00:00 2001 From: Ittai Zeidman Date: Sun, 19 Jan 2020 15:20:40 +0200 Subject: [PATCH 2/4] simplify test setup --- test/BUILD | 7 ++----- .../scalarules/test/junit/HelloWorldJunitTest.scala | 12 ++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 test/src/main/scala/scalarules/test/junit/HelloWorldJunitTest.scala diff --git a/test/BUILD b/test/BUILD index 0bbf21d09..78ab50db6 100644 --- a/test/BUILD +++ b/test/BUILD @@ -314,8 +314,7 @@ scala_binary( scala_test( name = "MixJavaScalaScalaTest", size = "small", - srcs = ["HelloLibTest.scala"] + glob(["src/main/scala/scalarules/test/mix_java_scala/*.scala"]) + - glob(["src/main/scala/scalarules/test/mix_java_scala/*.java"]), + srcs = ["HelloLibTest.scala", "OtherJavaLib.java"], deps = [ ":HelloLib", ], @@ -324,10 +323,8 @@ scala_test( scala_junit_test( name = "MixJavaScalaJunitTest", size = "small", - srcs = ["src/main/scala/scalarules/test/junit/JunitTests.scala", "OtherJavaLib.java"], + srcs = ["src/main/scala/scalarules/test/junit/HelloWorldJunitTest.scala", "OtherJavaLib.java"], suffixes = ["Test"], - runtime_deps = [":JUnitRuntimeDep"], - deps = [":JUnitCompileTimeDep"], ) #needed to test java sources are compiled diff --git a/test/src/main/scala/scalarules/test/junit/HelloWorldJunitTest.scala b/test/src/main/scala/scalarules/test/junit/HelloWorldJunitTest.scala new file mode 100644 index 000000000..6d982fb67 --- /dev/null +++ b/test/src/main/scala/scalarules/test/junit/HelloWorldJunitTest.scala @@ -0,0 +1,12 @@ +package scalarules.test.junit + +import org.junit.Test + +class HelloWorldJunitTest { + + @Test + def helloWorld: Unit = { + println("hello world") + } + +} From 8eaa91eb40f36c89c9743c01172bdfdb4b14f2e0 Mon Sep 17 00:00:00 2001 From: Ittai Zeidman Date: Sun, 19 Jan 2020 15:21:17 +0200 Subject: [PATCH 3/4] remove ctx.outputs.jar usage from phase_library_final (exists in p.compile.full_jars) --- scala/private/phases/phase_final.bzl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scala/private/phases/phase_final.bzl b/scala/private/phases/phase_final.bzl index e5fe00db8..00d1bd63b 100644 --- a/scala/private/phases/phase_final.bzl +++ b/scala/private/phases/phase_final.bzl @@ -13,7 +13,7 @@ def phase_binary_final(ctx, p): def phase_library_final(ctx, p): defaultInfo = DefaultInfo( - files = depset([ctx.outputs.jar] + p.compile.full_jars), # Here is the default output + files = depset(p.compile.full_jars), runfiles = p.runfiles.runfiles, ) return [defaultInfo, p.compile.merged_provider, p.collect_jars.jars2labels] + p.compile.coverage.providers From 13120f8a25021037880be9a4ca81f9492ff1b2cb Mon Sep 17 00:00:00 2001 From: Ittai Zeidman Date: Sun, 19 Jan 2020 19:08:00 +0200 Subject: [PATCH 4/4] linting --- test/BUILD | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/test/BUILD b/test/BUILD index 78ab50db6..f192b3b76 100644 --- a/test/BUILD +++ b/test/BUILD @@ -305,16 +305,21 @@ sh_test( scala_binary( name = "MixJavaScalaBinary", - srcs = ["src/main/scala/scalarules/test/MixJavaScalaLibBinary.scala"] + - glob(["src/main/scala/scalarules/test/mix_java_scala/*.scala"]) + - glob(["src/main/scala/scalarules/test/mix_java_scala/*.java"]), + srcs = ["src/main/scala/scalarules/test/MixJavaScalaLibBinary.scala"] + glob([ + "src/main/scala/scalarules/test/mix_java_scala/*.scala", + ]) + glob([ + "src/main/scala/scalarules/test/mix_java_scala/*.java", + ]), main_class = "scalarules.test.JavaBinary", ) scala_test( name = "MixJavaScalaScalaTest", size = "small", - srcs = ["HelloLibTest.scala", "OtherJavaLib.java"], + srcs = [ + "HelloLibTest.scala", + "OtherJavaLib.java", + ], deps = [ ":HelloLib", ], @@ -323,7 +328,10 @@ scala_test( scala_junit_test( name = "MixJavaScalaJunitTest", size = "small", - srcs = ["src/main/scala/scalarules/test/junit/HelloWorldJunitTest.scala", "OtherJavaLib.java"], + srcs = [ + "OtherJavaLib.java", + "src/main/scala/scalarules/test/junit/HelloWorldJunitTest.scala", + ], suffixes = ["Test"], )