/** * Test if the default configuration for adaptive monitoring really has an empty probe pattern. */ @Test public void testInitializationDefaultConfigLocation() { final Configuration configuration = ConfigurationFactory.createSingletonConfiguration(); configuration.setProperty(ConfigurationKeys.WRITER_CLASSNAME, DumpWriter.class.getName()); configuration.setProperty(ConfigurationKeys.ADAPTIVE_MONITORING_ENABLED, "true"); final IMonitoringController ctrl = MonitoringController.createInstance(configuration); Assert.assertFalse(ctrl.isMonitoringTerminated()); final List<String> list = ctrl.getProbePatternList(); Assert.assertTrue(list.isEmpty()); ctrl.terminateMonitoring(); }
/** * Make sure that {@link MonitoringController#getInstance()} always returns the same instance. */ @Test public void testSingletonGetterOnlyOneInstance() { Assert.assertSame("singleton getter returned different objects", MonitoringController.getInstance(), MonitoringController.getInstance()); Assert.assertEquals("monitoring should not be terminated", false, MonitoringController.getInstance().isMonitoringTerminated()); } }
list4.toArray()); Assert.assertFalse(ctrl.isMonitoringTerminated()); ctrl.terminateMonitoring();
Assert.assertArrayEquals(new String[] { "-* test.Test(..)", "+public void test.Test()", }, list3.toArray()); Assert.assertFalse(ctrl.isMonitoringTerminated()); ctrl.terminateMonitoring();
/** * Test the adaptive pattern registry by adding test patterns. * * @throws UnsupportedEncodingException * when UTF-8 encoding is not supported * @throws FileNotFoundException * when file creation fails * @throws InterruptedException * when the sleep call was interrupted */ @Test public void testInitializationWithCustomConfiguration() throws UnsupportedEncodingException, FileNotFoundException, InterruptedException { this.writeToConfigFile(new String[] { "+ *", "- * test.Test()", "test invalid line in config file", "- InvalidPatternException expected", }); final Configuration configuration = ConfigurationFactory.createSingletonConfiguration(); configuration.setProperty(ConfigurationKeys.WRITER_CLASSNAME, DumpWriter.class.getName()); configuration.setProperty(ConfigurationKeys.ADAPTIVE_MONITORING_ENABLED, "true"); configuration.setProperty(ConfigurationKeys.ADAPTIVE_MONITORING_CONFIG_FILE, this.configFile.getAbsolutePath()); final IMonitoringController ctrl = MonitoringController.createInstance(configuration); Assert.assertTrue(this.configFile.exists()); final List<String> list = ctrl.getProbePatternList(); Assert.assertFalse(list.isEmpty()); Assert.assertArrayEquals(new String[] { "+*", "-* test.Test()", }, list.toArray()); // add manual entries to list ctrl.activateProbe("void test.$1.Test()"); final List<String> list2 = ctrl.getProbePatternList(); Assert.assertArrayEquals(new String[] { "+*", "-* test.Test()", "+void test.$1.Test()", }, list2.toArray()); Assert.assertFalse(ctrl.isMonitoringTerminated()); ctrl.terminateMonitoring(); }
/** * Test if enabling monitoring when starting disabled works. */ @Test public void testMonitoringDisabledToEnabled() { final Configuration configuration = DummyWriterConfigurationFactory.createDefaultConfigurationWithDummyWriter(); configuration.setProperty(ConfigurationKeys.MONITORING_ENABLED, "false"); final IMonitoringController kieker = MonitoringController.createInstance(configuration); // Check values when disabled Assert.assertEquals("Unexpected monitoringEnabled value", false, kieker.isMonitoringEnabled()); Assert.assertEquals("Unexpected monitoringTerminated value", false, kieker.isMonitoringTerminated()); // Change to enabled Assert.assertTrue("enableMonitoring returned false", kieker.enableMonitoring()); // Check values when enabled Assert.assertEquals("Unexpected monitoringEnabled value", true, kieker.isMonitoringEnabled()); Assert.assertEquals("Unexpected monitoringTerminated value", false, kieker.isMonitoringTerminated()); kieker.terminateMonitoring(); }
/** * Test if disabling enabled monitoring works. */ @Test public void testMonitoringEnabledToDisabled() { final Configuration configuration = DummyWriterConfigurationFactory.createDefaultConfigurationWithDummyWriter(); configuration.setProperty(ConfigurationKeys.MONITORING_ENABLED, "true"); final IMonitoringController kieker = MonitoringController.createInstance(configuration); // Check values when enabled Assert.assertEquals("Unexpected monitoringEnabled value", true, kieker.isMonitoringEnabled()); Assert.assertEquals("Unexpected monitoringTerminated value", false, kieker.isMonitoringTerminated()); // Change to disabled Assert.assertTrue("disableMonitoring returned false", kieker.disableMonitoring()); // Check values when disabled Assert.assertEquals("Unexpected monitoringEnabled value", false, kieker.isMonitoringEnabled()); Assert.assertEquals("Unexpected monitoringTerminated value", false, kieker.isMonitoringTerminated()); kieker.terminateMonitoring(); }
/** * Test if the initialization of the monitoring controller from a given configuration works. */ @Test public void testConstructionFromConfig() { final Configuration configuration = DummyWriterConfigurationFactory.createDefaultConfigurationWithDummyWriter(); {// Test with default values // NOCS final IMonitoringController kieker = MonitoringController.createInstance(configuration); Assert.assertEquals("monitoring should not be terminated", false, kieker.isMonitoringTerminated()); Assert.assertEquals("monitoringEnabled values differ", configuration.getBooleanProperty(ConfigurationKeys.MONITORING_ENABLED), kieker.isMonitoringEnabled()); kieker.terminateMonitoring(); } {// NOCS configuration .setProperty(ConfigurationKeys.MONITORING_ENABLED, Boolean.toString(!configuration.getBooleanProperty(ConfigurationKeys.MONITORING_ENABLED))); final IMonitoringController kieker = MonitoringController.createInstance(configuration); Assert.assertEquals("monitoring should not be terminated", false, kieker.isMonitoringTerminated()); Assert.assertEquals("monitoringEnabled values differ", configuration.getBooleanProperty(ConfigurationKeys.MONITORING_ENABLED), kieker.isMonitoringEnabled()); kieker.terminateMonitoring(); } }
/** * Test if terminating an enabled controller works. */ @Test public void testMonitoringEnabledToTerminated() { final Configuration configuration = DummyWriterConfigurationFactory.createDefaultConfigurationWithDummyWriter(); configuration.setProperty(ConfigurationKeys.MONITORING_ENABLED, "true"); final IMonitoringController kieker = MonitoringController.createInstance(configuration); // Change to terminated kieker.terminateMonitoring(); // Check values when terminated Assert.assertEquals("Unexpected monitoringEnabled value", false, kieker.isMonitoringEnabled()); Assert.assertEquals("Unexpected monitoringTerminated value", true, kieker.isMonitoringTerminated()); kieker.terminateMonitoring(); }
/** * Test if terminating an disabled controller works. */ @Test public void testMonitoringDisabledToTerminated() { final Configuration configuration = DummyWriterConfigurationFactory.createDefaultConfigurationWithDummyWriter(); configuration.setProperty(ConfigurationKeys.MONITORING_ENABLED, "false"); final IMonitoringController kieker = MonitoringController.createInstance(configuration); // Change to terminated kieker.terminateMonitoring(); { // Check values when terminated // NOCS Assert.assertEquals("Unexpected monitoringEnabled value", false, kieker.isMonitoringEnabled()); Assert.assertEquals("Unexpected monitoringTerminated value", true, kieker.isMonitoringTerminated()); } kieker.terminateMonitoring(); }
/** * Test if activation and deactivation work for sample probes. */ @Test public void testSpecialProbes() { final Configuration configuration = ConfigurationFactory.createSingletonConfiguration(); configuration.setProperty(ConfigurationKeys.WRITER_CLASSNAME, DumpWriter.class.getName()); configuration.setProperty(ConfigurationKeys.ADAPTIVE_MONITORING_ENABLED, "true"); final IMonitoringController ctrl = MonitoringController.createInstance(configuration); final String memSwapSignature = SignatureFactory.createMemSwapSignature(); // %MEM_SWAP final String cpuSignature = SignatureFactory.createCPUSignature(); // %CPU Assert.assertTrue(ctrl.isProbeActivated(memSwapSignature)); // default is true ctrl.deactivateProbe(memSwapSignature); // this entry deactivates the MemSwapProbe Assert.assertFalse(ctrl.isProbeActivated(memSwapSignature)); Assert.assertTrue(ctrl.isProbeActivated(cpuSignature)); // default is true ctrl.deactivateProbe(cpuSignature); // this entry deactivates the CpuProbe Assert.assertFalse(ctrl.isProbeActivated(cpuSignature)); // Independent of 'cpuSignature' all specific signatures are active by default. Assert.assertTrue(ctrl.isProbeActivated(SignatureFactory.createCPUSignature(0))); // %CPU::0 ctrl.deactivateProbe(SignatureFactory.createCPUSignature(0)); Assert.assertFalse(ctrl.isProbeActivated(SignatureFactory.createCPUSignature(0))); Assert.assertTrue(ctrl.isProbeActivated(SignatureFactory.createCPUSignature(1))); // %CPU::1 ctrl.deactivateProbe("%CPU::.*"); // regular expressions also allowed, this one deactivates all probes Assert.assertFalse(ctrl.isProbeActivated(SignatureFactory.createCPUSignature(0))); Assert.assertFalse(ctrl.isProbeActivated(SignatureFactory.createCPUSignature(1))); Assert.assertFalse(ctrl.isMonitoringTerminated()); ctrl.terminateMonitoring(); }