From b5d417d263bc1b35bdace54e0161137dce7e8ba5 Mon Sep 17 00:00:00 2001 From: Oscar Boykin Date: Fri, 12 Feb 2016 21:16:13 +0000 Subject: Add scala tests to CI -- Change-Id: If286a9718e036d2bd555baf78600e9208ba5a990 Reviewed-on: https://github.com/bazelbuild/bazel/pull/872 MOS_MIGRATED_REVID=114563576 --- compile.sh | 1 + tools/build_defs/scala/scala.bzl | 38 +++++++++++++++++++++++--------------- tools/build_defs/scala/test/BUILD | 2 +- 3 files changed, 25 insertions(+), 16 deletions(-) diff --git a/compile.sh b/compile.sh index bf13174213..3a0869ada5 100755 --- a/compile.sh +++ b/compile.sh @@ -154,6 +154,7 @@ if [ $DO_TESTS ]; then ${EXTRA_BAZEL_ARGS} \ --javacopt="-source ${JAVA_VERSION} -target ${JAVA_VERSION}" \ -k --test_output=errors //src/... //third_party/ijar/... //scripts/... \ + //tools/build_defs/scala/test/... \ || fail "Tests failed" fi diff --git a/tools/build_defs/scala/scala.bzl b/tools/build_defs/scala/scala.bzl index 39b20e6077..6e2946b959 100644 --- a/tools/build_defs/scala/scala.bzl +++ b/tools/build_defs/scala/scala.bzl @@ -118,17 +118,25 @@ cd $0.runfiles content=content) def _collect_comp_run_jars(ctx): - compile_jars = set() - runtime_jars = set() + compile_jars = set() # not transitive + runtime_jars = set() # this is transitive for target in ctx.attr.deps: - if hasattr(target, "runtime_jar_files"): - runtime_jars += target.runtime_jar_files - if hasattr(target, "interface_jar_files"): - compile_jars += target.interface_jar_files + found = False + if hasattr(target, "scala"): + compile_jars += [target.scala.outputs.ijar] + runtime_jars += target.scala.transitive_runtime_deps + found = True if hasattr(target, "java"): - runtime_jars += target.java.transitive_runtime_deps - #see JavaSkylarkApiProvider.java, this is just the compile-time deps + # see JavaSkylarkApiProvider.java, this is just the compile-time deps + # this should be improved in bazel 0.1.5 to get outputs.ijar + # compile_jars += [target.java.outputs.ijar] compile_jars += target.java.transitive_deps + runtime_jars += target.java.transitive_runtime_deps + found = True + if not found: + # support http_file pointed at a jar. http_jar uses ijar, which breaks scala macros + runtime_jars += target.files + compile_jars += target.files return (compile_jars, runtime_jars) def _scala_library_impl(ctx): @@ -136,14 +144,14 @@ def _scala_library_impl(ctx): _write_manifest(ctx) _compile(ctx, cjars, True) - cjars += [ctx.outputs.ijar] rjars += [ctx.outputs.jar] + scalaattr = struct(outputs = struct(ijar=ctx.outputs.ijar, class_jar=ctx.outputs.jar), + transitive_runtime_deps = rjars) runfiles = ctx.runfiles( files = list(rjars), collect_data = True) return struct( - runtime_jar_files=rjars, - interface_jar_files=cjars, + scala = scalaattr, runfiles=runfiles) def _scala_macro_library_impl(ctx): @@ -152,14 +160,14 @@ def _scala_macro_library_impl(ctx): _compile(ctx, cjars, False) rjars += [ctx.outputs.jar] - # macro code needs to be available at compiletime - cjars += [ctx.outputs.jar] + # macro code needs to be available at compiletime, so set ijar == jar + scalaattr = struct(outputs = struct(ijar=ctx.outputs.jar, class_jar=ctx.outputs.jar), + transitive_runtime_deps = rjars) runfiles = ctx.runfiles( files = list(rjars), collect_data = True) return struct( - runtime_jar_files=rjars, - interface_jar_files=cjars, + scala = scalaattr, runfiles=runfiles) # Common code shared by all scala binary implementations. diff --git a/tools/build_defs/scala/test/BUILD b/tools/build_defs/scala/test/BUILD index 699bb5a035..cd9ad27bc3 100644 --- a/tools/build_defs/scala/test/BUILD +++ b/tools/build_defs/scala/test/BUILD @@ -35,7 +35,7 @@ scala_library( scala_test( name = "HelloLibTest", - size = "medium", # Not a macro, can pass test-specific attributes. + size = "small", # Not a macro, can pass test-specific attributes. srcs = ["HelloLibTest.scala"], suites = [ "scala.test.ScalaSuite", -- cgit v1.2.3