diff options
author | Janak Ramakrishnan <janakr@google.com> | 2016-04-19 13:13:29 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2016-04-19 13:52:13 +0000 |
commit | 68e5335b1ec05cffcb08cef552d9d0a2c5d41397 (patch) | |
tree | f81804c1a4f4047338f91c3f7975e428d1375d93 /src/test/java/com/google/devtools | |
parent | 10993fe27a62d5a4e683a206291c1bd44a492daf (diff) |
Allow external repositories to have includes attributes that point to packages not in third_party. We don't need to police users' external repositories.
Fixes #1151
--
MOS_MIGRATED_REVID=120222222
Diffstat (limited to 'src/test/java/com/google/devtools')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java index ca261344a0..f7e181a79d 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java @@ -34,9 +34,12 @@ import com.google.devtools.build.lib.analysis.OutputGroupProvider; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; import com.google.devtools.build.lib.cmdline.PackageIdentifier; +import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.testutil.MoreAsserts; import com.google.devtools.build.lib.testutil.TestConstants; import com.google.devtools.build.lib.util.FileType; +import com.google.devtools.build.lib.vfs.FileSystemUtils; +import com.google.devtools.build.lib.vfs.ModifiedFileSet; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.lib.view.config.crosstool.CrosstoolConfig; @@ -534,6 +537,50 @@ public class CcCommonConfiguredTargetTest extends BuildViewTestCase { } @Test + public void testCcLibraryThirdPartyIncludesNotWarned() throws Exception { + eventCollector.clear(); + ConfiguredTarget target = + scratchConfiguredTarget( + "third_party/pkg", + "lib", + "licenses(['unencumbered'])", + "cc_library(name = 'lib',", + " srcs = ['foo.cc'],", + " includes = ['./'])"); + assertThat(view.hasErrors(target)).isFalse(); + assertNoEvents(); + } + + @Test + public void testCcLibraryExternalIncludesNotWarned() throws Exception { + eventCollector.clear(); + FileSystemUtils.appendIsoLatin1( + scratch.resolve("WORKSPACE"), + "local_repository(", + " name = 'pkg',", + " path = '/foo')"); + getSkyframeExecutor() + .invalidateFilesUnderPathForTesting( + eventCollector, + new ModifiedFileSet.Builder().modify(new PathFragment("WORKSPACE")).build(), + rootDirectory); + FileSystemUtils.createDirectoryAndParents(scratch.resolve("/foo/bar")); + scratch.file("/foo/WORKSPACE", "workspace(name = 'pkg')"); + scratch.file( + "/foo/bar/BUILD", + "cc_library(name = 'lib',", + " srcs = ['foo.cc'],", + " includes = ['./'])"); + Target target = getTarget("@pkg//bar:lib"); + ensureTargetsVisited(target.getLabel()); + assertThat( + view.hasErrors( + view.getConfiguredTargetForTesting(reporter, target.getLabel(), targetConfig))) + .isFalse(); + assertNoEvents(); + } + + @Test public void testCcLibraryRootIncludesError() throws Exception { checkError( "third_party/root", |