[Kimchi-devel] [PATCH 2/2] Add one more case to network tests

Aline Manera alinefm at linux.vnet.ibm.com
Tue Feb 18 20:50:11 UTC 2014


On 02/18/2014 04:41 PM, Ramon Medeiros wrote:
> Add a test without subnet while creating a network interface, to test
> bug https://github.com/kimchi-project/kimchi/issues/318.
>
> Signed-off-by: Ramon Medeiros <ramonn at linux.vnet.ibm.com>
> ---
>   tests/test_model.py | 36 ++++++++++++++++++++++++++++++++----
>   1 file changed, 32 insertions(+), 4 deletions(-)
>
> diff --git a/tests/test_model.py b/tests/test_model.py
> index 859f7bd..df6b3d0 100644
> --- a/tests/test_model.py
> +++ b/tests/test_model.py
> @@ -537,21 +537,49 @@ class ModelTests(unittest.TestCase):
>           inst = model.Model('qemu:///system', self.tmp_store)
>
>           with RollbackContext() as rollback:
> -            name = 'test-network'
> +
> +            # Regression test:
> +            # Kimchi fails creating new network #318
> +            name = 'test-network-no-subnet'
>
>               networks = inst.networks_get_list()
>               num = len(networks) + 1
>               args = {'name': name,
>                       'connection': 'nat',
> -                    'subnet': '127.0.100.0/24'}
> +                    'subnet': ''}
>               inst.networks_create(args)
>               rollback.prependDefer(inst.network_delete, name)
>
>               networks = inst.networks_get_list()
>               self.assertEquals(num, len(networks))
> +            networkinfo = inst.network_lookup(name)
> +            self.assertNotEqual(args['subnet'], networkinfo['subnet'])
> +            self.assertEqual(args['connection'], networkinfo['connection'])
> +            self.assertEquals('inactive', networkinfo['state'])
> +            self.assertEquals([], networkinfo['vms'])
> +            self.assertTrue(networkinfo['autostart'])
>
> +            inst.network_activate(name)
> +            rollback.prependDefer(inst.network_deactivate, name)
> +
> +            networkinfo = inst.network_lookup(name)
> +            self.assertEquals('active', networkinfo['state'])
> +
> +            # test network creation with subnet passed
> +            name = 'test-network-subnet'
> +
> +            networks = inst.networks_get_list()
> +            num = len(networks) + 1
> +            args = {'name': name,
> +                    'connection': 'nat',
> +                    'subnet': '127.0.0.0/24'}

The tests are failing:

======================================================================
ERROR: test_network (test_model.ModelTests)
----------------------------------------------------------------------
Traceback (most recent call last):
   File "/home/alinefm/kimchi/tests/test_model.py", line 588, in 
test_network
     inst.network_activate(name)
   File "/home/alinefm/kimchi/src/kimchi/model/networks.py", line 213, 
in activate
     network.create()
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/home/alinefm/kimchi/src/kimchi/model/libvirtconnection.py", 
line 65, in wrapper
     ret = f(*args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/libvirt.py", line 1951, in create
     if ret == -1: raise libvirtError ('virNetworkCreate() failed', 
net=self)
libvirtError: internal error Child process (/usr/sbin/dnsmasq -u 
libvirt-dnsmasq --strict-order --bind-interfaces 
--pid-file=/var/run/libvirt/network/test-network-subnet.pid --conf-file= 
--except-interface lo --listen-address 127.0.0.1 --dhcp-range 
127.0.0.129,127.0.0.255 
--dhcp-leasefile=/var/lib/libvirt/dnsmasq/test-network-subnet.leases 
--dhcp-lease-max=127 --dhcp-no-override) status unexpected: exit status 2


It needs to be a different subnet as 127.0.0.0 is already in use
I will change it before applying

> +            inst.networks_create(args)
> +            rollback.prependDefer(inst.network_delete, name)
> +
> +            networks = inst.networks_get_list()
> +            self.assertEquals(num, len(networks))
>               networkinfo = inst.network_lookup(name)
> -            self.assertEquals(args['subnet'], networkinfo['subnet'])
> +            self.assertEqual(args['subnet'], networkinfo['subnet'])
>               self.assertEqual(args['connection'], networkinfo['connection'])
>               self.assertEquals('inactive', networkinfo['state'])
>               self.assertEquals([], networkinfo['vms'])
> @@ -564,7 +592,7 @@ class ModelTests(unittest.TestCase):
>               self.assertEquals('active', networkinfo['state'])
>
>           networks = inst.networks_get_list()
> -        self.assertEquals((num - 1), len(networks))
> +        self.assertEquals((num - 2), len(networks))
>
>       def test_multithreaded_connection(self):
>           def worker():




More information about the Kimchi-devel mailing list