Set Bazel's workspace name
RELNOTES: Bazel's workspace name is now io_bazel. If you are using Bazel's
source as an external repository, then you may want to update the name you're
referring to it as or you'll begin seeing warnings about name mismatches in your
code.
--
MOS_MIGRATED_REVID=120926179
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD
index 22929e2..790cfbc 100644
--- a/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD
+++ b/src/java_tools/buildjar/java/com/google/devtools/build/java/bazel/BUILD
@@ -14,6 +14,7 @@
outs = ["JavacBootclasspathLocations.java"],
cmd = """
declare -a paths=($(SRCS)) && paths=($${paths[@]#$(GENDIR)/}) &&
+paths=($$(echo $${paths[@]} | sed s_external/__g)) &&
IFS=: &&
cat > $@ <<EOF
package com.google.devtools.build.java.bazel;
@@ -44,7 +45,7 @@
srcs = ["//third_party/java/jdk/langtools:javac_jar"],
outs = ["JavaLangtoolsLocation.java"],
cmd = """
-path=$(SRCS) && path=$${path#$(GENDIR)/} &&
+path=$(SRCS) && path=$${path#$(GENDIR)/} && path="io_bazel/$${path}" &&
cat > $@ <<EOF
package com.google.devtools.build.java.bazel;
public class JavaLangtoolsLocation {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
index 5378904..98540d2 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RunfilesSupport.java
@@ -236,6 +236,13 @@
}
/**
+ * Returns the name of the workspace that the build is occurring in.
+ */
+ public PathFragment getWorkspaceName() {
+ return runfiles.getSuffix();
+ }
+
+ /**
* Returns the middleman artifact that depends on getExecutable(),
* getRunfilesManifest(), and getRunfilesSymlinkTargets(). Anything which
* needs to actually run the executable should depend on this.
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java
index 8626f69..70024c4 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/RunfilesSupplierImplTest.java
@@ -86,7 +86,7 @@
}
private static Runfiles mkRunfiles(Iterable<Artifact> artifacts) {
- return new Runfiles.Builder("TESTING").addArtifacts(artifacts).build();
+ return new Runfiles.Builder("TESTING", false).addArtifacts(artifacts).build();
}
private static List<Artifact> mkArtifacts(Root rootDir, String... paths) {
diff --git a/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java b/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java
index 6207fde..8b57ff5 100644
--- a/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java
+++ b/src/test/java/com/google/devtools/build/lib/packages/util/MockToolsConfig.java
@@ -123,12 +123,12 @@
*/
public void linkTool(String relativePath, String dest) throws IOException {
Preconditions.checkState(realFileSystem);
- Path target = runfilesDirectory.getRelative(TestConstants.RUNFILES_PREFIX + "/" + relativePath);
+ Path target = runfilesDirectory.getRelative(TestConstants.WORKSPACE_NAME + "/" + relativePath);
if (!target.exists()) {
// In some cases we run tests in a special client with a ../READONLY/ path where we may also
// find the runfiles. Try that, too.
Path readOnlyClientPath = rootDirectory.getRelative(
- "../READONLY/" + TestConstants.RUNFILES_PREFIX + "/" + relativePath);
+ "../READONLY/" + TestConstants.WORKSPACE_NAME + "/" + relativePath);
if (!readOnlyClientPath.exists()) {
throw new IOException("target does not exist " + target);
} else {
diff --git a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
index 6d4fb51..a14172f 100644
--- a/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
+++ b/src/test/java/com/google/devtools/build/lib/testutil/TestConstants.java
@@ -38,12 +38,7 @@
* Location in the bazel repo where embedded binaries come from.
*/
public static final ImmutableList<String> EMBEDDED_SCRIPTS_PATHS = ImmutableList.of(
- "src/main/tools");
-
- /**
- * Path within runfiles tree for finding everything else.
- */
- public static final String RUNFILES_PREFIX = "DOES-NOT-WORK-YET";
+ "io_bazel/src/main/tools");
/**
* Default workspace name.
@@ -59,7 +54,7 @@
/**
* Directory where we can find bazel's Java tests, relative to a test's runfiles directory.
*/
- public static final String JAVATESTS_ROOT = "src/test/java/";
+ public static final String JAVATESTS_ROOT = "io_bazel/src/test/java/";
public static final String TEST_RULE_CLASS_PROVIDER =
"com.google.devtools.build.lib.bazel.rules.BazelRuleClassProvider";
diff --git a/src/test/shell/bazel/android/android_integration_test.sh b/src/test/shell/bazel/android/android_integration_test.sh
index 1a65c31..1aa77f4 100755
--- a/src/test/shell/bazel/android/android_integration_test.sh
+++ b/src/test/shell/bazel/android/android_integration_test.sh
@@ -158,12 +158,12 @@
bazel build -s //java/bazel:bin || fail "build failed"
}
-if [[ ! -r "${TEST_SRCDIR}/external/androidndk/ndk/RELEASE.TXT" ]]; then
+if [[ ! -r "${BAZEL_RUNFILES}/external/androidndk/ndk/RELEASE.TXT" ]]; then
echo "Not running Android tests due to lack of an Android NDK."
exit 0
fi
-if [[ ! -r "${TEST_SRCDIR}/external/androidsdk/SDK Readme.txt" ]]; then
+if [[ ! -r "${BAZEL_RUNFILES}/external/androidsdk/SDK Readme.txt" ]]; then
echo "Not running Android tests due to lack of an Android SDK."
exit 0
fi
diff --git a/src/test/shell/bazel/bazel_example_test.sh b/src/test/shell/bazel/bazel_example_test.sh
index b9d2aef..93075fd 100755
--- a/src/test/shell/bazel/bazel_example_test.sh
+++ b/src/test/shell/bazel/bazel_example_test.sh
@@ -23,6 +23,9 @@
function set_up() {
copy_examples
+ cat > WORKSPACE <<EOF
+workspace(name = "io_bazel")
+EOF
}
#
@@ -77,20 +80,6 @@
assert_test_ok "${java_native_tests}:custom_with_test_class"
}
-function test_java_test_with_workspace_name() {
- local java_pkg=examples/java-native/src/main/java/com/example/myproject
- # Use named workspace and test if we can still execute hello-world
- bazel clean
-
- rm -f WORKSPACE
- cat >WORKSPACE <<'EOF'
-workspace(name = "toto")
-EOF
-
- assert_build_output ./bazel-bin/${java_pkg}/hello-world ${java_pkg}:hello-world
- assert_binary_run_from_subdir "bazel-bin/${java_pkg}/hello-world foo" "Hello foo"
-}
-
function test_genrule_and_genquery() {
# The --javabase flag is to force the tools/jdk:jdk label to be used
# so it appears in the dependency list.
diff --git a/src/test/shell/bazel/bazel_worker_test.sh b/src/test/shell/bazel/bazel_worker_test.sh
index 61ee9ea..8ad58c8 100755
--- a/src/test/shell/bazel/bazel_worker_test.sh
+++ b/src/test/shell/bazel/bazel_worker_test.sh
@@ -24,7 +24,7 @@
# TODO(philwo): Change this so the path to the custom worker gets passed in as an argument to the
# test, once the bug that makes using the "args" attribute with sh_tests in Bazel impossible is
# fixed.
-example_worker=$(find $TEST_SRCDIR -name ExampleWorker_deploy.jar)
+example_worker=$(find $BAZEL_RUNFILES -name ExampleWorker_deploy.jar)
function set_up() {
bazel build --worker_quit_after_build
diff --git a/src/test/shell/bazel/generate_workspace_test.sh b/src/test/shell/bazel/generate_workspace_test.sh
index 1816845..584f3e0 100755
--- a/src/test/shell/bazel/generate_workspace_test.sh
+++ b/src/test/shell/bazel/generate_workspace_test.sh
@@ -24,8 +24,6 @@
source $src_dir/remote_helpers.sh \
|| { echo "remote_helpers.sh not found!" >&2; exit 1; }
-export JAVA_RUNFILES=$TEST_SRCDIR
-
function set_up() {
# Set up custom repository directory.
m2=$TEST_TMPDIR/my-m2
diff --git a/src/test/shell/bazel/test-setup.sh b/src/test/shell/bazel/test-setup.sh
index e133324..a8b0e77 100755
--- a/src/test/shell/bazel/test-setup.sh
+++ b/src/test/shell/bazel/test-setup.sh
@@ -66,8 +66,8 @@
# TODO(bazel-team): This hard-codes the name of the Android repository in
# the WORKSPACE file of Bazel. Change this once external repositories have
# their own defined names under which they are mounted.
- NDK_SRCDIR=$TEST_SRCDIR/external/androidndk/ndk
- SDK_SRCDIR=$TEST_SRCDIR/external/androidsdk
+ NDK_SRCDIR=$BAZEL_RUNFILES/external/androidndk/ndk
+ SDK_SRCDIR=$BAZEL_RUNFILES/external/androidsdk
mkdir -p $ANDROID_NDK
mkdir -p $ANDROID_SDK
diff --git a/src/test/shell/bazel/testenv.sh b/src/test/shell/bazel/testenv.sh
index 3e00e57..30ee820 100755
--- a/src/test/shell/bazel/testenv.sh
+++ b/src/test/shell/bazel/testenv.sh
@@ -18,65 +18,66 @@
#
[ -z "$TEST_SRCDIR" ] && { echo "TEST_SRCDIR not set!" >&2; exit 1; }
+BAZEL_RUNFILES="$TEST_SRCDIR/io_bazel"
# Load the unit-testing framework
-source "${TEST_SRCDIR}/src/test/shell/unittest.bash" || \
+source "${BAZEL_RUNFILES}/src/test/shell/unittest.bash" || \
{ echo "Failed to source unittest.bash" >&2; exit 1; }
# WORKSPACE file
-workspace_file="${TEST_SRCDIR}/WORKSPACE"
+workspace_file="${BAZEL_RUNFILES}/WORKSPACE"
# Bazel
-bazel_tree="${TEST_SRCDIR}/src/test/shell/bazel/doc-srcs.zip"
-bazel="${TEST_SRCDIR}/src/bazel"
-bazel_data="${TEST_SRCDIR}"
+bazel_tree="${BAZEL_RUNFILES}/src/test/shell/bazel/doc-srcs.zip"
+bazel="${BAZEL_RUNFILES}/src/bazel"
+bazel_data="${BAZEL_RUNFILES}"
# Java
-jdk_dir="${TEST_SRCDIR}/external/local_jdk"
-langtools="${TEST_SRCDIR}/src/test/shell/bazel/langtools.jar"
+jdk_dir="${BAZEL_RUNFILES}/external/local_jdk"
+langtools="${BAZEL_RUNFILES}/src/test/shell/bazel/langtools.jar"
# Tools directory location
-tools_dir="${TEST_SRCDIR}/tools"
-langtools_dir="${TEST_SRCDIR}/third_party/java/jdk/langtools"
+tools_dir="${BAZEL_RUNFILES}/tools"
+langtools_dir="${BAZEL_RUNFILES}/third_party/java/jdk/langtools"
EXTRA_BAZELRC="build --ios_sdk_version=8.4"
# Java tooling
-javabuilder_path="$(find ${TEST_SRCDIR} -name JavaBuilder_*.jar)"
-langtools_path="${TEST_SRCDIR}/third_party/java/jdk/langtools/javac.jar"
-singlejar_path="${TEST_SRCDIR}/src/java_tools/singlejar/SingleJar_deploy.jar"
-genclass_path="${TEST_SRCDIR}/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass_deploy.jar"
-junitrunner_path="${TEST_SRCDIR}/src/java_tools/junitrunner/java/com/google/testing/junit/runner/Runner_deploy.jar"
-ijar_path="${TEST_SRCDIR}/third_party/ijar/ijar"
+javabuilder_path="$(find ${BAZEL_RUNFILES} -name JavaBuilder_*.jar)"
+langtools_path="${BAZEL_RUNFILES}/third_party/java/jdk/langtools/javac.jar"
+singlejar_path="${BAZEL_RUNFILES}/src/java_tools/singlejar/SingleJar_deploy.jar"
+genclass_path="${BAZEL_RUNFILES}/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/genclass/GenClass_deploy.jar"
+junitrunner_path="${BAZEL_RUNFILES}/src/java_tools/junitrunner/java/com/google/testing/junit/runner/Runner_deploy.jar"
+ijar_path="${BAZEL_RUNFILES}/third_party/ijar/ijar"
# Sandbox tools
-process_wrapper="${TEST_SRCDIR}/src/main/tools/process-wrapper"
-namespace_sandbox="${TEST_SRCDIR}/src/main/tools/namespace-sandbox"
+process_wrapper="${BAZEL_RUNFILES}/src/main/tools/process-wrapper"
+namespace_sandbox="${BAZEL_RUNFILES}/src/main/tools/namespace-sandbox"
# Android tooling
-aargenerator_path="${TEST_SRCDIR}/src/tools/android/java/com/google/devtools/build/android/AarGeneratorAction_deploy.jar"
-androidresourceprocessor_path="${TEST_SRCDIR}/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction_deploy.jar"
-resourceshrinker_path="${TEST_SRCDIR}/src/tools/android/java/com/google/devtools/build/android/ResourceShrinkerAction_deploy.jar"
-dexmapper_path="${TEST_SRCDIR}/src/tools/android/java/com/google/devtools/build/android/ziputils/mapper_deploy.jar"
-dexreducer_path="${TEST_SRCDIR}/src/tools/android/java/com/google/devtools/build/android/ziputils/reducer_deploy.jar"
-incrementaldeployment_path="${TEST_SRCDIR}/src/tools/android/java/com/google/devtools/build/android/incrementaldeployment"
+aargenerator_path="${BAZEL_RUNFILES}/src/tools/android/java/com/google/devtools/build/android/AarGeneratorAction_deploy.jar"
+androidresourceprocessor_path="${BAZEL_RUNFILES}/src/tools/android/java/com/google/devtools/build/android/AndroidResourceProcessingAction_deploy.jar"
+resourceshrinker_path="${BAZEL_RUNFILES}/src/tools/android/java/com/google/devtools/build/android/ResourceShrinkerAction_deploy.jar"
+dexmapper_path="${BAZEL_RUNFILES}/src/tools/android/java/com/google/devtools/build/android/ziputils/mapper_deploy.jar"
+dexreducer_path="${BAZEL_RUNFILES}/src/tools/android/java/com/google/devtools/build/android/ziputils/reducer_deploy.jar"
+incrementaldeployment_path="${BAZEL_RUNFILES}/src/tools/android/java/com/google/devtools/build/android/incrementaldeployment"
# iOS and Objective-C tooling
-iossim_path="${TEST_SRCDIR}/third_party/iossim/iossim"
-actoolwrapper_path="${TEST_SRCDIR}/src/tools/xcode/actoolwrapper/actoolwrapper.sh"
-ibtoolwrapper_path="${TEST_SRCDIR}/src/tools/xcode/ibtoolwrapper/ibtoolwrapper.sh"
-swiftstdlibtoolwrapper_path="${TEST_SRCDIR}/src/tools/xcode/swiftstdlibtoolwrapper/swiftstdlibtoolwrapper.sh"
-momcwrapper_path="${TEST_SRCDIR}/src/tools/xcode/momcwrapper/momcwrapper.sh"
-bundlemerge_path="${TEST_SRCDIR}/src/objc_tools/bundlemerge/bundlemerge_deploy.jar"
-plmerge_path="${TEST_SRCDIR}/src/objc_tools/plmerge/plmerge_deploy.jar"
-xcodegen_path="${TEST_SRCDIR}/src/objc_tools/xcodegen/xcodegen_deploy.jar"
-stdredirect_path="${TEST_SRCDIR}/src/tools/xcode/stdredirect/StdRedirect.dylib"
-realpath_path="${TEST_SRCDIR}/src/tools/xcode/realpath/realpath"
-environment_plist_path="${TEST_SRCDIR}/src/tools/xcode/environment/environment_plist.sh"
-xcrunwrapper_path="${TEST_SRCDIR}/src/tools/xcode/xcrunwrapper/xcrunwrapper.sh"
+iossim_path="${BAZEL_RUNFILES}/third_party/iossim/iossim"
+actoolwrapper_path="${BAZEL_RUNFILES}/src/tools/xcode/actoolwrapper/actoolwrapper.sh"
+ibtoolwrapper_path="${BAZEL_RUNFILES}/src/tools/xcode/ibtoolwrapper/ibtoolwrapper.sh"
+swiftstdlibtoolwrapper_path="${BAZEL_RUNFILES}/src/tools/xcode/swiftstdlibtoolwrapper/swiftstdlibtoolwrapper.sh"
+momcwrapper_path="${BAZEL_RUNFILES}/src/tools/xcode/momcwrapper/momcwrapper.sh"
+bundlemerge_path="${BAZEL_RUNFILES}/src/objc_tools/bundlemerge/bundlemerge_deploy.jar"
+plmerge_path="${BAZEL_RUNFILES}/src/objc_tools/plmerge/plmerge_deploy.jar"
+xcodegen_path="${BAZEL_RUNFILES}/src/objc_tools/xcodegen/xcodegen_deploy.jar"
+stdredirect_path="${BAZEL_RUNFILES}/src/tools/xcode/stdredirect/StdRedirect.dylib"
+realpath_path="${BAZEL_RUNFILES}/src/tools/xcode/realpath/realpath"
+environment_plist_path="${BAZEL_RUNFILES}/src/tools/xcode/environment/environment_plist.sh"
+xcrunwrapper_path="${BAZEL_RUNFILES}/src/tools/xcode/xcrunwrapper/xcrunwrapper.sh"
# Test data
-testdata_path=${TEST_SRCDIR}/src/test/shell/bazel/testdata
-python_server="${TEST_SRCDIR}/src/test/shell/bazel/testing_server.py"
+testdata_path=${BAZEL_RUNFILES}/src/test/shell/bazel/testdata
+python_server="${BAZEL_RUNFILES}/src/test/shell/bazel/testing_server.py"
# Third-party
PLATFORM="$(uname -s | tr 'A-Z' 'a-z')"
@@ -88,22 +89,22 @@
case "${PLATFORM}" in
darwin)
if [ "${MACHINE_IS_64BIT}" = 'yes' ]; then
- protoc_compiler="${TEST_SRCDIR}/third_party/protobuf/protoc-osx-x86_64.exe"
+ protoc_compiler="${BAZEL_RUNFILES}/third_party/protobuf/protoc-osx-x86_64.exe"
else
- protoc_compiler="${TEST_SRCDIR}/third_party/protobuf/protoc-osx-x86_32.exe"
+ protoc_compiler="${BAZEL_RUNFILES}/third_party/protobuf/protoc-osx-x86_32.exe"
fi
;;
*)
if [ "${MACHINE_IS_64BIT}" = 'yes' ]; then
- protoc_compiler="${TEST_SRCDIR}/third_party/protobuf/protoc-linux-x86_64.exe"
+ protoc_compiler="${BAZEL_RUNFILES}/third_party/protobuf/protoc-linux-x86_64.exe"
else
- protoc_compiler="${TEST_SRCDIR}/third_party/protobuf/protoc-linux-x86_32.exe"
+ protoc_compiler="${BAZEL_RUNFILES}/third_party/protobuf/protoc-linux-x86_32.exe"
fi
;;
esac
-protoc_jar="${TEST_SRCDIR}/third_party/protobuf/protobuf-*.jar"
-junit_jar="${TEST_SRCDIR}/third_party/junit/junit-*.jar"
-hamcrest_jar="${TEST_SRCDIR}/third_party/hamcrest/hamcrest-*.jar"
+protoc_jar="${BAZEL_RUNFILES}/third_party/protobuf/protobuf-*.jar"
+junit_jar="${BAZEL_RUNFILES}/third_party/junit/junit-*.jar"
+hamcrest_jar="${BAZEL_RUNFILES}/third_party/hamcrest/hamcrest-*.jar"
# This function copies the tools directory from Bazel.
function copy_tools_directory() {
@@ -151,7 +152,7 @@
# Copy the examples of the base workspace
function copy_examples() {
- EXAMPLE="$TEST_SRCDIR/examples"
+ EXAMPLE="$BAZEL_RUNFILES/examples"
cp -RL ${EXAMPLE} .
chmod -R +w .
}
diff --git a/src/test/shell/bazel/workspace_test.sh b/src/test/shell/bazel/workspace_test.sh
index 0cd9274..9c63e38 100755
--- a/src/test/shell/bazel/workspace_test.sh
+++ b/src/test/shell/bazel/workspace_test.sh
@@ -18,7 +18,7 @@
source $(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/test-setup.sh \
|| { echo "test-setup.sh not found!" >&2; exit 1; }
-export JAVA_RUNFILES=$TEST_SRCDIR
+export JAVA_RUNFILES=$BAZEL_RUNFILES
function setup_repo() {
mkdir -p $1