diff options
author | 2017-10-18 06:23:14 +0200 | |
---|---|---|
committer | 2017-10-18 10:28:28 +0200 | |
commit | 72642a24f24a7d81929f7c1338d5531ef4fbe9f2 (patch) | |
tree | a9063668c05c46a3eb20e75077816e59ce95b2fe /src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java | |
parent | 41273d4e2e4e6bffb832110b3f29aef5dfd781f6 (diff) |
Add memory profiler.
This adds two dump command, bazel dump --rules and bazel dump --skylark_memory.
dump --rules outputs a summary of the count, action count, and memory consumption of each rule and aspect class.
dump --skylark_memory outputs a pprof-compatible file with all Skylark analysis allocations. Users can then use pprof as per normal to analyse their builds.
RELNOTES: Add memory profiler.
PiperOrigin-RevId: 172558600
Diffstat (limited to 'src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java')
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java index 855162d3a9..bbf3c5b09c 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkRuleClassFunctionsTest.java @@ -25,7 +25,7 @@ import com.google.common.collect.Iterables; import com.google.devtools.build.lib.analysis.skylark.SkylarkAttr; import com.google.devtools.build.lib.analysis.skylark.SkylarkAttr.Descriptor; import com.google.devtools.build.lib.analysis.skylark.SkylarkFileType; -import com.google.devtools.build.lib.analysis.skylark.SkylarkRuleClassFunctions.RuleFunction; +import com.google.devtools.build.lib.analysis.skylark.SkylarkRuleClassFunctions.SkylarkRuleFunction; import com.google.devtools.build.lib.analysis.skylark.SkylarkRuleContext; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.packages.AdvertisedProviderSet; @@ -141,7 +141,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { } private RuleClass getRuleClass(String name) throws Exception { - return ((RuleFunction) lookup(name)).getRuleClass(); + return ((SkylarkRuleFunction) lookup(name)).getRuleClass(); } private void registerDummyUserDefinedFunction() throws Exception { @@ -605,7 +605,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { @Test public void testRuleImplementation() throws Exception { evalAndExport("def impl(ctx): return None", "rule1 = rule(impl)"); - RuleClass c = ((RuleFunction) lookup("rule1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("rule1")).getRuleClass(); assertThat(c.getConfiguredTargetFunction().getName()).isEqualTo("impl"); } @@ -628,7 +628,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { @Test public void testRuleAddAttribute() throws Exception { evalAndExport("def impl(ctx): return None", "r1 = rule(impl, attrs={'a1': attr.string()})"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); assertThat(c.hasAttr("a1", Type.STRING)).isTrue(); } @@ -659,8 +659,8 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { "x = d", "y = d", "z = d"); - String dName = ((RuleFunction) lookup("d")).getRuleClass().getName(); - String fooName = ((RuleFunction) lookup("foo")).getRuleClass().getName(); + String dName = ((SkylarkRuleFunction) lookup("d")).getRuleClass().getName(); + String fooName = ((SkylarkRuleFunction) lookup("foo")).getRuleClass().getName(); assertThat(dName).isEqualTo("d"); assertThat(fooName).isEqualTo("d"); } @@ -668,7 +668,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { @Test public void testOutputToGenfiles() throws Exception { evalAndExport("def impl(ctx): pass", "r1 = rule(impl, output_to_genfiles=True)"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); assertThat(c.hasBinaryOutput()).isFalse(); } @@ -681,7 +681,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { " 'a1': attr.label_list(allow_files=True),", " 'a2': attr.int()", "})"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); assertThat(c.hasAttr("a1", BuildType.LABEL_LIST)).isTrue(); assertThat(c.hasAttr("a2", Type.INTEGER)).isTrue(); } @@ -690,7 +690,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { evalAndExport( "def impl(ctx): return None", "r1 = rule(impl, attrs = {'a1': attr.string(mandatory=True)})"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); assertThat(c.getAttributeByName("a1").isMandatory()).isTrue(); } @@ -699,7 +699,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { evalAndExport( "def impl(ctx): return None", "r1 = rule(impl, outputs = {'a': 'a.txt'})"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); ImplicitOutputsFunction function = c.getDefaultImplicitOutputsFunction(); assertThat(function.getImplicitOutputs(null)).containsExactly("a.txt"); } @@ -775,7 +775,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { "def impl(ctx): return None\n" + "r1 = rule(impl, attrs = {'a1': " + "attr.label(default = Label('//foo:foo'), allow_files=True)})"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); Attribute a = c.getAttributeByName("a1"); assertThat(a.getDefaultValueForTesting()).isInstanceOf(Label.class); assertThat(a.getDefaultValueForTesting().toString()).isEqualTo("//foo:foo"); @@ -786,7 +786,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { evalAndExport( "def impl(ctx): return None", "r1 = rule(impl, attrs = {'a1': attr.int(default = 40+2)})"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); Attribute a = c.getAttributeByName("a1"); assertThat(a.getDefaultValueForTesting()).isEqualTo(42); } @@ -801,7 +801,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { @Test public void testRuleInheritsBaseRuleAttributes() throws Exception { evalAndExport("def impl(ctx): return None", "r1 = rule(impl)"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); assertThat(c.hasAttr("tags", Type.STRING_LIST)).isTrue(); assertThat(c.hasAttr("visibility", BuildType.NODEP_LABEL_LIST)).isTrue(); assertThat(c.hasAttr("deprecation", Type.STRING)).isTrue(); @@ -1590,7 +1590,7 @@ public class SkylarkRuleClassFunctionsTest extends SkylarkTestCase { scratch.file("test/BUILD", "toolchain_type(name = 'my_toolchain_type')"); evalAndExport( "def impl(ctx): return None", "r1 = rule(impl, toolchains=['//test:my_toolchain_type'])"); - RuleClass c = ((RuleFunction) lookup("r1")).getRuleClass(); + RuleClass c = ((SkylarkRuleFunction) lookup("r1")).getRuleClass(); assertThat(c.getRequiredToolchains()).containsExactly(makeLabel("//test:my_toolchain_type")); } |