private static void testEmulationAccuracy(Configuration conf, FakeCpuUsageEmulatorCore fakeCore, ResourceCalculatorPlugin monitor, ResourceUsageMetrics metrics, CumulativeCpuUsageEmulatorPlugin cpuPlugin, long expectedTotalCpuUsage, long expectedTotalNumCalls) throws Exception { FakeProgressive fakeProgress = new FakeProgressive(); fakeCore.reset(); cpuPlugin.initialize(conf, metrics, monitor, fakeProgress); int numLoops = 0; while (fakeProgress.getProgress() < 1) { ++numLoops; float progress = (float)numLoops / 100; fakeProgress.setProgress(progress); cpuPlugin.emulate(); } // test if the resource plugin shows the expected invocations assertEquals("Cumulative cpu usage emulator plugin failed (num calls)!", expectedTotalNumCalls, fakeCore.getNumCalls(), 0L); // test if the resource plugin shows the expected usage assertEquals("Cumulative cpu usage emulator plugin failed (total usage)!", expectedTotalCpuUsage, fakeCore.getCpuUsage(), 0L); }
private static void testEmulationBoundary(float progress, FakeCpuUsageEmulatorCore fakeCore, FakeProgressive fakeProgress, CumulativeCpuUsageEmulatorPlugin cpuPlugin, long expectedTotalCpuUsage, long expectedTotalNumCalls, String info) throws Exception { fakeProgress.setProgress(progress); cpuPlugin.emulate(); assertEquals("Emulation interval test for cpu usage failed " + info + "!", expectedTotalCpuUsage, fakeCore.getCpuUsage(), 0L); assertEquals("Emulation interval test for num calls failed " + info + "!", expectedTotalNumCalls, fakeCore.getNumCalls(), 0L); }