diff options
author | Stephen Twigg <twigg@google.com> | 2017-05-05 15:44:40 +0200 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2017-05-05 18:36:21 +0200 |
commit | d74bf36232fbb1950eba32886d153767b3b9b177 (patch) | |
tree | af15fac9f53b83b448494bef5e02e4c57ff592fe /tools | |
parent | 511c35b46cead500d4e76706e0a709e50995ceba (diff) |
Add compile_jars for Skylark to JavaProvider
Add compile_jars Skylark accessor to JavaProvider. This outputs the
non-recursive set of jars needed to build with this target. Allows
Skylark tools to get the same set of compile_jars that JavaLibrary is
getting.
Added test that verifies Skylark was getting lists from both
compile_jars and transitive_runtime_jars of the expected length. Then,
verified (via test code) those nested sets were identical to the ones
provided by the java_library.
To reviewers:
First, would like to add documentation flags to these fields in
JavaProvider. Is it possible, instead of adding them to this map to
follow use the @SkylarkCallable annotation to expose methods on
JavaProvider instead? It would then also be nice to mark these as
experimental since won't really know the final API until
java_skylark_library sandwich is done.
I also tested this locally via bazel build //src:bazel and then doing
~/bazelsandbox/bazel/bazel-bin/src/bazel test SomeTarget in a different
repo that had a .bzl file trying to use compile_jars.
Change-Id: I1779c1b6303f36e50076c3479bfcb15a25aa95d8
PiperOrigin-RevId: 155191816
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/android/build_incremental_dexmanifest_test.sh | 36 | ||||
-rwxr-xr-x | tools/android/strip_resources_test.sh | 45 |
2 files changed, 81 insertions, 0 deletions
diff --git a/tools/android/build_incremental_dexmanifest_test.sh b/tools/android/build_incremental_dexmanifest_test.sh new file mode 100755 index 0000000000..44459ebf03 --- /dev/null +++ b/tools/android/build_incremental_dexmanifest_test.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright 2015 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. + +set -eux + +CUT="$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)/build_incremental_dexmanifest" +ZIPPER=$(pwd)/$1 + +cd $TEST_TMPDIR +echo 1 > 1.dex +echo 2 > 2.dex +echo 3 > 3.dex +echo 4 > 4.dex + +$ZIPPER c 1.zip 1.dex 2.dex +$ZIPPER c 2.zip 3.dex + +$CUT output.manifest 1.zip 2.zip 4.dex +IFS=$'\n' MANIFEST=($(cat output.manifest | cut -d' ' -f1-3)) +[[ ${MANIFEST[0]} == "1.zip 1.dex incremental_classes1.dex" ]] +[[ ${MANIFEST[1]} == "1.zip 2.dex incremental_classes2.dex" ]] +[[ ${MANIFEST[2]} == "2.zip 3.dex incremental_classes3.dex" ]] +[[ ${MANIFEST[3]} == "4.dex - incremental_classes4.dex" ]] diff --git a/tools/android/strip_resources_test.sh b/tools/android/strip_resources_test.sh new file mode 100755 index 0000000000..1a42b880aa --- /dev/null +++ b/tools/android/strip_resources_test.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# +# Copyright 2015 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. +set -eux + +CUT="$(cd $(dirname ${BASH_SOURCE[0]}) && pwd)/strip_resources" +ZIPPER=$(pwd)/$1 + + +# set up input zip +cd $TEST_TMPDIR +mkdir i +echo MANIFEST > i/AndroidManifest.xml +echo CLASSES.DEX > i/classes.dex +echo ARSC > i/resources.arsc +(cd i; $ZIPPER c i.zip *) + +# Invoke code under test +$CUT --input_resource_apk i/i.zip --output_resource_apk o.zip + +# Unpack output zip +mkdir o +(cd o; $ZIPPER x ../o.zip) + +# Set read permission +chmod u+r o/AndroidManifest.xml + +# Check if AndroidManifest.xml is unchanged and that no other files are present +cmp i/AndroidManifest.xml o/AndroidManifest.xml +[[ ! -e o/classes.dex ]] +[[ ! -e o/resources.arsc ]] + +exit 0 |