diff options
author | 2018-02-13 07:33:14 -0800 | |
---|---|---|
committer | 2018-02-13 07:35:20 -0800 | |
commit | 10118ab46e2f3a8e32384bbf4bb30091e9b629d4 (patch) | |
tree | 2277b220f7679bbf9eb64d1784b2a8da361b6394 /src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java | |
parent | 3bd6663e3644bf22606860bf2e594a07425bcbc1 (diff) |
Route --fdo_optimize information through an implicit dependency instead of CppConfiguration
RELNOTES: None.
PiperOrigin-RevId: 185527875
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java index 86414b8cfe..f6c0577ac8 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcToolchainTest.java @@ -699,4 +699,92 @@ public class CcToolchainTest extends BuildViewTestCase { "cc_toolchain_alias(name='ref')"); assertThat(reference.get(ToolchainInfo.PROVIDER.getKey())).isNotNull(); } + + @Test + public void testFdoOptimizeInvalidUseGeneratedArtifact() throws Exception { + reporter.removeHandler(failFastHandler); + scratch.file( + "a/BUILD", + "filegroup(", + " name='empty')", + "filegroup(", + " name = 'banana',", + " srcs = ['banana1', 'banana2'])", + "cc_toolchain(", + " name = 'b',", + " cpu = 'banana',", + " all_files = ':banana',", + " compiler_files = ':empty',", + " dwp_files = ':empty',", + " linker_files = ':empty',", + " strip_files = ':empty',", + " objcopy_files = ':empty',", + " dynamic_runtime_libs = [':empty'],", + " static_runtime_libs = [':empty'])", + "genrule(", + " name ='gen_artifact',", + " outs=['profile.profdata'],", + " cmd='touch $@')"); + useConfiguration("-c", "opt", "--fdo_optimize=//a:gen_artifact"); + assertThat(getConfiguredTarget("//a:b")).isNull(); + assertContainsEvent("--fdo_optimize points to a target that is not an input file"); + } + + @Test + public void testFdoOptimizeUnexpectedExtension() throws Exception { + reporter.removeHandler(failFastHandler); + scratch.file( + "a/BUILD", + "filegroup(", + " name='empty')", + "filegroup(", + " name = 'banana',", + " srcs = ['banana1', 'banana2'])", + "cc_toolchain(", + " name = 'b',", + " cpu = 'banana',", + " all_files = ':banana',", + " compiler_files = ':empty',", + " dwp_files = ':empty',", + " linker_files = ':empty',", + " strip_files = ':empty',", + " objcopy_files = ':empty',", + " dynamic_runtime_libs = [':empty'],", + " static_runtime_libs = [':empty'])", + "exports_files(['profile.unexpected'])"); + scratch.file("a/profile.unexpected", ""); + useConfiguration("-c", "opt", "--fdo_optimize=//a:profile.unexpected"); + assertThat(getConfiguredTarget("//a:b")).isNull(); + assertContainsEvent("invalid extension for FDO profile file"); + } + + @Test + public void testFdoOptimizeNotInputFile() throws Exception { + reporter.removeHandler(failFastHandler); + scratch.file( + "a/BUILD", + "filegroup(", + " name='empty')", + "filegroup(", + " name = 'banana',", + " srcs = ['banana1', 'banana2'])", + "cc_toolchain(", + " name = 'b',", + " cpu = 'banana',", + " all_files = ':banana',", + " compiler_files = ':empty',", + " dwp_files = ':empty',", + " linker_files = ':empty',", + " strip_files = ':empty',", + " objcopy_files = ':empty',", + " dynamic_runtime_libs = [':empty'],", + " static_runtime_libs = [':empty'])", + "filegroup(", + " name ='profile',", + " srcs=['my_profile.afdo'])"); + scratch.file("my_profile.afdo", ""); + useConfiguration("-c", "opt", "--fdo_optimize=//a:profile"); + assertThat(getConfiguredTarget("//a:b")).isNull(); + assertContainsEvent("--fdo_optimize points to a target that is not an input file"); + } } |