Automated rollback of commit 81ab902812b0141ef034ec39338bfeefdd5254ef. *** Reason for rollback *** Memory regression. RELNOTES: None *** Original change description *** Package Lookup: support inidividual error messages Instead of having a single instance of NoBuildFilePackageLookupValue (which necessarily will provide a very generic error message) support several instances with more specific error messages. Use them to indicate the places where a BUILD was searched for. Fixes #7457. Change-not-actually-to-trick-Copybara-Id: Ib5cbf198cb3926d0f619760f8d00774dd468a214 PiperOrigin-RevId: 237266579
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisFailureReportingTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisFailureReportingTest.java index 120e1f9..0c5938d 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/AnalysisFailureReportingTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/AnalysisFailureReportingTest.java
@@ -87,12 +87,10 @@ Label topLevel = Label.parseAbsoluteUnchecked("//foo"); Label causeLabel = Label.parseAbsoluteUnchecked("//bar"); assertThat(collector.events.keySet()).containsExactly(topLevel); - assertThat(collector.events.get(topLevel)).hasSize(1); - Cause topLevelCause = collector.events.get(topLevel).iterator().next(); - assertThat(topLevelCause.getClass()).isAssignableTo(LoadingFailedCause.class); - assertThat(topLevelCause.getLabel()).isEqualTo(causeLabel); - assertThat(topLevelCause.toString()) - .contains("no such package 'bar': BUILD file not found on package path"); + assertThat(collector.events.get(topLevel)) + .containsExactly( + new LoadingFailedCause( + causeLabel, "no such package 'bar': BUILD file not found on package path")); } /**
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java index d774450..2e56120 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/PackageLookupFunctionTest.java
@@ -349,6 +349,8 @@ PackageLookupValue.success(root2, BuildFileName.BUILD), PackageLookupValue.success(root2, BuildFileName.BUILD)) .addEqualityGroup( + PackageLookupValue.NO_BUILD_FILE_VALUE, PackageLookupValue.NO_BUILD_FILE_VALUE) + .addEqualityGroup( PackageLookupValue.DELETED_PACKAGE_VALUE, PackageLookupValue.DELETED_PACKAGE_VALUE) .addEqualityGroup( PackageLookupValue.invalidPackageName("nope1"),
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java index 143efd1..c05b615 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/SkylarkImportLookupFunctionTest.java
@@ -195,7 +195,7 @@ ErrorInfo errorInfo = result.getError(skylarkImportLookupKey); String errorMessage = errorInfo.getException().getMessage(); assertThat(errorMessage) - .contains( + .isEqualTo( "Unable to load package for '//pkg:ext.bzl': BUILD file not found on package path"); } @@ -212,7 +212,7 @@ ErrorInfo errorInfo = result.getError(skylarkImportLookupKey); String errorMessage = errorInfo.getException().getMessage(); assertThat(errorMessage) - .contains( + .isEqualTo( "Unable to load package for '//pkg:ext.bzl': BUILD file not found on package path"); }
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java b/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java index 1110640..8086f3b 100644 --- a/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java +++ b/src/test/java/com/google/devtools/build/lib/skyframe/packages/AbstractPackageLoaderTest.java
@@ -77,7 +77,7 @@ } catch (NoSuchPackageException expected) { assertThat(expected) .hasMessageThat() - .contains("no such package 'nope': BUILD file not found on package path"); + .isEqualTo("no such package 'nope': BUILD file not found on package path"); } assertNoEvents(handler.getEvents()); }
diff --git a/src/test/shell/bazel/external_integration_test.sh b/src/test/shell/bazel/external_integration_test.sh index 53e6e28..52ab719 100755 --- a/src/test/shell/bazel/external_integration_test.sh +++ b/src/test/shell/bazel/external_integration_test.sh
@@ -1903,35 +1903,5 @@ expect_log 'no need for `strip_prefix`' } -function test_report_files_searched() { - # Verify that upon a missing package, the places where a BUILD file was - # searched for are reported. - WRKDIR=$(mktemp -d "${TEST_TMPDIR}/testXXXXXX") - cd "${WRKDIR}" - - mkdir ext - echo 'data' > ext/foo.txt - tar cvf ext.tar ext - rm -rf ext - - mkdir -p path/to/workspace - cd path/to/workspace - cat > WORKSPACE <<EOF -load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") -http_archive( - name="ext", - urls=["file://${WRKDIR}/ext.tar"], - build_file = "@//:ext.BUILD", -) -EOF - echo 'exports_files(["foo.txt"])' > ext.BUILD - - bazel build @ext//... > "${TEST_log}" 2>&1 \ - && fail "Expected failure" || : - - expect_log 'BUILD file not found' - expect_log 'path/to/workspace/BUILD' -} - run_suite "external tests"