diff options
author | 2017-07-26 20:12:30 +0200 | |
---|---|---|
committer | 2017-07-27 09:05:15 +0200 | |
commit | 684d120e6c3b32ddc99e115c54cdbff64f6c519f (patch) | |
tree | 2d1b6aace7bbe5d045e950c4ea338799a096b9ef | |
parent | 403010f45379e0ca6e02c6eb68a79f71fdb18c68 (diff) |
Fix bug where we incorrectly skip over subdirectories named 'external'. We're actually just trying to skip over packages named '//external'.
PiperOrigin-RevId: 163230119
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/ProcessPackageDirectory.java | 4 | ||||
-rwxr-xr-x | src/test/shell/integration/bazel_query_test.sh | 13 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ProcessPackageDirectory.java b/src/main/java/com/google/devtools/build/lib/skyframe/ProcessPackageDirectory.java index 349aec4b15..3b7556b4bd 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ProcessPackageDirectory.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ProcessPackageDirectory.java @@ -198,11 +198,11 @@ public class ProcessPackageDirectory { && PathPackageLocator.DEFAULT_TOP_LEVEL_EXCLUDES.contains(basename)) { continue; } - if (basename.equals(Label.EXTERNAL_PACKAGE_NAME.getPathString())) { + PathFragment subdirectory = rootRelativePath.getRelative(basename); + if (subdirectory.equals(Label.EXTERNAL_PACKAGE_NAME)) { // Not a real package. continue; } - PathFragment subdirectory = rootRelativePath.getRelative(basename); // If this subdirectory is one of the excluded paths, don't recurse into it. if (excludedPaths.contains(subdirectory)) { diff --git a/src/test/shell/integration/bazel_query_test.sh b/src/test/shell/integration/bazel_query_test.sh index 0342370dfd..305f8b9a65 100755 --- a/src/test/shell/integration/bazel_query_test.sh +++ b/src/test/shell/integration/bazel_query_test.sh @@ -286,5 +286,18 @@ EOF done } +function test_subdirectory_named_external() { + mkdir -p foo/external foo/bar + cat > foo/external/BUILD <<EOF +sh_library(name = 't1') +EOF + cat > foo/bar/BUILD <<EOF +sh_library(name = 't2') +EOF + + bazel query foo/... >& $TEST_log || fail "Expected success" + expect_log "//foo/external:t1" + expect_log "//foo/bar:t2" +} run_suite "${PRODUCT_NAME} query tests" |