[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] xm-test: add tests for network-attach command



# HG changeset patch
# User root@xxxxxxxxxxxxxxxxxxxxx
# Node ID 1d754a4ad3507bd94d441f5367fa8010c6f075f7
# Parent  092ac41ec8bd260e63d9e7b623d4ce06eb84ecc0
xm-test: add tests for network-attach command

Signed-off-by: Murillo Fernandes Bernardes <mfb@xxxxxxxxxx>

diff -r 092ac41ec8bd -r 1d754a4ad350 tools/xm-test/configure.ac
--- a/tools/xm-test/configure.ac        Wed Nov 23 11:31:55 2005
+++ b/tools/xm-test/configure.ac        Wed Nov 23 11:32:44 2005
@@ -50,6 +50,7 @@
     tests/memmax/Makefile
     tests/memset/Makefile
     tests/migrate/Makefile
+    tests/network-attach/Makefile
     tests/pause/Makefile
     tests/reboot/Makefile
     tests/restore/Makefile
diff -r 092ac41ec8bd -r 1d754a4ad350 tools/xm-test/tests/Makefile.am
--- a/tools/xm-test/tests/Makefile.am   Wed Nov 23 11:31:55 2005
+++ b/tools/xm-test/tests/Makefile.am   Wed Nov 23 11:32:44 2005
@@ -13,6 +13,7 @@
                list            \
                memmax          \
                memset          \
+               network-attach  \
                pause           \
                reboot          \
                sedf            \
diff -r 092ac41ec8bd -r 1d754a4ad350 
tools/xm-test/tests/network-attach/01_network_attach_pos.py
--- /dev/null   Wed Nov 23 11:31:55 2005
+++ b/tools/xm-test/tests/network-attach/01_network_attach_pos.py       Wed Nov 
23 11:32:44 2005
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+
+# Copyright (C) International Business Machines Corp., 2005
+# Author: Murillo F. Bernardes <mfb@xxxxxxxxxx>
+
+import sys
+
+from XmTestLib import *
+from network_utils import *
+
+# Create a domain (default XmTestDomain, with our ramdisk)
+domain = XmTestDomain()
+
+try:
+    domain.start()
+except DomainError, e:
+    if verbose:
+        print "Failed to create test domain because:"
+        print e.extra
+    FAIL(str(e))
+
+# Attach a console to it
+try:
+    console = XmConsole(domain.getName(), historySaveCmds=True)
+except ConsoleError, e:
+    FAIL(str(e))
+
+try:
+    # Activate the console
+    console.sendInput("input")
+    # Run 'ls'
+    run = console.runCmd("ls")
+except ConsoleError, e:
+    saveLog(console.getHistory())
+    FAIL(str(e))
+    
+## Real test
+status, msg = network_attach(domain.getName(), console)
+if status:
+    FAIL(msg)
+
+
+##
+# Close the console
+console.closeConsole()
+
+# Stop the domain (nice shutdown)
+domain.stop()
diff -r 092ac41ec8bd -r 1d754a4ad350 
tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py
--- /dev/null   Wed Nov 23 11:31:55 2005
+++ b/tools/xm-test/tests/network-attach/02_network_attach_detach_pos.py        
Wed Nov 23 11:32:44 2005
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+
+# Copyright (C) International Business Machines Corp., 2005
+# Author: Murillo F. Bernardes <mfb@xxxxxxxxxx>
+
+import sys
+import re
+import time
+
+from XmTestLib import *
+from network_utils import *
+
+# Create a domain (default XmTestDomain, with our ramdisk)
+domain = XmTestDomain()
+
+try:
+    domain.start()
+except DomainError, e:
+    if verbose:
+        print "Failed to create test domain because:"
+        print e.extra
+    FAIL(str(e))
+
+# Attach a console to it
+try:
+    console = XmConsole(domain.getName(), historySaveCmds=True)
+except ConsoleError, e:
+    FAIL(str(e))
+
+try:
+    # Activate the console
+    console.sendInput("input")
+    # Run 'ls'
+    run = console.runCmd("ls")
+except ConsoleError, e:
+    saveLog(console.getHistory())
+    FAIL(str(e))
+
+## Real test - attach and detach
+status, msg = network_attach(domain.getName(), console)
+if status:
+    FAIL(msg)
+
+status, msg = network_detach(domain.getName(), console)
+if status:
+    FAIL(msg)
+
+
+
+# Close the console
+console.closeConsole()
+
+# Stop the domain (nice shutdown)
+domain.stop()
diff -r 092ac41ec8bd -r 1d754a4ad350 
tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py
--- /dev/null   Wed Nov 23 11:31:55 2005
+++ 
b/tools/xm-test/tests/network-attach/03_network_attach_detach_multiple_pos.py   
    Wed Nov 23 11:32:44 2005
