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" +