[libvirt] [PATCH v4 2/2] tests: Adding tests cases to cover rebased settings for LXC 3.0.

Julio Faracco jcfaracco at gmail.com
Wed Nov 14 17:27:12 UTC 2018


Do you have any other suggestion for this?

I tried to keep it as simple as possible. Without creating new XML files for V3.

--
Julio Cesar Faracco

Em qua, 14 de nov de 2018 às 15:26, Julio Faracco
<jcfaracco at gmail.com> escreveu:
>
> This commit includes new test cases to cover LXC version 3.0 and higher.
> This LXC version rebased some settings entries and deprecated other ones.
> As we support both, we should include tests to minimize problems with
> integration between them.
>
> Signed-off-by: Julio Faracco <jcfaracco at gmail.com>
> ---
>  .../lxcconf2xml-blkiotune-v3.config           | 11 ++++
>  .../lxcconf2xml-cpusettune-v3.config          |  6 +++
>  .../lxcconf2xml-cputune-v3.config             |  7 +++
>  .../lxcconf2xml-ethernet-v3.config            | 44 ++++++++++++++++
>  .../lxcconf2xml-fstab-v3.config               | 37 ++++++++++++++
>  .../lxcconf2xml-idmap-v3.config               |  5 ++
>  .../lxcconf2xml-macvlannetwork-v3.config      | 13 +++++
>  .../lxcconf2xml-memtune-v3.config             | 10 ++++
>  .../lxcconf2xml-nonenetwork-v3.config         |  4 ++
>  .../lxcconf2xml-nonetwork-v3.config           |  3 ++
>  .../lxcconf2xml-physnetwork-v3.config         | 11 ++++
>  .../lxcconf2xml-simple-v3.config              | 45 ++++++++++++++++
>  .../lxcconf2xml-vlannetwork-v3.config         | 12 +++++
>  tests/lxcconf2xmltest.c                       | 51 ++++++++++++++++++-
>  14 files changed, 257 insertions(+), 2 deletions(-)
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-blkiotune-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-cpusettune-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-cputune-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-fstab-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-idmap-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-memtune-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-nonenetwork-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-nonetwork-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config
>  create mode 100644 tests/lxcconf2xmldata/lxcconf2xml-vlannetwork-v3.config
>
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-blkiotune-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-blkiotune-v3.config
> new file mode 100644
> index 0000000000..6d82ac74eb
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-blkiotune-v3.config
> @@ -0,0 +1,11 @@
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> +
> +lxc.cgroup.blkio.weight = 500
> +lxc.cgroup.blkio.device_weight = 8:16  1000
> +lxc.cgroup.blkio.device_weight = 8:0    300
> +lxc.cgroup.blkio.throttle.read_bps_device = 8:16 1234
> +lxc.cgroup.blkio.throttle.write_bps_device = 8:16 5678
> +lxc.cgroup.blkio.throttle.read_iops_device = 8:16 4321
> +lxc.cgroup.blkio.throttle.write_iops_device = 8:16 8765
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-cpusettune-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-cpusettune-v3.config
> new file mode 100644
> index 0000000000..248874b198
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-cpusettune-v3.config
> @@ -0,0 +1,6 @@
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> +
> +lxc.cgroup.cpuset.cpus = 1,2,5-7
> +lxc.cgroup.cpuset.mems = 1-4
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-cputune-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-cputune-v3.config
> new file mode 100644
> index 0000000000..bd2da94ec2
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-cputune-v3.config
> @@ -0,0 +1,7 @@
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> +
> +lxc.cgroup.cpu.shares = 1024
> +lxc.cgroup.cpu.cfs_quota_us = -1
> +lxc.cgroup.cpu.cfs_period_us = 500000
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config
> new file mode 100644
> index 0000000000..630cb2ebb6
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-ethernet-v3.config
> @@ -0,0 +1,44 @@
> +# Template used to create this container: opensuse
> +# Template script checksum (SHA-1): 27307e0a95bd81b2c0bd82d6f87fdbe83be075ef
> +
> +lxc.network.type = veth
> +lxc.network.flags = up
> +lxc.network.hwaddr = 02:00:15:8f:05:c1
> +lxc.network.name = eth0
> +lxc.network.ipv4 = 192.168.122.2/24
> +lxc.network.ipv4.gateway = 192.168.122.1
> +lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
> +lxc.network.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
> +
> +#remove next line if host DNS configuration should not be available to container
> +lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0
> +lxc.mount.entry = sysfs sys sysfs defaults  0 0
> +lxc.mount.entry = tmpfs run tmpfs size=8m,mode=0755,nodev,nosuid 0 0
> +lxc.mount.entry = /etc/resolv.conf etc/resolv.conf none bind,ro 0 0
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.arch = x86
> +lxc.autodev=1
> +lxc.tty.max = 2
> +lxc.pts = 1024
> +lxc.cap.drop = sys_module mac_admin mac_override mknod
> +
> +# When using LXC with apparmor, uncomment the next line to run unconfined:
> +#lxc.aa_profile = unconfined
> +
> +lxc.cgroup.devices.deny = a
> +# /dev/null and zero
> +lxc.cgroup.devices.allow = c 1:3 rwm
> +lxc.cgroup.devices.allow = c 1:5 rwm
> +# consoles
> +lxc.cgroup.devices.allow = c 5:1 rwm
> +lxc.cgroup.devices.allow = c 5:0 rwm
> +lxc.cgroup.devices.allow = c 4:0 rwm
> +lxc.cgroup.devices.allow = c 4:1 rwm
> +# /dev/{,u}random
> +lxc.cgroup.devices.allow = c 1:9 rwm
> +lxc.cgroup.devices.allow = c 1:8 rwm
> +lxc.cgroup.devices.allow = c 136:* rwm
> +lxc.cgroup.devices.allow = c 5:2 rwm
> +# rtc
> +lxc.cgroup.devices.allow = c 254:0 rwm
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-fstab-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-fstab-v3.config
> new file mode 100644
> index 0000000000..8b62818657
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-fstab-v3.config
> @@ -0,0 +1,37 @@
> +# Template used to create this container: opensuse
> +# Template script checksum (SHA-1): 27307e0a95bd81b2c0bd82d6f87fdbe83be075ef
> +
> +lxc.network.type = veth
> +lxc.network.flags = up
> +lxc.network.link = virbr0
> +lxc.network.hwaddr = 02:00:15:8f:05:c1
> +lxc.network.name = eth0
> +
> +#remove next line if host DNS configuration should not be available to container
> +lxc.mount.fstab = /var/lib/lxc/migrate_test/fstab
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> +lxc.tty.max = 2
> +lxc.pts = 1024
> +lxc.cap.drop = sys_module mac_admin mac_override mknod
> +
> +# When using LXC with apparmor, uncomment the next line to run unconfined:
> +#lxc.aa_profile = unconfined
> +
> +lxc.cgroup.devices.deny = a
> +# /dev/null and zero
> +lxc.cgroup.devices.allow = c 1:3 rwm
> +lxc.cgroup.devices.allow = c 1:5 rwm
> +# consoles
> +lxc.cgroup.devices.allow = c 5:1 rwm
> +lxc.cgroup.devices.allow = c 5:0 rwm
> +lxc.cgroup.devices.allow = c 4:0 rwm
> +lxc.cgroup.devices.allow = c 4:1 rwm
> +# /dev/{,u}random
> +lxc.cgroup.devices.allow = c 1:9 rwm
> +lxc.cgroup.devices.allow = c 1:8 rwm
> +lxc.cgroup.devices.allow = c 136:* rwm
> +lxc.cgroup.devices.allow = c 5:2 rwm
> +# rtc
> +lxc.cgroup.devices.allow = c 254:0 rwm
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-idmap-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-idmap-v3.config
> new file mode 100644
> index 0000000000..2caae864cc
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-idmap-v3.config
> @@ -0,0 +1,5 @@
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +
> +lxc.idmap = u 10000 0 2000
> +lxc.idmap = g 10000 0 1000
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork-v3.config
> new file mode 100644
> index 0000000000..631f07ecca
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-macvlannetwork-v3.config
> @@ -0,0 +1,13 @@
> +# Template used to create this container: opensuse
> +# Template script checksum (SHA-1): 27307e0a95bd81b2c0bd82d6f87fdbe83be075ef
> +
> +lxc.network.type = macvlan
> +lxc.network.flags = up
> +lxc.network.link = eth0
> +lxc.network.hwaddr = 02:00:15:8f:05:c1
> +lxc.network.macvlan.mode = vepa
> +
> +#remove next line if host DNS configuration should not be available to container
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-memtune-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-memtune-v3.config
> new file mode 100644
> index 0000000000..5bd928eb1a
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-memtune-v3.config
> @@ -0,0 +1,10 @@
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> +
> +# 1GiB
> +lxc.cgroup.memory.limit_in_bytes = 1073741824
> +# 128MiB
> +lxc.cgroup.memory.soft_limit_in_bytes = 134217728
> +# 2GiB
> +lxc.cgroup.memory.memsw.limit_in_bytes = 2147483648
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork-v3.config
> new file mode 100644
> index 0000000000..f81a786f1e
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-nonenetwork-v3.config
> @@ -0,0 +1,4 @@
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> +lxc.network.type = none
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-nonetwork-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-nonetwork-v3.config
> new file mode 100644
> index 0000000000..b33d5780b6
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-nonetwork-v3.config
> @@ -0,0 +1,3 @@
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config
> new file mode 100644
> index 0000000000..92729841d7
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-physnetwork-v3.config
> @@ -0,0 +1,11 @@
> +lxc.network.type = phys
> +lxc.network.link = eth0
> +lxc.network.name = eth1
> +lxc.network.ipv4 = 192.168.122.2/24
> +lxc.network.ipv4.gateway = 192.168.122.1
> +lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
> +lxc.network.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
> +
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config
> new file mode 100644
> index 0000000000..a0036a482e
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-simple-v3.config
> @@ -0,0 +1,45 @@
> +# Template used to create this container: opensuse
> +# Template script checksum (SHA-1): 27307e0a95bd81b2c0bd82d6f87fdbe83be075ef
> +
> +lxc.network.type = veth
> +lxc.network.flags = up
> +lxc.network.link = virbr0
> +lxc.network.hwaddr = 02:00:15:8f:05:c1
> +lxc.network.name = eth0
> +lxc.network.ipv4 = 192.168.122.2/24
> +lxc.network.ipv4.gateway = 192.168.122.1
> +lxc.network.ipv6 = 2003:db8:1:0:214:1234:fe0b:3596/64
> +lxc.network.ipv6.gateway = 2003:db8:1:0:214:1234:fe0b:3595
> +
> +#remove next line if host DNS configuration should not be available to container
> +lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0
> +lxc.mount.entry = sysfs sys sysfs defaults  0 0
> +lxc.mount.entry = tmpfs run tmpfs size=8m,mode=0755,nodev,nosuid 0 0
> +lxc.mount.entry = /etc/resolv.conf etc/resolv.conf none bind,ro 0 0
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.arch = x86
> +lxc.autodev=1
> +lxc.tty.max = 2
> +lxc.pts = 1024
> +lxc.cap.drop = sys_module mac_admin mac_override mknod
> +
> +# When using LXC with apparmor, uncomment the next line to run unconfined:
> +#lxc.aa_profile = unconfined
> +
> +lxc.cgroup.devices.deny = a
> +# /dev/null and zero
> +lxc.cgroup.devices.allow = c 1:3 rwm
> +lxc.cgroup.devices.allow = c 1:5 rwm
> +# consoles
> +lxc.cgroup.devices.allow = c 5:1 rwm
> +lxc.cgroup.devices.allow = c 5:0 rwm
> +lxc.cgroup.devices.allow = c 4:0 rwm
> +lxc.cgroup.devices.allow = c 4:1 rwm
> +# /dev/{,u}random
> +lxc.cgroup.devices.allow = c 1:9 rwm
> +lxc.cgroup.devices.allow = c 1:8 rwm
> +lxc.cgroup.devices.allow = c 136:* rwm
> +lxc.cgroup.devices.allow = c 5:2 rwm
> +# rtc
> +lxc.cgroup.devices.allow = c 254:0 rwm
> diff --git a/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork-v3.config b/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork-v3.config
> new file mode 100644
> index 0000000000..31e26997dd
> --- /dev/null
> +++ b/tests/lxcconf2xmldata/lxcconf2xml-vlannetwork-v3.config
> @@ -0,0 +1,12 @@
> +# Template used to create this container: opensuse
> +# Template script checksum (SHA-1): 27307e0a95bd81b2c0bd82d6f87fdbe83be075ef
> +
> +lxc.network.type = vlan
> +lxc.network.flags = up
> +lxc.network.link = eth0
> +lxc.network.hwaddr = 02:00:15:8f:05:c1
> +lxc.network.vlan.id = 2
> +
> +lxc.rootfs.path = /var/lib/lxc/migrate_test/rootfs
> +lxc.uts.name = migrate_test
> +lxc.autodev=1
> diff --git a/tests/lxcconf2xmltest.c b/tests/lxcconf2xmltest.c
> index 360d840e2e..0766239ec4 100644
> --- a/tests/lxcconf2xmltest.c
> +++ b/tests/lxcconf2xmltest.c
> @@ -64,7 +64,7 @@ struct testInfo {
>  };
>
>  static int
> -testCompareXMLToConfigHelper(const void *data)
> +testCompareXMLToConfigHelperLegacy(const void *data)
>  {
>      int result = -1;
>      const struct testInfo *info = data;
> @@ -85,6 +85,29 @@ testCompareXMLToConfigHelper(const void *data)
>      return result;
>  }
>
> +static int
> +testCompareXMLToConfigHelperV3(const void *data)
> +{
> +    int result = -1;
> +    const struct testInfo *info = data;
> +    char *xml = NULL;
> +    char *config = NULL;
> +
> +    if (virAsprintf(&xml, "%s/lxcconf2xmldata/lxcconf2xml-%s.xml",
> +                    abs_srcdir, info->name) < 0 ||
> +        virAsprintf(&config, "%s/lxcconf2xmldata/lxcconf2xml-%s-v3.config",
> +                    abs_srcdir, info->name) < 0)
> +        goto cleanup;
> +
> +    result = testCompareXMLToConfigFiles(xml, config, info->expectError);
> +
> + cleanup:
> +    VIR_FREE(xml);
> +    VIR_FREE(config);
> +    return result;
> +}
> +
> +
>  static int
>  mymain(void)
>  {
> @@ -102,7 +125,7 @@ mymain(void)
>      do { \
>          const struct testInfo info = { name, expectError }; \
>          if (virTestRun("LXC Native-2-XML " name, \
> -                       testCompareXMLToConfigHelper, \
> +                       testCompareXMLToConfigHelperLegacy, \
>                         &info) < 0) \
>              ret = EXIT_FAILURE; \
>      } while (0)
> @@ -121,6 +144,30 @@ mymain(void)
>      DO_TEST("blkiotune", false);
>      DO_TEST("ethernet", false);
>
> +    /* Tests for LXC 3.0 and higher */
> +# define DO_TEST3(name, expectError) \
> +    do { \
> +        const struct testInfo info = { name, expectError }; \
> +        if (virTestRun("LXC Native-3-XML " name, \
> +                       testCompareXMLToConfigHelperV3, \
> +                       &info) < 0) \
> +            ret = EXIT_FAILURE; \
> +    } while (0)
> +
> +    DO_TEST3("simple", false);
> +    DO_TEST3("fstab", true);
> +    DO_TEST3("nonetwork", false);
> +    DO_TEST3("nonenetwork", false);
> +    DO_TEST3("physnetwork", false);
> +    DO_TEST3("macvlannetwork", false);
> +    DO_TEST3("vlannetwork", false);
> +    DO_TEST3("idmap", false);
> +    DO_TEST3("memtune", false);
> +    DO_TEST3("cputune", false);
> +    DO_TEST3("cpusettune", false);
> +    DO_TEST3("blkiotune", false);
> +    DO_TEST3("ethernet", false);
> +
>      virObjectUnref(xmlopt);
>      virObjectUnref(caps);
>
> --
> 2.19.1
>




More information about the libvir-list mailing list