@@ -0,0 +1,54 @@
+#!/usr/bin/python
+
+# Copyright (C) International Business Machines Corp., 2005
+# Author: Murillo F. Bernardes <mfb@xxxxxxxxxx>
+
+import sys
+import re
+import time
+
+from XmTestLib import *
+from network_utils import *
+
+# Create a domain (default XmTestDomain, with our ramdisk)
+domain = XmTestDomain()
+
+try:
+    domain.start()
+except DomainError, e:
+    if verbose:
+        print "Failed to create test domain because:"
+        print e.extra
+    FAIL(str(e))
+
+# Attach a console to it
+try:
+    console = XmConsole(domain.getName(), historySaveCmds=True)
+except ConsoleError, e:
+    FAIL(str(e))
+
+try:
+    # Activate the console
+    console.sendInput("input")
+    # Run 'ls'
+    run = console.runCmd("ls")
+except ConsoleError, e:
+    saveLog(console.getHistory())
+    FAIL(str(e))
+    
+for i in range(10):
+    print "Attaching %d device" % i 
+    status, msg = network_attach(domain.getName(), console)
+    if status:
+        FAIL(msg)
+    
+    print "Detaching %d device" % i 
+    status, msg = network_detach(domain.getName(), console, i)
+    if status:
+        FAIL(msg)
+
+# Close the console
+console.closeConsole()
+
+# Stop the domain (nice shutdown)
+domain.stop()
diff -r 092ac41ec8bd -r 1d754a4ad350 
tools/xm-test/tests/network-attach/04_network_attach_baddomain_neg.py
--- /dev/null   Wed Nov 23 11:31:55 2005
+++ b/tools/xm-test/tests/network-attach/04_network_attach_baddomain_neg.py     
Wed Nov 23 11:32:44 2005
@@ -0,0 +1,17 @@
+#!/usr/bin/python
+
+# Copyright (C) International Business Machines Corp., 2005
+# Author: Murillo F. Bernardes <mfb@xxxxxxxxxx>
+
+from XmTestLib import *
+
+status, output = traceCommand("xm network-attach NOT-EXIST")
+
+eyecatcher = "Error"
+where = output.find(eyecatcher)
+if status == 0:
+       FAIL("xm block-attach returned bad status, expected non 0, status is: 
%i" % status )
+elif where == -1:
+       FAIL("xm block-attach returned bad output, expected Error, output is: 
%s" % output )
+       
+
diff -r 092ac41ec8bd -r 1d754a4ad350 
tools/xm-test/tests/network-attach/Makefile.am
--- /dev/null   Wed Nov 23 11:31:55 2005
+++ b/tools/xm-test/tests/network-attach/Makefile.am    Wed Nov 23 11:32:44 2005
@@ -0,0 +1,24 @@
+
+SUBDIRS =
+
+TESTS = 01_network_attach_pos.test \
+       02_network_attach_detach_pos.test \
+       03_network_attach_detach_multiple_pos.test  \
+       04_network_attach_baddomain_neg.test
+
+DISABLED = 
+
+EXTRA_DIST = $(TESTS) $(XFAIL_TESTS) network_utils.py
+
+TESTS_ENVIRONMENT=@TENV@
+
+%.test: %.py
+       cp $< $@
+       chmod +x $@
+
+clean-local: am_config_clean-local
+
+am_config_clean-local:
+       rm -f *test
+       rm -f *log
+       rm -f *~
diff -r 092ac41ec8bd -r 1d754a4ad350 
tools/xm-test/tests/network-attach/network_utils.py
--- /dev/null   Wed Nov 23 11:31:55 2005
+++ b/tools/xm-test/tests/network-attach/network_utils.py       Wed Nov 23 
11:32:44 2005
@@ -0,0 +1,37 @@
+#!/usr/bin/python
+
+# Copyright (C) International Business Machines Corp., 2005
+# Author: Murillo F. Bernardes <mfb@xxxxxxxxxx>
+
+from XmTestLib import *
+
+def count_eth(console):
+    try:
+        run = console.runCmd("ifconfig -a | grep eth")
+    except ConsoleError, e:
+        FAIL(str(e))
+    return = len(run['output'].splitlines())
+
+def network_attach(domain_name, console):
+    eths_before = count_eth(console)
+    status, output = traceCommand("xm network-attach %s" % domain_name)
+    if status != 0:
+        return -1, "xm network-attach returned invalid %i != 0" % status
+
+    eths_after = count_eth(console)
+    if (eths_after != (eths_before+1)):
+        return -2, "Network device is not actually connected to domU"
+
+    return 0, None 
+
+def network_detach(domain_name, console, num=0):
+    eths_before = count_eth(console)
+    status, output = traceCommand("xm network-detach %s %d" % (domain_name, 
num))
+    if status != 0:
+        return -1, "xm network-attach returned invalid %i != 0" % status
+
+    eths_after = count_eth(console)
+    if eths_after != (eths_before-1):
+       return -2, "Network device was not actually disconnected from domU"
+
+    return 0, None

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.