< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.test/src/org/graalvm/compiler/core/test/ProfilingInfoTest.java

Print this page

        

*** 22,48 **** */ package org.graalvm.compiler.core.test; import java.io.Serializable; import jdk.vm.ci.meta.JavaTypeProfile; import jdk.vm.ci.meta.ProfilingInfo; import jdk.vm.ci.meta.ResolvedJavaMethod; import jdk.vm.ci.meta.ResolvedJavaType; import jdk.vm.ci.meta.TriState; - import org.junit.Assert; - import org.junit.Test; - /** * Tests profiling information provided by the runtime. * <p> * NOTE: These tests are actually not very robust. The problem is that only partial profiling * information may be gathered for any given method. For example, HotSpot's advanced compilation * policy can decide to only gather partial profiles in a first level compilation (see * AdvancedThresholdPolicy::common(...) in advancedThresholdPolicy.cpp). Because of this, ! * occasionally tests for {@link ProfilingInfo#getNullSeen(int)} can fail since HotSpot only set's * the null_seen bit when doing full profiling. */ public class ProfilingInfoTest extends GraalCompilerTest { private static final int N = 10; --- 22,50 ---- */ package org.graalvm.compiler.core.test; import java.io.Serializable; + import org.graalvm.compiler.test.SubprocessUtil; + import org.junit.Assert; + import org.junit.Assume; + import org.junit.Test; + import jdk.vm.ci.meta.JavaTypeProfile; import jdk.vm.ci.meta.ProfilingInfo; import jdk.vm.ci.meta.ResolvedJavaMethod; import jdk.vm.ci.meta.ResolvedJavaType; import jdk.vm.ci.meta.TriState; /** * Tests profiling information provided by the runtime. * <p> * NOTE: These tests are actually not very robust. The problem is that only partial profiling * information may be gathered for any given method. For example, HotSpot's advanced compilation * policy can decide to only gather partial profiles in a first level compilation (see * AdvancedThresholdPolicy::common(...) in advancedThresholdPolicy.cpp). Because of this, ! * occasionally tests for {@link ProfilingInfo#getNullSeen(int)} can fail since HotSpot only sets * the null_seen bit when doing full profiling. */ public class ProfilingInfoTest extends GraalCompilerTest { private static final int N = 10;
*** 180,189 **** --- 182,199 ---- resetProfile(testSnippet); typeProfile = info.getTypeProfile(bci); Assert.assertNull(typeProfile); } + public ProfilingInfoTest() { + // These tests are explicitly testing the profiling behavior of the + // interpreter. C1-based profiling differs slightly and when -Xcomp + // is present, profiles will be created by C1 compiled code, not the + // interpreter. + Assume.assumeTrue(!SubprocessUtil.getVMCommandLine().contains("-Xcomp")); + } + @Test public void testExceptionSeen() { // NullPointerException ProfilingInfo info = profile("nullPointerExceptionSnippet", 5); Assert.assertEquals(TriState.FALSE, info.getExceptionSeen(1));
< prev index next >