Mercurial > hg > thermostat
changeset 2305:361993822317
Don't rely on numastat being installed for vm-numa tests.
Reviewed-by: jerboaa, neugens
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2016-May/018888.html
author | Jie Kang <jkang@redhat.com> |
---|---|
date | Fri, 20 May 2016 09:40:14 -0400 |
parents | 846831e69547 |
children | db2b7447769f |
files | vm-numa/agent/src/main/java/com/redhat/thermostat/vm/numa/agent/internal/Activator.java vm-numa/agent/src/test/java/com/redhat/thermostat/vm/numa/agent/internal/ActivatorTest.java vm-numa/agent/src/test/java/com/redhat/thermostat/vm/numa/agent/internal/VmNumaCollectorTest.java |
diffstat | 3 files changed, 26 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/vm-numa/agent/src/main/java/com/redhat/thermostat/vm/numa/agent/internal/Activator.java Fri May 20 09:38:54 2016 -0400 +++ b/vm-numa/agent/src/main/java/com/redhat/thermostat/vm/numa/agent/internal/Activator.java Fri May 20 09:40:14 2016 -0400 @@ -75,7 +75,7 @@ VmNumaDAO vmNumaDAO = (VmNumaDAO) services.get(VmNumaDAO.class.getName()); Version version = new Version(context.getBundle()); WriterID writerID = (WriterID) services.get(WriterID.class.getName()); - backend = new VmNumaBackend(executor, vmNumaDAO, version, registrar, writerID); + backend = constructBackend(executor, vmNumaDAO, version, registrar, writerID); if (backend.canRegister()) { reg = context.registerService(Backend.class, backend, null); } @@ -101,8 +101,13 @@ tracker.close(); } - //For testing only + //Package private for testing VmNumaBackend getBackend() { return backend; } + + //Package private for testing + VmNumaBackend constructBackend(ScheduledExecutorService executor, VmNumaDAO vmNumaDAO, Version version, VmStatusListenerRegistrar registrar, WriterID writerID) { + return new VmNumaBackend(executor, vmNumaDAO, version, registrar, writerID); + } }
--- a/vm-numa/agent/src/test/java/com/redhat/thermostat/vm/numa/agent/internal/ActivatorTest.java Fri May 20 09:38:54 2016 -0400 +++ b/vm-numa/agent/src/test/java/com/redhat/thermostat/vm/numa/agent/internal/ActivatorTest.java Fri May 20 09:40:14 2016 -0400 @@ -43,11 +43,14 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; +import java.util.concurrent.ScheduledExecutorService; + import org.junit.Ignore; import org.junit.Test; import org.osgi.framework.Bundle; import org.osgi.framework.Version; +import com.redhat.thermostat.agent.VmStatusListenerRegistrar; import com.redhat.thermostat.backend.Backend; import com.redhat.thermostat.backend.BackendService; import com.redhat.thermostat.storage.core.WriterID; @@ -69,7 +72,6 @@ activator.stop(context); } - @Ignore("This test depends on numastat being installed") @Test public void verifyActivatorRegistersServices() throws Exception { StubBundleContext context = new StubBundleContext() { @@ -88,11 +90,25 @@ context.registerService(VmNumaDAO.class, vmNumaDAO, null); context.registerService(WriterID.class, idService, null); - Activator activator = new Activator(); + final VmNumaBackend[] mock = new VmNumaBackend[1]; + + Activator activator = new Activator() { + @Override + VmNumaBackend constructBackend(ScheduledExecutorService executor, VmNumaDAO vmNumaDAO, com.redhat.thermostat.common.Version version, VmStatusListenerRegistrar registrar, WriterID writerID) { + mock[0] = new VmNumaBackend(executor, vmNumaDAO, version, registrar, writerID) + { + @Override + public boolean canRegister() { + return true; + } + }; + return mock[0]; + } + }; activator.start(context); - assertTrue(context.isServiceRegistered(Backend.class.getName(), VmNumaBackend.class)); + assertTrue(context.isServiceRegistered(Backend.class.getName(), mock[0].getClass())); VmNumaBackend backend = activator.getBackend(); assertNotNull(backend);
--- a/vm-numa/agent/src/test/java/com/redhat/thermostat/vm/numa/agent/internal/VmNumaCollectorTest.java Fri May 20 09:38:54 2016 -0400 +++ b/vm-numa/agent/src/test/java/com/redhat/thermostat/vm/numa/agent/internal/VmNumaCollectorTest.java Fri May 20 09:40:14 2016 -0400 @@ -54,18 +54,6 @@ private VmNumaCollector collector; - /** - * Verify numastat output that we expect still occurs. If numastat is changed then this - * test failure signals VmNumaCollector and VmNumaStatParser needs to change. - */ - @Ignore("This test depends on numastat being installed") - @Test - public void verifyNumastatOutput() throws IOException, InterruptedException, ParseException { - //Arbitrary choice of pid 2 which should be readable. May fail if not readable. - collector = new VmNumaCollector(2); - collector.collect(); - } - @Test public void testCollectSingleNodeStat() throws ParseException { final String input = "\n" +