[libvirt] [libvirt-java] [PATCH 60/65] test: add testDomainScreenshot JUnit test

Claudio Bley cbley at av-test.de
Thu Feb 13 15:23:08 UTC 2014


Signed-off-by: Claudio Bley <cbley at av-test.de>
---
 src/test/java/org/libvirt/TestJavaBindings.java |   44 +++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/src/test/java/org/libvirt/TestJavaBindings.java b/src/test/java/org/libvirt/TestJavaBindings.java
index a73148f..24d850a 100644
--- a/src/test/java/org/libvirt/TestJavaBindings.java
+++ b/src/test/java/org/libvirt/TestJavaBindings.java
@@ -2,6 +2,9 @@ package org.libvirt;
 
 import org.libvirt.event.*;
 
+import java.io.IOException;
+import java.nio.ByteBuffer;
+import java.nio.channels.ClosedChannelException;
 import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.List;
@@ -306,4 +309,45 @@ public final class TestJavaBindings extends TestCase {
             Library.stopEventLoop();
         }
     }
+
+    public void testDomainScreenshot() throws Exception {
+        long version = conn.getLibVirVersion();
+
+        // virDomainScreenshot works since version 1.0.5 on test://
+        // connections
+        if (version < 1000005) {
+            System.err.format("testDomainScreenshot skipped (libvirt version %d.%d.%d < 1.0.5)\n",
+                              version / 1000000, version / 1000 % 1000, version % 1000);
+            return;
+        }
+
+        Stream str = this.conn.streamNew(0);
+        Domain dom = this.conn.domainLookupByName("test");
+
+        assertFalse("Domain \"test\" not found", dom == null);
+
+        String mimetype = dom.screenshot(str, 0);
+
+        ByteBuffer bb = ByteBuffer.allocateDirect(8192);
+
+        while (str.read(bb) != -1) // consume data
+            bb.clear();
+
+        // ensure that read() repeatedly returns -1 after EOF
+
+        assertEquals("Stream is at EOF (1)", -1, str.read(bb));
+        assertEquals("Stream is at EOF (2)", -1, str.read(bb));
+        assertEquals("Stream is at EOF (3)", -1, str.read(bb));
+
+        // ensure that a ClosedChannelException gets thrown when
+        // trying to read() after closing the stream
+
+        str.close();
+
+        try {
+            str.read(bb);
+            fail("ClosedChannelException expected calling read() on a closed stream");
+        } catch (ClosedChannelException expected) {
+        }
+    }
 }
-- 
1.7.9.5




More information about the libvir-list mailing list