[pve-devel] [PATCH container 5/5] Add snapshot tests
Fabian Grünbichler
f.gruenbichler at proxmox.com
Mon Feb 22 13:09:01 CET 2016
tested so far:
-snapshot_prepare
-snapshot_commit
-snapshot_create
-snapshot_delete
---
src/test/Makefile | 10 +-
src/test/run_setup_tests.pl | 98 ++++++
src/test/run_snapshot_tests.pl | 10 +
src/test/run_tests.pl | 98 ------
src/test/setup-centos6-001/config | 4 +
src/test/setup-centos6-001/etc/hosts.exp | 2 +
.../etc/init/power-status-changed.conf.exp | 5 +
.../setup-centos6-001/etc/init/start-ttys.conf.exp | 18 ++
src/test/setup-centos6-001/etc/init/tty.conf.exp | 13 +
src/test/setup-centos6-001/etc/rc.d/rc.sysinit | 6 +
src/test/setup-centos6-001/etc/rc.d/rc.sysinit.exp | 6 +
src/test/setup-centos6-001/etc/redhat-release | 1 +
src/test/setup-centos6-001/etc/resolv.conf.exp | 3 +
src/test/setup-centos6-001/etc/securetty | 23 ++
src/test/setup-centos6-001/etc/securetty.exp | 28 ++
src/test/setup-centos6-001/etc/sysconfig/network | 0
.../etc/sysconfig/network-scripts/ifcfg-eth0.exp | 6 +
.../etc/sysconfig/network-scripts/ifcfg-eth1.exp | 5 +
.../setup-centos6-001/etc/sysconfig/network.exp | 2 +
src/test/setup-debian-001/config | 1 +
src/test/setup-debian-001/etc/crontab | 15 +
src/test/setup-debian-001/etc/crontab.exp | 15 +
src/test/setup-debian-001/etc/debian_version | 1 +
src/test/setup-debian-001/etc/hostname.exp | 1 +
src/test/setup-debian-001/etc/hosts.exp | 2 +
src/test/setup-debian-002/config | 4 +
src/test/setup-debian-002/etc/debian_version | 1 +
src/test/setup-debian-002/etc/hostname.exp | 1 +
src/test/setup-debian-002/etc/hosts.exp | 2 +
.../setup-debian-002/etc/network/interfaces.exp | 14 +
src/test/setup-debian-003/config | 5 +
src/test/setup-debian-003/etc/debian_version | 1 +
src/test/setup-debian-003/etc/hostname.exp | 1 +
src/test/setup-debian-003/etc/hosts.exp | 2 +
src/test/setup-debian-003/etc/network/interfaces | 2 +
.../setup-debian-003/etc/network/interfaces.exp | 6 +
src/test/setup-debian-004/config | 5 +
src/test/setup-debian-004/etc/debian_version | 1 +
src/test/setup-debian-004/etc/hostname.exp | 1 +
src/test/setup-debian-004/etc/hosts.exp | 2 +
src/test/setup-debian-004/etc/network/interfaces | 2 +
.../setup-debian-004/etc/network/interfaces.exp | 9 +
src/test/setup-debian-005/config | 2 +
src/test/setup-debian-005/etc/debian_version | 1 +
src/test/setup-debian-005/etc/hostname.exp | 1 +
src/test/setup-debian-005/etc/hosts.exp | 2 +
src/test/setup-debian-005/etc/inittab | 69 +++++
src/test/setup-debian-005/etc/inittab.exp | 64 ++++
src/test/setup-debian-006/config | 2 +
src/test/setup-debian-006/etc/debian_version | 1 +
src/test/setup-debian-006/etc/hostname.exp | 1 +
src/test/setup-debian-006/etc/hosts.exp | 2 +
src/test/setup-debian-006/etc/inittab | 69 +++++
src/test/setup-debian-006/etc/inittab.exp | 60 ++++
src/test/setup-debian-007/config | 3 +
src/test/setup-debian-007/etc/debian_version | 1 +
src/test/setup-debian-007/etc/hostname.exp | 1 +
src/test/setup-debian-007/etc/hosts.exp | 2 +
src/test/setup-debian-007/etc/resolv.conf.exp | 3 +
src/test/setup-debian-008/config | 9 +
src/test/setup-debian-008/etc/debian_version | 1 +
src/test/setup-debian-008/etc/hostname.exp | 1 +
src/test/setup-debian-008/etc/hosts | 2 +
src/test/setup-debian-008/etc/hosts.exp | 2 +
src/test/setup-debian-008/etc/network/interfaces | 2 +
.../setup-debian-008/etc/network/interfaces.exp | 9 +
src/test/setup-debian-008/etc/resolv.conf.exp | 3 +
src/test/setup-debian-009/config | 1 +
src/test/setup-debian-009/etc/debian_version | 1 +
src/test/setup-debian-009/etc/hostname.exp | 1 +
src/test/setup-debian-009/etc/hosts.exp | 2 +
src/test/setup-debian-009/etc/passwd | 21 ++
src/test/setup-debian-009/etc/passwd.exp | 21 ++
src/test/setup-debian-009/etc/shadow | 21 ++
src/test/setup-debian-009/etc/shadow.exp | 21 ++
src/test/setup-debian-010/config | 2 +
src/test/setup-debian-010/etc/debian_version | 1 +
src/test/setup-debian-010/etc/hostname.exp | 1 +
src/test/setup-debian-010/etc/hosts.exp | 2 +
src/test/setup-debian-010/etc/inittab | 64 ++++
src/test/setup-debian-010/etc/inittab.exp | 64 ++++
src/test/setup-debian-011/config | 1 +
src/test/setup-debian-011/etc/debian_version | 1 +
src/test/setup-debian-011/etc/network/interfaces | 2 +
.../setup-debian-011/etc/network/interfaces.exp | 8 +
src/test/setup-debian-012/config | 2 +
src/test/setup-debian-012/etc/debian_version | 1 +
src/test/setup-debian-012/etc/network/interfaces | 2 +
.../setup-debian-012/etc/network/interfaces.exp | 21 ++
src/test/setup-debian-013/config | 1 +
src/test/setup-debian-013/etc/debian_version | 1 +
src/test/setup-debian-013/etc/hosts | 1 +
src/test/setup-debian-013/etc/hosts.exp | 2 +
src/test/setup-opensuse-001/config | 5 +
src/test/setup-opensuse-001/etc/SuSE-brand | 2 +
src/test/setup-opensuse-001/etc/hosts.exp | 2 +
src/test/setup-opensuse-001/etc/resolv.conf.exp | 3 +
src/test/setup-opensuse-001/etc/securetty | 7 +
src/test/setup-opensuse-001/etc/securetty.exp | 12 +
.../etc/sysconfig/network/ifcfg-eth0.exp | 3 +
.../etc/sysconfig/network/ifcfg-eth1.exp | 3 +
.../etc/sysconfig/network/ifcfg-eth2.exp | 2 +
.../etc/sysconfig/network/ifcfg-eth3.exp | 2 +
.../etc/sysconfig/network/ifroute-eth0.exp | 3 +
.../etc/sysconfig/network/ifroute-eth1 | 1 +
.../etc/sysconfig/network/ifroute-eth1.exp | 1 +
src/test/setup-opensuse-002/config | 4 +
src/test/setup-opensuse-002/etc/SuSE-brand | 2 +
src/test/setup-opensuse-002/etc/securetty | 7 +
src/test/setup-opensuse-002/etc/securetty.exp | 12 +
.../etc/sysconfig/network/ifcfg-eth0.exp | 3 +
.../etc/sysconfig/network/ifcfg-eth1.exp | 3 +
.../etc/sysconfig/network/ifcfg-eth2.exp | 2 +
.../etc/sysconfig/network/ifroute-eth0.exp | 3 +
src/test/setup-opensuse-003/config | 5 +
src/test/setup-opensuse-003/etc/SuSE-brand | 2 +
src/test/setup-opensuse-003/etc/securetty | 7 +
src/test/setup-opensuse-003/etc/securetty.exp | 12 +
.../etc/sysconfig/network/ifcfg-eth0.exp | 4 +
.../etc/sysconfig/network/ifcfg-eth1.exp | 2 +
.../etc/sysconfig/network/ifcfg-eth2.exp | 2 +
.../etc/sysconfig/network/ifcfg-eth3.exp | 2 +
.../etc/sysconfig/network/ifroute-eth0.exp | 5 +
src/test/snapshot-expected/commit/lxc/101.conf | 23 ++
src/test/snapshot-expected/commit/lxc/102.conf | 37 +++
src/test/snapshot-expected/commit/lxc/201.conf | 9 +
src/test/snapshot-expected/commit/lxc/202.conf | 10 +
src/test/snapshot-expected/commit/lxc/203.conf | 23 ++
src/test/snapshot-expected/create/lxc/101.conf | 23 ++
src/test/snapshot-expected/create/lxc/102.conf | 37 +++
src/test/snapshot-expected/create/lxc/201.conf | 9 +
src/test/snapshot-expected/create/lxc/202.conf | 9 +
src/test/snapshot-expected/delete/lxc/101.conf | 9 +
src/test/snapshot-expected/delete/lxc/102.conf | 23 ++
src/test/snapshot-expected/delete/lxc/103.conf | 23 ++
src/test/snapshot-expected/delete/lxc/104.conf | 37 +++
src/test/snapshot-expected/delete/lxc/105.conf | 9 +
src/test/snapshot-expected/delete/lxc/201.conf | 24 ++
src/test/snapshot-expected/delete/lxc/202.conf | 24 ++
src/test/snapshot-expected/prepare/lxc/101.conf | 24 ++
src/test/snapshot-expected/prepare/lxc/102.conf | 39 +++
src/test/snapshot-expected/prepare/lxc/200.conf | 24 ++
src/test/snapshot-expected/prepare/lxc/201.conf | 23 ++
src/test/snapshot-expected/prepare/lxc/202.conf | 9 +
src/test/snapshot-expected/prepare/lxc/300.conf | 9 +
src/test/snapshot-input/commit/lxc/101.conf | 24 ++
src/test/snapshot-input/commit/lxc/102.conf | 39 +++
src/test/snapshot-input/commit/lxc/201.conf | 9 +
src/test/snapshot-input/commit/lxc/202.conf | 10 +
src/test/snapshot-input/commit/lxc/203.conf | 23 ++
src/test/snapshot-input/create/lxc/101.conf | 9 +
src/test/snapshot-input/create/lxc/102.conf | 23 ++
src/test/snapshot-input/create/lxc/201.conf | 9 +
src/test/snapshot-input/create/lxc/202.conf | 9 +
src/test/snapshot-input/delete/lxc/101.conf | 23 ++
src/test/snapshot-input/delete/lxc/102.conf | 37 +++
src/test/snapshot-input/delete/lxc/103.conf | 37 +++
src/test/snapshot-input/delete/lxc/104.conf | 51 ++++
src/test/snapshot-input/delete/lxc/105.conf | 23 ++
src/test/snapshot-input/delete/lxc/201.conf | 23 ++
src/test/snapshot-input/delete/lxc/202.conf | 24 ++
src/test/snapshot-input/prepare/lxc/101.conf | 9 +
src/test/snapshot-input/prepare/lxc/102.conf | 23 ++
src/test/snapshot-input/prepare/lxc/200.conf | 24 ++
src/test/snapshot-input/prepare/lxc/201.conf | 23 ++
src/test/snapshot-input/prepare/lxc/202.conf | 9 +
src/test/snapshot-input/prepare/lxc/300.conf | 9 +
src/test/snapshot-input/storage.cfg | 4 +
src/test/snapshot-test.pm | 332 +++++++++++++++++++++
src/test/test-centos6-001/config | 4 -
src/test/test-centos6-001/etc/hosts.exp | 2 -
.../etc/init/power-status-changed.conf.exp | 5 -
.../test-centos6-001/etc/init/start-ttys.conf.exp | 18 --
src/test/test-centos6-001/etc/init/tty.conf.exp | 13 -
src/test/test-centos6-001/etc/rc.d/rc.sysinit | 6 -
src/test/test-centos6-001/etc/rc.d/rc.sysinit.exp | 6 -
src/test/test-centos6-001/etc/redhat-release | 1 -
src/test/test-centos6-001/etc/resolv.conf.exp | 3 -
src/test/test-centos6-001/etc/securetty | 23 --
src/test/test-centos6-001/etc/securetty.exp | 28 --
src/test/test-centos6-001/etc/sysconfig/network | 0
.../etc/sysconfig/network-scripts/ifcfg-eth0.exp | 6 -
.../etc/sysconfig/network-scripts/ifcfg-eth1.exp | 5 -
.../test-centos6-001/etc/sysconfig/network.exp | 2 -
src/test/test-debian-001/config | 1 -
src/test/test-debian-001/etc/crontab | 15 -
src/test/test-debian-001/etc/crontab.exp | 15 -
src/test/test-debian-001/etc/debian_version | 1 -
src/test/test-debian-001/etc/hostname.exp | 1 -
src/test/test-debian-001/etc/hosts.exp | 2 -
src/test/test-debian-002/config | 4 -
src/test/test-debian-002/etc/debian_version | 1 -
src/test/test-debian-002/etc/hostname.exp | 1 -
src/test/test-debian-002/etc/hosts.exp | 2 -
.../test-debian-002/etc/network/interfaces.exp | 14 -
src/test/test-debian-003/config | 5 -
src/test/test-debian-003/etc/debian_version | 1 -
src/test/test-debian-003/etc/hostname.exp | 1 -
src/test/test-debian-003/etc/hosts.exp | 2 -
src/test/test-debian-003/etc/network/interfaces | 2 -
.../test-debian-003/etc/network/interfaces.exp | 6 -
src/test/test-debian-004/config | 5 -
src/test/test-debian-004/etc/debian_version | 1 -
src/test/test-debian-004/etc/hostname.exp | 1 -
src/test/test-debian-004/etc/hosts.exp | 2 -
src/test/test-debian-004/etc/network/interfaces | 2 -
.../test-debian-004/etc/network/interfaces.exp | 9 -
src/test/test-debian-005/config | 2 -
src/test/test-debian-005/etc/debian_version | 1 -
src/test/test-debian-005/etc/hostname.exp | 1 -
src/test/test-debian-005/etc/hosts.exp | 2 -
src/test/test-debian-005/etc/inittab | 69 -----
src/test/test-debian-005/etc/inittab.exp | 64 ----
src/test/test-debian-006/config | 2 -
src/test/test-debian-006/etc/debian_version | 1 -
src/test/test-debian-006/etc/hostname.exp | 1 -
src/test/test-debian-006/etc/hosts.exp | 2 -
src/test/test-debian-006/etc/inittab | 69 -----
src/test/test-debian-006/etc/inittab.exp | 60 ----
src/test/test-debian-007/config | 3 -
src/test/test-debian-007/etc/debian_version | 1 -
src/test/test-debian-007/etc/hostname.exp | 1 -
src/test/test-debian-007/etc/hosts.exp | 2 -
src/test/test-debian-007/etc/resolv.conf.exp | 3 -
src/test/test-debian-008/config | 9 -
src/test/test-debian-008/etc/debian_version | 1 -
src/test/test-debian-008/etc/hostname.exp | 1 -
src/test/test-debian-008/etc/hosts | 2 -
src/test/test-debian-008/etc/hosts.exp | 2 -
src/test/test-debian-008/etc/network/interfaces | 2 -
.../test-debian-008/etc/network/interfaces.exp | 9 -
src/test/test-debian-008/etc/resolv.conf.exp | 3 -
src/test/test-debian-009/config | 1 -
src/test/test-debian-009/etc/debian_version | 1 -
src/test/test-debian-009/etc/hostname.exp | 1 -
src/test/test-debian-009/etc/hosts.exp | 2 -
src/test/test-debian-009/etc/passwd | 21 --
src/test/test-debian-009/etc/passwd.exp | 21 --
src/test/test-debian-009/etc/shadow | 21 --
src/test/test-debian-009/etc/shadow.exp | 21 --
src/test/test-debian-010/config | 2 -
src/test/test-debian-010/etc/debian_version | 1 -
src/test/test-debian-010/etc/hostname.exp | 1 -
src/test/test-debian-010/etc/hosts.exp | 2 -
src/test/test-debian-010/etc/inittab | 64 ----
src/test/test-debian-010/etc/inittab.exp | 64 ----
src/test/test-debian-011/config | 1 -
src/test/test-debian-011/etc/debian_version | 1 -
src/test/test-debian-011/etc/network/interfaces | 2 -
.../test-debian-011/etc/network/interfaces.exp | 8 -
src/test/test-debian-012/config | 2 -
src/test/test-debian-012/etc/debian_version | 1 -
src/test/test-debian-012/etc/network/interfaces | 2 -
.../test-debian-012/etc/network/interfaces.exp | 21 --
src/test/test-debian-013/config | 1 -
src/test/test-debian-013/etc/debian_version | 1 -
src/test/test-debian-013/etc/hosts | 1 -
src/test/test-debian-013/etc/hosts.exp | 2 -
src/test/test-opensuse-001/config | 5 -
src/test/test-opensuse-001/etc/SuSE-brand | 2 -
src/test/test-opensuse-001/etc/hosts.exp | 2 -
src/test/test-opensuse-001/etc/resolv.conf.exp | 3 -
src/test/test-opensuse-001/etc/securetty | 7 -
src/test/test-opensuse-001/etc/securetty.exp | 12 -
.../etc/sysconfig/network/ifcfg-eth0.exp | 3 -
.../etc/sysconfig/network/ifcfg-eth1.exp | 3 -
.../etc/sysconfig/network/ifcfg-eth2.exp | 2 -
.../etc/sysconfig/network/ifcfg-eth3.exp | 2 -
.../etc/sysconfig/network/ifroute-eth0.exp | 3 -
.../etc/sysconfig/network/ifroute-eth1 | 1 -
.../etc/sysconfig/network/ifroute-eth1.exp | 1 -
src/test/test-opensuse-002/config | 4 -
src/test/test-opensuse-002/etc/SuSE-brand | 2 -
src/test/test-opensuse-002/etc/securetty | 7 -
src/test/test-opensuse-002/etc/securetty.exp | 12 -
.../etc/sysconfig/network/ifcfg-eth0.exp | 3 -
.../etc/sysconfig/network/ifcfg-eth1.exp | 3 -
.../etc/sysconfig/network/ifcfg-eth2.exp | 2 -
.../etc/sysconfig/network/ifroute-eth0.exp | 3 -
src/test/test-opensuse-003/config | 5 -
src/test/test-opensuse-003/etc/SuSE-brand | 2 -
src/test/test-opensuse-003/etc/securetty | 7 -
src/test/test-opensuse-003/etc/securetty.exp | 12 -
.../etc/sysconfig/network/ifcfg-eth0.exp | 4 -
.../etc/sysconfig/network/ifcfg-eth1.exp | 2 -
.../etc/sysconfig/network/ifcfg-eth2.exp | 2 -
.../etc/sysconfig/network/ifcfg-eth3.exp | 2 -
.../etc/sysconfig/network/ifroute-eth0.exp | 5 -
288 files changed, 2295 insertions(+), 1020 deletions(-)
create mode 100755 src/test/run_setup_tests.pl
create mode 100755 src/test/run_snapshot_tests.pl
delete mode 100755 src/test/run_tests.pl
create mode 100644 src/test/setup-centos6-001/config
create mode 100644 src/test/setup-centos6-001/etc/hosts.exp
create mode 100644 src/test/setup-centos6-001/etc/init/power-status-changed.conf.exp
create mode 100644 src/test/setup-centos6-001/etc/init/start-ttys.conf.exp
create mode 100644 src/test/setup-centos6-001/etc/init/tty.conf.exp
create mode 100644 src/test/setup-centos6-001/etc/rc.d/rc.sysinit
create mode 100644 src/test/setup-centos6-001/etc/rc.d/rc.sysinit.exp
create mode 100644 src/test/setup-centos6-001/etc/redhat-release
create mode 100644 src/test/setup-centos6-001/etc/resolv.conf.exp
create mode 100644 src/test/setup-centos6-001/etc/securetty
create mode 100644 src/test/setup-centos6-001/etc/securetty.exp
create mode 100644 src/test/setup-centos6-001/etc/sysconfig/network
create mode 100644 src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp
create mode 100644 src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp
create mode 100644 src/test/setup-centos6-001/etc/sysconfig/network.exp
create mode 100644 src/test/setup-debian-001/config
create mode 100644 src/test/setup-debian-001/etc/crontab
create mode 100644 src/test/setup-debian-001/etc/crontab.exp
create mode 100644 src/test/setup-debian-001/etc/debian_version
create mode 100644 src/test/setup-debian-001/etc/hostname.exp
create mode 100644 src/test/setup-debian-001/etc/hosts.exp
create mode 100644 src/test/setup-debian-002/config
create mode 100644 src/test/setup-debian-002/etc/debian_version
create mode 100644 src/test/setup-debian-002/etc/hostname.exp
create mode 100644 src/test/setup-debian-002/etc/hosts.exp
create mode 100644 src/test/setup-debian-002/etc/network/interfaces.exp
create mode 100644 src/test/setup-debian-003/config
create mode 100644 src/test/setup-debian-003/etc/debian_version
create mode 100644 src/test/setup-debian-003/etc/hostname.exp
create mode 100644 src/test/setup-debian-003/etc/hosts.exp
create mode 100644 src/test/setup-debian-003/etc/network/interfaces
create mode 100644 src/test/setup-debian-003/etc/network/interfaces.exp
create mode 100644 src/test/setup-debian-004/config
create mode 100644 src/test/setup-debian-004/etc/debian_version
create mode 100644 src/test/setup-debian-004/etc/hostname.exp
create mode 100644 src/test/setup-debian-004/etc/hosts.exp
create mode 100644 src/test/setup-debian-004/etc/network/interfaces
create mode 100644 src/test/setup-debian-004/etc/network/interfaces.exp
create mode 100644 src/test/setup-debian-005/config
create mode 100644 src/test/setup-debian-005/etc/debian_version
create mode 100644 src/test/setup-debian-005/etc/hostname.exp
create mode 100644 src/test/setup-debian-005/etc/hosts.exp
create mode 100644 src/test/setup-debian-005/etc/inittab
create mode 100644 src/test/setup-debian-005/etc/inittab.exp
create mode 100644 src/test/setup-debian-006/config
create mode 100644 src/test/setup-debian-006/etc/debian_version
create mode 100644 src/test/setup-debian-006/etc/hostname.exp
create mode 100644 src/test/setup-debian-006/etc/hosts.exp
create mode 100644 src/test/setup-debian-006/etc/inittab
create mode 100644 src/test/setup-debian-006/etc/inittab.exp
create mode 100644 src/test/setup-debian-007/config
create mode 100644 src/test/setup-debian-007/etc/debian_version
create mode 100644 src/test/setup-debian-007/etc/hostname.exp
create mode 100644 src/test/setup-debian-007/etc/hosts.exp
create mode 100644 src/test/setup-debian-007/etc/resolv.conf.exp
create mode 100644 src/test/setup-debian-008/config
create mode 100644 src/test/setup-debian-008/etc/debian_version
create mode 100644 src/test/setup-debian-008/etc/hostname.exp
create mode 100644 src/test/setup-debian-008/etc/hosts
create mode 100644 src/test/setup-debian-008/etc/hosts.exp
create mode 100644 src/test/setup-debian-008/etc/network/interfaces
create mode 100644 src/test/setup-debian-008/etc/network/interfaces.exp
create mode 100644 src/test/setup-debian-008/etc/resolv.conf.exp
create mode 100644 src/test/setup-debian-009/config
create mode 100644 src/test/setup-debian-009/etc/debian_version
create mode 100644 src/test/setup-debian-009/etc/hostname.exp
create mode 100644 src/test/setup-debian-009/etc/hosts.exp
create mode 100644 src/test/setup-debian-009/etc/passwd
create mode 100644 src/test/setup-debian-009/etc/passwd.exp
create mode 100644 src/test/setup-debian-009/etc/shadow
create mode 100644 src/test/setup-debian-009/etc/shadow.exp
create mode 100644 src/test/setup-debian-010/config
create mode 100644 src/test/setup-debian-010/etc/debian_version
create mode 100644 src/test/setup-debian-010/etc/hostname.exp
create mode 100644 src/test/setup-debian-010/etc/hosts.exp
create mode 100644 src/test/setup-debian-010/etc/inittab
create mode 100644 src/test/setup-debian-010/etc/inittab.exp
create mode 100644 src/test/setup-debian-011/config
create mode 100644 src/test/setup-debian-011/etc/debian_version
create mode 100644 src/test/setup-debian-011/etc/network/interfaces
create mode 100644 src/test/setup-debian-011/etc/network/interfaces.exp
create mode 100644 src/test/setup-debian-012/config
create mode 100644 src/test/setup-debian-012/etc/debian_version
create mode 100644 src/test/setup-debian-012/etc/network/interfaces
create mode 100644 src/test/setup-debian-012/etc/network/interfaces.exp
create mode 100644 src/test/setup-debian-013/config
create mode 100644 src/test/setup-debian-013/etc/debian_version
create mode 120000 src/test/setup-debian-013/etc/hosts
create mode 100644 src/test/setup-debian-013/etc/hosts.exp
create mode 100644 src/test/setup-opensuse-001/config
create mode 100644 src/test/setup-opensuse-001/etc/SuSE-brand
create mode 100644 src/test/setup-opensuse-001/etc/hosts.exp
create mode 100644 src/test/setup-opensuse-001/etc/resolv.conf.exp
create mode 100644 src/test/setup-opensuse-001/etc/securetty
create mode 100644 src/test/setup-opensuse-001/etc/securetty.exp
create mode 100644 src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp
create mode 100644 src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp
create mode 100644 src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp
create mode 100644 src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp
create mode 100644 src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp
create mode 100644 src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1
create mode 100644 src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp
create mode 100644 src/test/setup-opensuse-002/config
create mode 100644 src/test/setup-opensuse-002/etc/SuSE-brand
create mode 100644 src/test/setup-opensuse-002/etc/securetty
create mode 100644 src/test/setup-opensuse-002/etc/securetty.exp
create mode 100644 src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp
create mode 100644 src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp
create mode 100644 src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp
create mode 100644 src/test/setup-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp
create mode 100644 src/test/setup-opensuse-003/config
create mode 100644 src/test/setup-opensuse-003/etc/SuSE-brand
create mode 100644 src/test/setup-opensuse-003/etc/securetty
create mode 100644 src/test/setup-opensuse-003/etc/securetty.exp
create mode 100644 src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp
create mode 100644 src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp
create mode 100644 src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp
create mode 100644 src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp
create mode 100644 src/test/setup-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp
create mode 100644 src/test/snapshot-expected/commit/lxc/101.conf
create mode 100644 src/test/snapshot-expected/commit/lxc/102.conf
create mode 100644 src/test/snapshot-expected/commit/lxc/201.conf
create mode 100644 src/test/snapshot-expected/commit/lxc/202.conf
create mode 100644 src/test/snapshot-expected/commit/lxc/203.conf
create mode 100644 src/test/snapshot-expected/create/lxc/101.conf
create mode 100644 src/test/snapshot-expected/create/lxc/102.conf
create mode 100644 src/test/snapshot-expected/create/lxc/201.conf
create mode 100644 src/test/snapshot-expected/create/lxc/202.conf
create mode 100644 src/test/snapshot-expected/delete/lxc/101.conf
create mode 100644 src/test/snapshot-expected/delete/lxc/102.conf
create mode 100644 src/test/snapshot-expected/delete/lxc/103.conf
create mode 100644 src/test/snapshot-expected/delete/lxc/104.conf
create mode 100644 src/test/snapshot-expected/delete/lxc/105.conf
create mode 100644 src/test/snapshot-expected/delete/lxc/201.conf
create mode 100644 src/test/snapshot-expected/delete/lxc/202.conf
create mode 100644 src/test/snapshot-expected/prepare/lxc/101.conf
create mode 100644 src/test/snapshot-expected/prepare/lxc/102.conf
create mode 100644 src/test/snapshot-expected/prepare/lxc/200.conf
create mode 100644 src/test/snapshot-expected/prepare/lxc/201.conf
create mode 100644 src/test/snapshot-expected/prepare/lxc/202.conf
create mode 100644 src/test/snapshot-expected/prepare/lxc/300.conf
create mode 100644 src/test/snapshot-input/commit/lxc/101.conf
create mode 100644 src/test/snapshot-input/commit/lxc/102.conf
create mode 100644 src/test/snapshot-input/commit/lxc/201.conf
create mode 100644 src/test/snapshot-input/commit/lxc/202.conf
create mode 100644 src/test/snapshot-input/commit/lxc/203.conf
create mode 100644 src/test/snapshot-input/create/lxc/101.conf
create mode 100644 src/test/snapshot-input/create/lxc/102.conf
create mode 100644 src/test/snapshot-input/create/lxc/201.conf
create mode 100644 src/test/snapshot-input/create/lxc/202.conf
create mode 100644 src/test/snapshot-input/delete/lxc/101.conf
create mode 100644 src/test/snapshot-input/delete/lxc/102.conf
create mode 100644 src/test/snapshot-input/delete/lxc/103.conf
create mode 100644 src/test/snapshot-input/delete/lxc/104.conf
create mode 100644 src/test/snapshot-input/delete/lxc/105.conf
create mode 100644 src/test/snapshot-input/delete/lxc/201.conf
create mode 100644 src/test/snapshot-input/delete/lxc/202.conf
create mode 100644 src/test/snapshot-input/prepare/lxc/101.conf
create mode 100644 src/test/snapshot-input/prepare/lxc/102.conf
create mode 100644 src/test/snapshot-input/prepare/lxc/200.conf
create mode 100644 src/test/snapshot-input/prepare/lxc/201.conf
create mode 100644 src/test/snapshot-input/prepare/lxc/202.conf
create mode 100644 src/test/snapshot-input/prepare/lxc/300.conf
create mode 100644 src/test/snapshot-input/storage.cfg
create mode 100644 src/test/snapshot-test.pm
delete mode 100644 src/test/test-centos6-001/config
delete mode 100644 src/test/test-centos6-001/etc/hosts.exp
delete mode 100644 src/test/test-centos6-001/etc/init/power-status-changed.conf.exp
delete mode 100644 src/test/test-centos6-001/etc/init/start-ttys.conf.exp
delete mode 100644 src/test/test-centos6-001/etc/init/tty.conf.exp
delete mode 100644 src/test/test-centos6-001/etc/rc.d/rc.sysinit
delete mode 100644 src/test/test-centos6-001/etc/rc.d/rc.sysinit.exp
delete mode 100644 src/test/test-centos6-001/etc/redhat-release
delete mode 100644 src/test/test-centos6-001/etc/resolv.conf.exp
delete mode 100644 src/test/test-centos6-001/etc/securetty
delete mode 100644 src/test/test-centos6-001/etc/securetty.exp
delete mode 100644 src/test/test-centos6-001/etc/sysconfig/network
delete mode 100644 src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp
delete mode 100644 src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp
delete mode 100644 src/test/test-centos6-001/etc/sysconfig/network.exp
delete mode 100644 src/test/test-debian-001/config
delete mode 100644 src/test/test-debian-001/etc/crontab
delete mode 100644 src/test/test-debian-001/etc/crontab.exp
delete mode 100644 src/test/test-debian-001/etc/debian_version
delete mode 100644 src/test/test-debian-001/etc/hostname.exp
delete mode 100644 src/test/test-debian-001/etc/hosts.exp
delete mode 100644 src/test/test-debian-002/config
delete mode 100644 src/test/test-debian-002/etc/debian_version
delete mode 100644 src/test/test-debian-002/etc/hostname.exp
delete mode 100644 src/test/test-debian-002/etc/hosts.exp
delete mode 100644 src/test/test-debian-002/etc/network/interfaces.exp
delete mode 100644 src/test/test-debian-003/config
delete mode 100644 src/test/test-debian-003/etc/debian_version
delete mode 100644 src/test/test-debian-003/etc/hostname.exp
delete mode 100644 src/test/test-debian-003/etc/hosts.exp
delete mode 100644 src/test/test-debian-003/etc/network/interfaces
delete mode 100644 src/test/test-debian-003/etc/network/interfaces.exp
delete mode 100644 src/test/test-debian-004/config
delete mode 100644 src/test/test-debian-004/etc/debian_version
delete mode 100644 src/test/test-debian-004/etc/hostname.exp
delete mode 100644 src/test/test-debian-004/etc/hosts.exp
delete mode 100644 src/test/test-debian-004/etc/network/interfaces
delete mode 100644 src/test/test-debian-004/etc/network/interfaces.exp
delete mode 100644 src/test/test-debian-005/config
delete mode 100644 src/test/test-debian-005/etc/debian_version
delete mode 100644 src/test/test-debian-005/etc/hostname.exp
delete mode 100644 src/test/test-debian-005/etc/hosts.exp
delete mode 100644 src/test/test-debian-005/etc/inittab
delete mode 100644 src/test/test-debian-005/etc/inittab.exp
delete mode 100644 src/test/test-debian-006/config
delete mode 100644 src/test/test-debian-006/etc/debian_version
delete mode 100644 src/test/test-debian-006/etc/hostname.exp
delete mode 100644 src/test/test-debian-006/etc/hosts.exp
delete mode 100644 src/test/test-debian-006/etc/inittab
delete mode 100644 src/test/test-debian-006/etc/inittab.exp
delete mode 100644 src/test/test-debian-007/config
delete mode 100644 src/test/test-debian-007/etc/debian_version
delete mode 100644 src/test/test-debian-007/etc/hostname.exp
delete mode 100644 src/test/test-debian-007/etc/hosts.exp
delete mode 100644 src/test/test-debian-007/etc/resolv.conf.exp
delete mode 100644 src/test/test-debian-008/config
delete mode 100644 src/test/test-debian-008/etc/debian_version
delete mode 100644 src/test/test-debian-008/etc/hostname.exp
delete mode 100644 src/test/test-debian-008/etc/hosts
delete mode 100644 src/test/test-debian-008/etc/hosts.exp
delete mode 100644 src/test/test-debian-008/etc/network/interfaces
delete mode 100644 src/test/test-debian-008/etc/network/interfaces.exp
delete mode 100644 src/test/test-debian-008/etc/resolv.conf.exp
delete mode 100644 src/test/test-debian-009/config
delete mode 100644 src/test/test-debian-009/etc/debian_version
delete mode 100644 src/test/test-debian-009/etc/hostname.exp
delete mode 100644 src/test/test-debian-009/etc/hosts.exp
delete mode 100644 src/test/test-debian-009/etc/passwd
delete mode 100644 src/test/test-debian-009/etc/passwd.exp
delete mode 100644 src/test/test-debian-009/etc/shadow
delete mode 100644 src/test/test-debian-009/etc/shadow.exp
delete mode 100644 src/test/test-debian-010/config
delete mode 100644 src/test/test-debian-010/etc/debian_version
delete mode 100644 src/test/test-debian-010/etc/hostname.exp
delete mode 100644 src/test/test-debian-010/etc/hosts.exp
delete mode 100644 src/test/test-debian-010/etc/inittab
delete mode 100644 src/test/test-debian-010/etc/inittab.exp
delete mode 100644 src/test/test-debian-011/config
delete mode 100644 src/test/test-debian-011/etc/debian_version
delete mode 100644 src/test/test-debian-011/etc/network/interfaces
delete mode 100644 src/test/test-debian-011/etc/network/interfaces.exp
delete mode 100644 src/test/test-debian-012/config
delete mode 100644 src/test/test-debian-012/etc/debian_version
delete mode 100644 src/test/test-debian-012/etc/network/interfaces
delete mode 100644 src/test/test-debian-012/etc/network/interfaces.exp
delete mode 100644 src/test/test-debian-013/config
delete mode 100644 src/test/test-debian-013/etc/debian_version
delete mode 120000 src/test/test-debian-013/etc/hosts
delete mode 100644 src/test/test-debian-013/etc/hosts.exp
delete mode 100644 src/test/test-opensuse-001/config
delete mode 100644 src/test/test-opensuse-001/etc/SuSE-brand
delete mode 100644 src/test/test-opensuse-001/etc/hosts.exp
delete mode 100644 src/test/test-opensuse-001/etc/resolv.conf.exp
delete mode 100644 src/test/test-opensuse-001/etc/securetty
delete mode 100644 src/test/test-opensuse-001/etc/securetty.exp
delete mode 100644 src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp
delete mode 100644 src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp
delete mode 100644 src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp
delete mode 100644 src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp
delete mode 100644 src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp
delete mode 100644 src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1
delete mode 100644 src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp
delete mode 100644 src/test/test-opensuse-002/config
delete mode 100644 src/test/test-opensuse-002/etc/SuSE-brand
delete mode 100644 src/test/test-opensuse-002/etc/securetty
delete mode 100644 src/test/test-opensuse-002/etc/securetty.exp
delete mode 100644 src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp
delete mode 100644 src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp
delete mode 100644 src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp
delete mode 100644 src/test/test-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp
delete mode 100644 src/test/test-opensuse-003/config
delete mode 100644 src/test/test-opensuse-003/etc/SuSE-brand
delete mode 100644 src/test/test-opensuse-003/etc/securetty
delete mode 100644 src/test/test-opensuse-003/etc/securetty.exp
delete mode 100644 src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp
delete mode 100644 src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp
delete mode 100644 src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp
delete mode 100644 src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp
delete mode 100644 src/test/test-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp
diff --git a/src/test/Makefile b/src/test/Makefile
index 8105b7d..f3e260d 100644
--- a/src/test/Makefile
+++ b/src/test/Makefile
@@ -1,11 +1,13 @@
-
-
all:
-test:
- ./run_tests.pl
+test: test_setup test_snapshot
+
+test_setup: run_setup_tests.pl
+ ./run_setup_tests.pl
+test_snapshot: run_snapshot_tests.pl
+ ./run_snapshot_tests.pl
clean:
rm -rf tmprootfs
diff --git a/src/test/run_setup_tests.pl b/src/test/run_setup_tests.pl
new file mode 100755
index 0000000..31b2699
--- /dev/null
+++ b/src/test/run_setup_tests.pl
@@ -0,0 +1,98 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+use PVE::Tools qw(run_command);
+
+use lib qw(..);
+
+use PVE::LXC;
+use PVE::LXC::Setup;
+
+sub test_file {
+ my ($exp_fn, $real_fn) = @_;
+
+ return if system("diff -u '$exp_fn' '$real_fn'") == 0;
+
+ die "files do not match\n";
+}
+
+sub run_test {
+ my ($testdir) = @_;
+
+ print "prepare $testdir\n";
+
+ my $rootfs = "./tmprootfs";
+
+ run_command("rm -rf $rootfs");
+ run_command("cp -a $testdir $rootfs");
+
+ my $config_fn = "$testdir/config";
+
+ my $raw = PVE::Tools::file_get_contents($config_fn);
+
+ my $conf = PVE::LXC::parse_pct_config("/lxc/100.conf", $raw);
+
+ $conf->{'testmode'} = 1;
+
+ my $lxc_setup = PVE::LXC::Setup->new($conf, $rootfs);
+
+ for (my $i = 0; $i < 2; $i++) {
+ # run tests twice, to make sure scripts are idempotent
+
+ srand(0);
+ $lxc_setup->post_create_hook('$TEST$ABCDEF');
+
+ my @testfiles = qw(/etc/hostname
+ /etc/hosts
+ /etc/inittab
+ /etc/network/interfaces
+ /etc/resolv.conf
+ /etc/passwd
+ /etc/shadow
+ /etc/sysconfig/network
+ /etc/sysconfig/network-scripts/ifcfg-eth0
+ /etc/sysconfig/network-scripts/route-eth0
+ /etc/sysconfig/network-scripts/ifcfg-eth1
+ /etc/sysconfig/network-scripts/route-eth1
+ /etc/sysconfig/network-scripts/ifcfg-eth2
+ /etc/sysconfig/network-scripts/route-eth2
+ /etc/sysconfig/network-scripts/ifcfg-eth3
+ /etc/sysconfig/network-scripts/route-eth3
+ /etc/sysconfig/network/ifcfg-eth0
+ /etc/sysconfig/network/ifroute-eth0
+ /etc/sysconfig/network/ifcfg-eth1
+ /etc/sysconfig/network/ifroute-eth1
+ /etc/sysconfig/network/ifcfg-eth2
+ /etc/sysconfig/network/ifroute-eth2
+ /etc/sysconfig/network/ifcfg-eth3
+ /etc/sysconfig/network/ifroute-eth3
+ /etc/init/start-ttys.conf
+ /etc/init/tty.conf
+ /etc/init/power-status-changed.conf
+ /etc/securetty
+ /etc/crontab);
+ foreach my $fn (@testfiles) {
+ next if !-f "$testdir/$fn.exp";
+ test_file("$testdir/$fn.exp", "$rootfs/$fn");
+ }
+ }
+
+ print "TEST $testdir => OK\n";
+}
+
+if (scalar(@ARGV)) {
+
+ foreach my $testdir (@ARGV) {
+ run_test($testdir);
+ }
+
+} else {
+
+ foreach my $testdir (<setup-*>) {#
+ next if ! -d $testdir;
+ run_test($testdir);
+ }
+}
+
+exit(0);
diff --git a/src/test/run_snapshot_tests.pl b/src/test/run_snapshot_tests.pl
new file mode 100755
index 0000000..6def87f
--- /dev/null
+++ b/src/test/run_snapshot_tests.pl
@@ -0,0 +1,10 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use TAP::Harness;
+
+my $harness = TAP::Harness->new( { "verbosity" => -2 });
+$harness->runtests( "snapshot-test.pm");
+system( "rm -rf snapshot-working/");
diff --git a/src/test/run_tests.pl b/src/test/run_tests.pl
deleted file mode 100755
index 3babf44..0000000
--- a/src/test/run_tests.pl
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-use PVE::Tools qw(run_command);
-
-use lib qw(..);
-
-use PVE::LXC;
-use PVE::LXC::Setup;
-
-sub test_file {
- my ($exp_fn, $real_fn) = @_;
-
- return if system("diff -u '$exp_fn' '$real_fn'") == 0;
-
- die "files do not match\n";
-}
-
-sub run_test {
- my ($testdir) = @_;
-
- print "prepare $testdir\n";
-
- my $rootfs = "./tmprootfs";
-
- run_command("rm -rf $rootfs");
- run_command("cp -a $testdir $rootfs");
-
- my $config_fn = "$testdir/config";
-
- my $raw = PVE::Tools::file_get_contents($config_fn);
-
- my $conf = PVE::LXC::parse_pct_config("/lxc/100.conf", $raw);
-
- $conf->{'testmode'} = 1;
-
- my $lxc_setup = PVE::LXC::Setup->new($conf, $rootfs);
-
- for (my $i = 0; $i < 2; $i++) {
- # run tests twice, to make sure scripts are idempotent
-
- srand(0);
- $lxc_setup->post_create_hook('$TEST$ABCDEF');
-
- my @testfiles = qw(/etc/hostname
- /etc/hosts
- /etc/inittab
- /etc/network/interfaces
- /etc/resolv.conf
- /etc/passwd
- /etc/shadow
- /etc/sysconfig/network
- /etc/sysconfig/network-scripts/ifcfg-eth0
- /etc/sysconfig/network-scripts/route-eth0
- /etc/sysconfig/network-scripts/ifcfg-eth1
- /etc/sysconfig/network-scripts/route-eth1
- /etc/sysconfig/network-scripts/ifcfg-eth2
- /etc/sysconfig/network-scripts/route-eth2
- /etc/sysconfig/network-scripts/ifcfg-eth3
- /etc/sysconfig/network-scripts/route-eth3
- /etc/sysconfig/network/ifcfg-eth0
- /etc/sysconfig/network/ifroute-eth0
- /etc/sysconfig/network/ifcfg-eth1
- /etc/sysconfig/network/ifroute-eth1
- /etc/sysconfig/network/ifcfg-eth2
- /etc/sysconfig/network/ifroute-eth2
- /etc/sysconfig/network/ifcfg-eth3
- /etc/sysconfig/network/ifroute-eth3
- /etc/init/start-ttys.conf
- /etc/init/tty.conf
- /etc/init/power-status-changed.conf
- /etc/securetty
- /etc/crontab);
- foreach my $fn (@testfiles) {
- next if !-f "$testdir/$fn.exp";
- test_file("$testdir/$fn.exp", "$rootfs/$fn");
- }
- }
-
- print "TEST $testdir => OK\n";
-}
-
-if (scalar(@ARGV)) {
-
- foreach my $testdir (@ARGV) {
- run_test($testdir);
- }
-
-} else {
-
- foreach my $testdir (<test-*>) {#
- next if ! -d $testdir;
- run_test($testdir);
- }
-}
-
-exit(0);
diff --git a/src/test/setup-centos6-001/config b/src/test/setup-centos6-001/config
new file mode 100644
index 0000000..afe246f
--- /dev/null
+++ b/src/test/setup-centos6-001/config
@@ -0,0 +1,4 @@
+hostname: test1
+net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=1.2.3.1
+net1: bridge=vmbr0,name=eth1,ip=10.2.3.4/24
+net2: bridge=vmbr0,name=eth2
diff --git a/src/test/setup-centos6-001/etc/hosts.exp b/src/test/setup-centos6-001/etc/hosts.exp
new file mode 100644
index 0000000..0791e77
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+1.2.3.4 test1.proxmox.com test1
diff --git a/src/test/setup-centos6-001/etc/init/power-status-changed.conf.exp b/src/test/setup-centos6-001/etc/init/power-status-changed.conf.exp
new file mode 100644
index 0000000..0763ae5
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/init/power-status-changed.conf.exp
@@ -0,0 +1,5 @@
+# power-status-changed - shutdown on SIGPWR
+#
+start on power-status-changed
+
+exec /sbin/shutdown -h now "SIGPWR received"
diff --git a/src/test/setup-centos6-001/etc/init/start-ttys.conf.exp b/src/test/setup-centos6-001/etc/init/start-ttys.conf.exp
new file mode 100644
index 0000000..20e379b
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/init/start-ttys.conf.exp
@@ -0,0 +1,18 @@
+#
+# This service starts the configured number of gettys.
+#
+# Do not edit this file directly. If you want to change the behaviour,
+# please create a file start-ttys.override and put your changes there.
+
+start on stopped rc RUNLEVEL=[2345]
+
+env ACTIVE_CONSOLES=/dev/tty[1-6]
+env X_TTY=/dev/tty1
+task
+script
+ . /etc/sysconfig/init
+ for tty in $(echo $ACTIVE_CONSOLES) ; do
+ [ "$RUNLEVEL" = "5" -a "$tty" = "$X_TTY" ] && continue
+ initctl start tty TTY=$tty
+ done
+end script
diff --git a/src/test/setup-centos6-001/etc/init/tty.conf.exp b/src/test/setup-centos6-001/etc/init/tty.conf.exp
new file mode 100644
index 0000000..5dcd7ad
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/init/tty.conf.exp
@@ -0,0 +1,13 @@
+# tty - getty
+#
+# This service maintains a getty on the specified device.
+#
+# Do not edit this file directly. If you want to change the behaviour,
+# please create a file tty.override and put your changes there.
+
+stop on runlevel [S016]
+
+respawn
+instance $TTY
+exec /sbin/mingetty $TTY
+usage 'tty TTY=/dev/ttyX - where X is console id'
diff --git a/src/test/setup-centos6-001/etc/rc.d/rc.sysinit b/src/test/setup-centos6-001/etc/rc.d/rc.sysinit
new file mode 100644
index 0000000..a98b7dd
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/rc.d/rc.sysinit
@@ -0,0 +1,6 @@
+# just a test
+# dummy
+
+/sbin/start_udev xxxxxxxxxxyyyyyyzzzz
+
+
diff --git a/src/test/setup-centos6-001/etc/rc.d/rc.sysinit.exp b/src/test/setup-centos6-001/etc/rc.d/rc.sysinit.exp
new file mode 100644
index 0000000..097907e
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/rc.d/rc.sysinit.exp
@@ -0,0 +1,6 @@
+# just a test
+# dummy
+
+#/sbin/start_udev xxxxxxxxxxyyyyyyzzzz
+
+
diff --git a/src/test/setup-centos6-001/etc/redhat-release b/src/test/setup-centos6-001/etc/redhat-release
new file mode 100644
index 0000000..cdb73e8
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/redhat-release
@@ -0,0 +1 @@
+CentOS release 6.3 (Final)
diff --git a/src/test/setup-centos6-001/etc/resolv.conf.exp b/src/test/setup-centos6-001/etc/resolv.conf.exp
new file mode 100644
index 0000000..e505ad3
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/resolv.conf.exp
@@ -0,0 +1,3 @@
+search proxmox.com
+nameserver 8.8.8.8
+nameserver 8.8.8.9
diff --git a/src/test/setup-centos6-001/etc/securetty b/src/test/setup-centos6-001/etc/securetty
new file mode 100644
index 0000000..fae1648
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/securetty
@@ -0,0 +1,23 @@
+console
+vc/1
+vc/2
+vc/3
+vc/4
+vc/5
+vc/6
+vc/7
+vc/8
+vc/9
+vc/10
+vc/11
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+tty7
+tty8
+tty9
+tty10
+tty11
\ No newline at end of file
diff --git a/src/test/setup-centos6-001/etc/securetty.exp b/src/test/setup-centos6-001/etc/securetty.exp
new file mode 100644
index 0000000..573c668
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/securetty.exp
@@ -0,0 +1,28 @@
+console
+vc/1
+vc/2
+vc/3
+vc/4
+vc/5
+vc/6
+vc/7
+vc/8
+vc/9
+vc/10
+vc/11
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+tty7
+tty8
+tty9
+tty10
+tty11
+lxc/console
+lxc/tty1
+lxc/tty2
+lxc/tty3
+lxc/tty4
diff --git a/src/test/setup-centos6-001/etc/sysconfig/network b/src/test/setup-centos6-001/etc/sysconfig/network
new file mode 100644
index 0000000..e69de29
diff --git a/src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp b/src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp
new file mode 100644
index 0000000..2c5e570
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp
@@ -0,0 +1,6 @@
+DEVICE=eth0
+ONBOOT=yes
+BOOTPROTO=none
+IPADDR=1.2.3.4
+NETMASK=255.255.255.0
+GATEWAY=1.2.3.1
diff --git a/src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp b/src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp
new file mode 100644
index 0000000..7be5df0
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp
@@ -0,0 +1,5 @@
+DEVICE=eth1
+ONBOOT=yes
+BOOTPROTO=none
+IPADDR=10.2.3.4
+NETMASK=255.255.255.0
diff --git a/src/test/setup-centos6-001/etc/sysconfig/network.exp b/src/test/setup-centos6-001/etc/sysconfig/network.exp
new file mode 100644
index 0000000..03d42fd
--- /dev/null
+++ b/src/test/setup-centos6-001/etc/sysconfig/network.exp
@@ -0,0 +1,2 @@
+NETWORKING=yes
+HOSTNAME=test1
diff --git a/src/test/setup-debian-001/config b/src/test/setup-debian-001/config
new file mode 100644
index 0000000..f8d7636
--- /dev/null
+++ b/src/test/setup-debian-001/config
@@ -0,0 +1 @@
+hostname: test1
diff --git a/src/test/setup-debian-001/etc/crontab b/src/test/setup-debian-001/etc/crontab
new file mode 100644
index 0000000..95edd9b
--- /dev/null
+++ b/src/test/setup-debian-001/etc/crontab
@@ -0,0 +1,15 @@
+# /etc/crontab: system-wide crontab
+# Unlike any other crontab you don't have to run the `crontab'
+# command to install the new version when you edit this file
+# and files in /etc/cron.d. These files also have username fields,
+# that none of the other crontabs do.
+
+SHELL=/bin/sh
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+
+# m h dom mon dow user command
+17 * * * * root cd / && run-parts --report /etc/cron.hourly
+25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
+47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
+52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
+#
diff --git a/src/test/setup-debian-001/etc/crontab.exp b/src/test/setup-debian-001/etc/crontab.exp
new file mode 100644
index 0000000..f57dc8d
--- /dev/null
+++ b/src/test/setup-debian-001/etc/crontab.exp
@@ -0,0 +1,15 @@
+# /etc/crontab: system-wide crontab
+# Unlike any other crontab you don't have to run the `crontab'
+# command to install the new version when you edit this file
+# and files in /etc/cron.d. These files also have username fields,
+# that none of the other crontabs do.
+
+SHELL=/bin/sh
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+
+# m h dom mon dow user command
+10 * * * * root cd / && run-parts --report /etc/cron.hourly
+44 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
+5 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
+51 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
+#
diff --git a/src/test/setup-debian-001/etc/debian_version b/src/test/setup-debian-001/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-001/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-001/etc/hostname.exp b/src/test/setup-debian-001/etc/hostname.exp
new file mode 100644
index 0000000..a5bce3f
--- /dev/null
+++ b/src/test/setup-debian-001/etc/hostname.exp
@@ -0,0 +1 @@
+test1
diff --git a/src/test/setup-debian-001/etc/hosts.exp b/src/test/setup-debian-001/etc/hosts.exp
new file mode 100644
index 0000000..7f3910c
--- /dev/null
+++ b/src/test/setup-debian-001/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 test1
diff --git a/src/test/setup-debian-002/config b/src/test/setup-debian-002/config
new file mode 100644
index 0000000..5191092
--- /dev/null
+++ b/src/test/setup-debian-002/config
@@ -0,0 +1,4 @@
+hostname: test1
+net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=1.2.3.1
+net1: bridge=vmbr0,name=eth1,ip=10.2.3.4/24
+net2: bridge=vmbr0,name=eth2,ip=manual
diff --git a/src/test/setup-debian-002/etc/debian_version b/src/test/setup-debian-002/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-002/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-002/etc/hostname.exp b/src/test/setup-debian-002/etc/hostname.exp
new file mode 100644
index 0000000..a5bce3f
--- /dev/null
+++ b/src/test/setup-debian-002/etc/hostname.exp
@@ -0,0 +1 @@
+test1
diff --git a/src/test/setup-debian-002/etc/hosts.exp b/src/test/setup-debian-002/etc/hosts.exp
new file mode 100644
index 0000000..0791e77
--- /dev/null
+++ b/src/test/setup-debian-002/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+1.2.3.4 test1.proxmox.com test1
diff --git a/src/test/setup-debian-002/etc/network/interfaces.exp b/src/test/setup-debian-002/etc/network/interfaces.exp
new file mode 100644
index 0000000..9d9dbcc
--- /dev/null
+++ b/src/test/setup-debian-002/etc/network/interfaces.exp
@@ -0,0 +1,14 @@
+auto eth0
+iface eth0 inet static
+ address 1.2.3.4
+ netmask 255.255.255.0
+ gateway 1.2.3.1
+
+auto eth1
+iface eth1 inet static
+ address 10.2.3.4
+ netmask 255.255.255.0
+
+auto eth2
+iface eth2 inet manual
+
diff --git a/src/test/setup-debian-003/config b/src/test/setup-debian-003/config
new file mode 100644
index 0000000..6df1aba
--- /dev/null
+++ b/src/test/setup-debian-003/config
@@ -0,0 +1,5 @@
+arch: i386
+memory: 512
+ostype: debian
+hostname: test3
+net0: bridge=vmbr0,name=eth0,hwaddr=26:2B:CC:E5:7F:F9,ip=manual
diff --git a/src/test/setup-debian-003/etc/debian_version b/src/test/setup-debian-003/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-003/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-003/etc/hostname.exp b/src/test/setup-debian-003/etc/hostname.exp
new file mode 100644
index 0000000..df6b0d2
--- /dev/null
+++ b/src/test/setup-debian-003/etc/hostname.exp
@@ -0,0 +1 @@
+test3
diff --git a/src/test/setup-debian-003/etc/hosts.exp b/src/test/setup-debian-003/etc/hosts.exp
new file mode 100644
index 0000000..9e3fb59
--- /dev/null
+++ b/src/test/setup-debian-003/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 test3
diff --git a/src/test/setup-debian-003/etc/network/interfaces b/src/test/setup-debian-003/etc/network/interfaces
new file mode 100644
index 0000000..f1bd92e
--- /dev/null
+++ b/src/test/setup-debian-003/etc/network/interfaces
@@ -0,0 +1,2 @@
+auto lo
+iface lo inet loopback
diff --git a/src/test/setup-debian-003/etc/network/interfaces.exp b/src/test/setup-debian-003/etc/network/interfaces.exp
new file mode 100644
index 0000000..cdb8d13
--- /dev/null
+++ b/src/test/setup-debian-003/etc/network/interfaces.exp
@@ -0,0 +1,6 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet manual
+
diff --git a/src/test/setup-debian-004/config b/src/test/setup-debian-004/config
new file mode 100644
index 0000000..bdd25d7
--- /dev/null
+++ b/src/test/setup-debian-004/config
@@ -0,0 +1,5 @@
+arch: i386
+memory: 512
+ostype: debian
+hostname: test3.use-fqdn.com
+net0: bridge=vmbr0,name=eth0,hwaddr=26:2B:CC:E5:7F:F9,ip=1.2.3.2/24,gw=1.2.3.1
diff --git a/src/test/setup-debian-004/etc/debian_version b/src/test/setup-debian-004/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-004/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-004/etc/hostname.exp b/src/test/setup-debian-004/etc/hostname.exp
new file mode 100644
index 0000000..df6b0d2
--- /dev/null
+++ b/src/test/setup-debian-004/etc/hostname.exp
@@ -0,0 +1 @@
+test3
diff --git a/src/test/setup-debian-004/etc/hosts.exp b/src/test/setup-debian-004/etc/hosts.exp
new file mode 100644
index 0000000..cd65bdf
--- /dev/null
+++ b/src/test/setup-debian-004/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+1.2.3.2 test3.use-fqdn.com test3
diff --git a/src/test/setup-debian-004/etc/network/interfaces b/src/test/setup-debian-004/etc/network/interfaces
new file mode 100644
index 0000000..f1bd92e
--- /dev/null
+++ b/src/test/setup-debian-004/etc/network/interfaces
@@ -0,0 +1,2 @@
+auto lo
+iface lo inet loopback
diff --git a/src/test/setup-debian-004/etc/network/interfaces.exp b/src/test/setup-debian-004/etc/network/interfaces.exp
new file mode 100644
index 0000000..6003326
--- /dev/null
+++ b/src/test/setup-debian-004/etc/network/interfaces.exp
@@ -0,0 +1,9 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet static
+ address 1.2.3.2
+ netmask 255.255.255.0
+ gateway 1.2.3.1
+
diff --git a/src/test/setup-debian-005/config b/src/test/setup-debian-005/config
new file mode 100644
index 0000000..1d794fe
--- /dev/null
+++ b/src/test/setup-debian-005/config
@@ -0,0 +1,2 @@
+hostname: test1
+tty: 4
diff --git a/src/test/setup-debian-005/etc/debian_version b/src/test/setup-debian-005/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-005/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-005/etc/hostname.exp b/src/test/setup-debian-005/etc/hostname.exp
new file mode 100644
index 0000000..a5bce3f
--- /dev/null
+++ b/src/test/setup-debian-005/etc/hostname.exp
@@ -0,0 +1 @@
+test1
diff --git a/src/test/setup-debian-005/etc/hosts.exp b/src/test/setup-debian-005/etc/hosts.exp
new file mode 100644
index 0000000..7f3910c
--- /dev/null
+++ b/src/test/setup-debian-005/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 test1
diff --git a/src/test/setup-debian-005/etc/inittab b/src/test/setup-debian-005/etc/inittab
new file mode 100644
index 0000000..ddc59b8
--- /dev/null
+++ b/src/test/setup-debian-005/etc/inittab
@@ -0,0 +1,69 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+pf::powerwait:/etc/init.d/powerfail start
+pn::powerfailnow:/etc/init.d/powerfail now
+po::powerokwait:/etc/init.d/powerfail stop
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+#
+# Note that on most Debian systems tty7 is used by the X Window System,
+# so if you want to add more getty's go ahead but skip tty7 if you run X.
+#
+1:2345:respawn:/sbin/getty --noclear 38400 tty1
+2:23:respawn:/sbin/getty 38400 tty2
+3:23:respawn:/sbin/getty 38400 tty3
+4:23:respawn:/sbin/getty 38400 tty4
+5:23:respawn:/sbin/getty 38400 tty5
+6:23:respawn:/sbin/getty 38400 tty6
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
+
diff --git a/src/test/setup-debian-005/etc/inittab.exp b/src/test/setup-debian-005/etc/inittab.exp
new file mode 100644
index 0000000..7d881db
--- /dev/null
+++ b/src/test/setup-debian-005/etc/inittab.exp
@@ -0,0 +1,64 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+#
+# Note that on most Debian systems tty7 is used by the X Window System,
+# so if you want to add more getty's go ahead but skip tty7 if you run X.
+#
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
+p0::powerfail:/sbin/init 0
+1:2345:respawn:/sbin/getty --noclear 38400 tty1
+2:23:respawn:/sbin/getty --noclear 38400 tty2
+3:23:respawn:/sbin/getty --noclear 38400 tty3
+4:23:respawn:/sbin/getty --noclear 38400 tty4
diff --git a/src/test/setup-debian-006/config b/src/test/setup-debian-006/config
new file mode 100644
index 0000000..3ad4192
--- /dev/null
+++ b/src/test/setup-debian-006/config
@@ -0,0 +1,2 @@
+hostname: test1
+tty: 0
\ No newline at end of file
diff --git a/src/test/setup-debian-006/etc/debian_version b/src/test/setup-debian-006/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-006/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-006/etc/hostname.exp b/src/test/setup-debian-006/etc/hostname.exp
new file mode 100644
index 0000000..a5bce3f
--- /dev/null
+++ b/src/test/setup-debian-006/etc/hostname.exp
@@ -0,0 +1 @@
+test1
diff --git a/src/test/setup-debian-006/etc/hosts.exp b/src/test/setup-debian-006/etc/hosts.exp
new file mode 100644
index 0000000..7f3910c
--- /dev/null
+++ b/src/test/setup-debian-006/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 test1
diff --git a/src/test/setup-debian-006/etc/inittab b/src/test/setup-debian-006/etc/inittab
new file mode 100644
index 0000000..ddc59b8
--- /dev/null
+++ b/src/test/setup-debian-006/etc/inittab
@@ -0,0 +1,69 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+pf::powerwait:/etc/init.d/powerfail start
+pn::powerfailnow:/etc/init.d/powerfail now
+po::powerokwait:/etc/init.d/powerfail stop
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+#
+# Note that on most Debian systems tty7 is used by the X Window System,
+# so if you want to add more getty's go ahead but skip tty7 if you run X.
+#
+1:2345:respawn:/sbin/getty --noclear 38400 tty1
+2:23:respawn:/sbin/getty 38400 tty2
+3:23:respawn:/sbin/getty 38400 tty3
+4:23:respawn:/sbin/getty 38400 tty4
+5:23:respawn:/sbin/getty 38400 tty5
+6:23:respawn:/sbin/getty 38400 tty6
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
+
diff --git a/src/test/setup-debian-006/etc/inittab.exp b/src/test/setup-debian-006/etc/inittab.exp
new file mode 100644
index 0000000..937a7e0
--- /dev/null
+++ b/src/test/setup-debian-006/etc/inittab.exp
@@ -0,0 +1,60 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+#
+# Note that on most Debian systems tty7 is used by the X Window System,
+# so if you want to add more getty's go ahead but skip tty7 if you run X.
+#
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
+p0::powerfail:/sbin/init 0
diff --git a/src/test/setup-debian-007/config b/src/test/setup-debian-007/config
new file mode 100644
index 0000000..dbf0e93
--- /dev/null
+++ b/src/test/setup-debian-007/config
@@ -0,0 +1,3 @@
+hostname: test1
+searchdomain: proxmox.com
+nameserver: 8.8.8.8,8.8.8.9
\ No newline at end of file
diff --git a/src/test/setup-debian-007/etc/debian_version b/src/test/setup-debian-007/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-007/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-007/etc/hostname.exp b/src/test/setup-debian-007/etc/hostname.exp
new file mode 100644
index 0000000..a5bce3f
--- /dev/null
+++ b/src/test/setup-debian-007/etc/hostname.exp
@@ -0,0 +1 @@
+test1
diff --git a/src/test/setup-debian-007/etc/hosts.exp b/src/test/setup-debian-007/etc/hosts.exp
new file mode 100644
index 0000000..7f3910c
--- /dev/null
+++ b/src/test/setup-debian-007/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 test1
diff --git a/src/test/setup-debian-007/etc/resolv.conf.exp b/src/test/setup-debian-007/etc/resolv.conf.exp
new file mode 100644
index 0000000..e505ad3
--- /dev/null
+++ b/src/test/setup-debian-007/etc/resolv.conf.exp
@@ -0,0 +1,3 @@
+search proxmox.com
+nameserver 8.8.8.8
+nameserver 8.8.8.9
diff --git a/src/test/setup-debian-008/config b/src/test/setup-debian-008/config
new file mode 100644
index 0000000..5861be4
--- /dev/null
+++ b/src/test/setup-debian-008/config
@@ -0,0 +1,9 @@
+arch: i386
+cpulimit: 1
+memory: 512
+swap: 512
+ostype: debian
+hostname: CT102
+nameserver: 8.8.8.8,8.8.8.9
+searchdomain: proxmox.com
+net0: bridge=vmbr0,name=eth0,hwaddr=2A:31:01:D5:A4:BF,ip=192.168.3.102/20,gw=192.168.2.1
diff --git a/src/test/setup-debian-008/etc/debian_version b/src/test/setup-debian-008/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-008/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-008/etc/hostname.exp b/src/test/setup-debian-008/etc/hostname.exp
new file mode 100644
index 0000000..473d65d
--- /dev/null
+++ b/src/test/setup-debian-008/etc/hostname.exp
@@ -0,0 +1 @@
+CT102
diff --git a/src/test/setup-debian-008/etc/hosts b/src/test/setup-debian-008/etc/hosts
new file mode 100644
index 0000000..e7bce03
--- /dev/null
+++ b/src/test/setup-debian-008/etc/hosts
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localdomain localhost
+127.0.1.1 CT102
diff --git a/src/test/setup-debian-008/etc/hosts.exp b/src/test/setup-debian-008/etc/hosts.exp
new file mode 100644
index 0000000..58c7bba
--- /dev/null
+++ b/src/test/setup-debian-008/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localdomain localhost
+192.168.3.102 CT102.proxmox.com CT102
diff --git a/src/test/setup-debian-008/etc/network/interfaces b/src/test/setup-debian-008/etc/network/interfaces
new file mode 100644
index 0000000..f1bd92e
--- /dev/null
+++ b/src/test/setup-debian-008/etc/network/interfaces
@@ -0,0 +1,2 @@
+auto lo
+iface lo inet loopback
diff --git a/src/test/setup-debian-008/etc/network/interfaces.exp b/src/test/setup-debian-008/etc/network/interfaces.exp
new file mode 100644
index 0000000..b5ce7f8
--- /dev/null
+++ b/src/test/setup-debian-008/etc/network/interfaces.exp
@@ -0,0 +1,9 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet static
+ address 192.168.3.102
+ netmask 255.255.240.0
+ gateway 192.168.2.1
+
diff --git a/src/test/setup-debian-008/etc/resolv.conf.exp b/src/test/setup-debian-008/etc/resolv.conf.exp
new file mode 100644
index 0000000..e505ad3
--- /dev/null
+++ b/src/test/setup-debian-008/etc/resolv.conf.exp
@@ -0,0 +1,3 @@
+search proxmox.com
+nameserver 8.8.8.8
+nameserver 8.8.8.9
diff --git a/src/test/setup-debian-009/config b/src/test/setup-debian-009/config
new file mode 100644
index 0000000..8f09fd8
--- /dev/null
+++ b/src/test/setup-debian-009/config
@@ -0,0 +1 @@
+hostname: test9
diff --git a/src/test/setup-debian-009/etc/debian_version b/src/test/setup-debian-009/etc/debian_version
new file mode 100644
index 0000000..4fedf1d
--- /dev/null
+++ b/src/test/setup-debian-009/etc/debian_version
@@ -0,0 +1 @@
+7.0
diff --git a/src/test/setup-debian-009/etc/hostname.exp b/src/test/setup-debian-009/etc/hostname.exp
new file mode 100644
index 0000000..c372db4
--- /dev/null
+++ b/src/test/setup-debian-009/etc/hostname.exp
@@ -0,0 +1 @@
+test9
diff --git a/src/test/setup-debian-009/etc/hosts.exp b/src/test/setup-debian-009/etc/hosts.exp
new file mode 100644
index 0000000..41eed1f
--- /dev/null
+++ b/src/test/setup-debian-009/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 test9
diff --git a/src/test/setup-debian-009/etc/passwd b/src/test/setup-debian-009/etc/passwd
new file mode 100644
index 0000000..e505613
--- /dev/null
+++ b/src/test/setup-debian-009/etc/passwd
@@ -0,0 +1,21 @@
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/bin/sh
+man:x:6:12:man:/var/cache/man:/bin/sh
+lp:x:7:7:lp:/var/spool/lpd:/bin/sh
+mail:x:8:8:mail:/var/mail:/bin/sh
+news:x:9:9:news:/var/spool/news:/bin/sh
+uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
+proxy:x:13:13:proxy:/bin:/bin/sh
+www-data:x:33:33:www-data:/var/www:/bin/sh
+backup:x:34:34:backup:/var/backups:/bin/sh
+list:x:38:38:Mailing List Manager:/var/list:/bin/sh
+irc:x:39:39:ircd:/var/run/ircd:/bin/sh
+gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
+nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
+libuuid:x:100:101::/var/lib/libuuid:/bin/sh
+postfix:x:101:104::/var/spool/postfix:/bin/false
+sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
diff --git a/src/test/setup-debian-009/etc/passwd.exp b/src/test/setup-debian-009/etc/passwd.exp
new file mode 100644
index 0000000..e505613
--- /dev/null
+++ b/src/test/setup-debian-009/etc/passwd.exp
@@ -0,0 +1,21 @@
+root:x:0:0:root:/root:/bin/bash
+daemon:x:1:1:daemon:/usr/sbin:/bin/sh
+bin:x:2:2:bin:/bin:/bin/sh
+sys:x:3:3:sys:/dev:/bin/sh
+sync:x:4:65534:sync:/bin:/bin/sync
+games:x:5:60:games:/usr/games:/bin/sh
+man:x:6:12:man:/var/cache/man:/bin/sh
+lp:x:7:7:lp:/var/spool/lpd:/bin/sh
+mail:x:8:8:mail:/var/mail:/bin/sh
+news:x:9:9:news:/var/spool/news:/bin/sh
+uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
+proxy:x:13:13:proxy:/bin:/bin/sh
+www-data:x:33:33:www-data:/var/www:/bin/sh
+backup:x:34:34:backup:/var/backups:/bin/sh
+list:x:38:38:Mailing List Manager:/var/list:/bin/sh
+irc:x:39:39:ircd:/var/run/ircd:/bin/sh
+gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
+nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
+libuuid:x:100:101::/var/lib/libuuid:/bin/sh
+postfix:x:101:104::/var/spool/postfix:/bin/false
+sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
diff --git a/src/test/setup-debian-009/etc/shadow b/src/test/setup-debian-009/etc/shadow
new file mode 100644
index 0000000..7d4be16
--- /dev/null
+++ b/src/test/setup-debian-009/etc/shadow
@@ -0,0 +1,21 @@
+root:!*:15908:0:99999:7:::
+daemon:*:15908:0:99999:7:::
+bin:*:15908:0:99999:7:::
+sys:*:15908:0:99999:7:::
+sync:*:15908:0:99999:7:::
+games:*:15908:0:99999:7:::
+man:*:15908:0:99999:7:::
+lp:*:15908:0:99999:7:::
+mail:*:15908:0:99999:7:::
+news:*:15908:0:99999:7:::
+uucp:*:15908:0:99999:7:::
+proxy:*:15908:0:99999:7:::
+www-data:*:15908:0:99999:7:::
+backup:*:15908:0:99999:7:::
+list:*:15908:0:99999:7:::
+irc:*:15908:0:99999:7:::
+gnats:*:15908:0:99999:7:::
+nobody:*:15908:0:99999:7:::
+libuuid:!:15908:0:99999:7:::
+postfix:*:15908:0:99999:7:::
+sshd:*:15908:0:99999:7:::
diff --git a/src/test/setup-debian-009/etc/shadow.exp b/src/test/setup-debian-009/etc/shadow.exp
new file mode 100644
index 0000000..deb9e2d
--- /dev/null
+++ b/src/test/setup-debian-009/etc/shadow.exp
@@ -0,0 +1,21 @@
+root:$TEST$ABCDEF:12345:0:99999:7:::
+daemon:*:15908:0:99999:7:::
+bin:*:15908:0:99999:7:::
+sys:*:15908:0:99999:7:::
+sync:*:15908:0:99999:7:::
+games:*:15908:0:99999:7:::
+man:*:15908:0:99999:7:::
+lp:*:15908:0:99999:7:::
+mail:*:15908:0:99999:7:::
+news:*:15908:0:99999:7:::
+uucp:*:15908:0:99999:7:::
+proxy:*:15908:0:99999:7:::
+www-data:*:15908:0:99999:7:::
+backup:*:15908:0:99999:7:::
+list:*:15908:0:99999:7:::
+irc:*:15908:0:99999:7:::
+gnats:*:15908:0:99999:7:::
+nobody:*:15908:0:99999:7:::
+libuuid:!:15908:0:99999:7:::
+postfix:*:15908:0:99999:7:::
+sshd:*:15908:0:99999:7:::
diff --git a/src/test/setup-debian-010/config b/src/test/setup-debian-010/config
new file mode 100644
index 0000000..8d6386c
--- /dev/null
+++ b/src/test/setup-debian-010/config
@@ -0,0 +1,2 @@
+hostname: test10
+tty: 4
diff --git a/src/test/setup-debian-010/etc/debian_version b/src/test/setup-debian-010/etc/debian_version
new file mode 100644
index 0000000..c7d48f0
--- /dev/null
+++ b/src/test/setup-debian-010/etc/debian_version
@@ -0,0 +1 @@
+6.0.10
diff --git a/src/test/setup-debian-010/etc/hostname.exp b/src/test/setup-debian-010/etc/hostname.exp
new file mode 100644
index 0000000..5e08671
--- /dev/null
+++ b/src/test/setup-debian-010/etc/hostname.exp
@@ -0,0 +1 @@
+test10
diff --git a/src/test/setup-debian-010/etc/hosts.exp b/src/test/setup-debian-010/etc/hosts.exp
new file mode 100644
index 0000000..00a9546
--- /dev/null
+++ b/src/test/setup-debian-010/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 test10
diff --git a/src/test/setup-debian-010/etc/inittab b/src/test/setup-debian-010/etc/inittab
new file mode 100644
index 0000000..19ed447
--- /dev/null
+++ b/src/test/setup-debian-010/etc/inittab
@@ -0,0 +1,64 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+pf::powerwait:/etc/init.d/powerfail start
+pn::powerfailnow:/etc/init.d/powerfail now
+po::powerokwait:/etc/init.d/powerfail stop
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+#
+# Note that on most Debian systems tty7 is used by the X Window System,
+# so if you want to add more getty's go ahead but skip tty7 if you run X.
+#
+1:2345:respawn:/sbin/getty 38400 tty1
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
+
diff --git a/src/test/setup-debian-010/etc/inittab.exp b/src/test/setup-debian-010/etc/inittab.exp
new file mode 100644
index 0000000..c0e7e5a
--- /dev/null
+++ b/src/test/setup-debian-010/etc/inittab.exp
@@ -0,0 +1,64 @@
+# /etc/inittab: init(8) configuration.
+# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
+
+# The default runlevel.
+id:2:initdefault:
+
+# Boot-time system configuration/initialization script.
+# This is run first except when booting in emergency (-b) mode.
+si::sysinit:/etc/init.d/rcS
+
+# What to do in single-user mode.
+~~:S:wait:/sbin/sulogin
+
+# /etc/init.d executes the S and K scripts upon change
+# of runlevel.
+#
+# Runlevel 0 is halt.
+# Runlevel 1 is single-user.
+# Runlevels 2-5 are multi-user.
+# Runlevel 6 is reboot.
+
+l0:0:wait:/etc/init.d/rc 0
+l1:1:wait:/etc/init.d/rc 1
+l2:2:wait:/etc/init.d/rc 2
+l3:3:wait:/etc/init.d/rc 3
+l4:4:wait:/etc/init.d/rc 4
+l5:5:wait:/etc/init.d/rc 5
+l6:6:wait:/etc/init.d/rc 6
+# Normally not reached, but fallthrough in case of emergency.
+z6:6:respawn:/sbin/sulogin
+
+# What to do when CTRL-ALT-DEL is pressed.
+ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
+
+# Action on special keypress (ALT-UpArrow).
+#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
+
+# What to do when the power fails/returns.
+
+# /sbin/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+# <id>:<runlevels>:<action>:<process>
+#
+# Note that on most Debian systems tty7 is used by the X Window System,
+# so if you want to add more getty's go ahead but skip tty7 if you run X.
+#
+
+# Example how to put a getty on a serial line (for a terminal)
+#
+#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
+#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
+
+# Example how to put a getty on a modem line.
+#
+#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
+p0::powerfail:/sbin/init 0
+1:2345:respawn:/sbin/getty -L 38400 tty1
+2:23:respawn:/sbin/getty -L 38400 tty2
+3:23:respawn:/sbin/getty -L 38400 tty3
+4:23:respawn:/sbin/getty -L 38400 tty4
diff --git a/src/test/setup-debian-011/config b/src/test/setup-debian-011/config
new file mode 100644
index 0000000..63c9ff5
--- /dev/null
+++ b/src/test/setup-debian-011/config
@@ -0,0 +1 @@
+net0: name=eth0,hwaddr=46:6B:2E:6F:B1:13,bridge=vmbr0,ip6=fc00::89:c:1/96
diff --git a/src/test/setup-debian-011/etc/debian_version b/src/test/setup-debian-011/etc/debian_version
new file mode 100644
index 0000000..cc40bca
--- /dev/null
+++ b/src/test/setup-debian-011/etc/debian_version
@@ -0,0 +1 @@
+8.0
diff --git a/src/test/setup-debian-011/etc/network/interfaces b/src/test/setup-debian-011/etc/network/interfaces
new file mode 100644
index 0000000..f1bd92e
--- /dev/null
+++ b/src/test/setup-debian-011/etc/network/interfaces
@@ -0,0 +1,2 @@
+auto lo
+iface lo inet loopback
diff --git a/src/test/setup-debian-011/etc/network/interfaces.exp b/src/test/setup-debian-011/etc/network/interfaces.exp
new file mode 100644
index 0000000..16e619d
--- /dev/null
+++ b/src/test/setup-debian-011/etc/network/interfaces.exp
@@ -0,0 +1,8 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet6 static
+ address fc00::89:c:1
+ netmask 96
+
diff --git a/src/test/setup-debian-012/config b/src/test/setup-debian-012/config
new file mode 100644
index 0000000..1aeb8c8
--- /dev/null
+++ b/src/test/setup-debian-012/config
@@ -0,0 +1,2 @@
+net0: name=eth0,hwaddr=11:22:33:44:55:66,bridge=vmbr0,ip=10.0.0.100/32,gw=11.0.0.1
+net1: name=eth1,hwaddr=22:33:44:55:66:77,bridge=vmbr0,ip6=fc00::1/64,gw6=fc00:1::ff
diff --git a/src/test/setup-debian-012/etc/debian_version b/src/test/setup-debian-012/etc/debian_version
new file mode 100644
index 0000000..cc40bca
--- /dev/null
+++ b/src/test/setup-debian-012/etc/debian_version
@@ -0,0 +1 @@
+8.0
diff --git a/src/test/setup-debian-012/etc/network/interfaces b/src/test/setup-debian-012/etc/network/interfaces
new file mode 100644
index 0000000..f1bd92e
--- /dev/null
+++ b/src/test/setup-debian-012/etc/network/interfaces
@@ -0,0 +1,2 @@
+auto lo
+iface lo inet loopback
diff --git a/src/test/setup-debian-012/etc/network/interfaces.exp b/src/test/setup-debian-012/etc/network/interfaces.exp
new file mode 100644
index 0000000..4606578
--- /dev/null
+++ b/src/test/setup-debian-012/etc/network/interfaces.exp
@@ -0,0 +1,21 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet static
+ address 10.0.0.100
+ netmask 255.255.255.255
+ post-up ip route add 11.0.0.1 dev eth0
+ post-up ip route add default via 11.0.0.1
+ pre-down ip route del default via 11.0.0.1
+ pre-down ip route del 11.0.0.1 dev eth0
+
+auto eth1
+iface eth1 inet6 static
+ address fc00::1
+ netmask 64
+ post-up ip route add fc00:1::ff dev eth1
+ post-up ip route add default via fc00:1::ff
+ pre-down ip route del default via fc00:1::ff
+ pre-down ip route del fc00:1::ff dev eth1
+
diff --git a/src/test/setup-debian-013/config b/src/test/setup-debian-013/config
new file mode 100644
index 0000000..1d29eb6
--- /dev/null
+++ b/src/test/setup-debian-013/config
@@ -0,0 +1 @@
+net0: name=eth0,hwaddr=11:22:33:44:55:66,bridge=vmbr0
diff --git a/src/test/setup-debian-013/etc/debian_version b/src/test/setup-debian-013/etc/debian_version
new file mode 100644
index 0000000..cc40bca
--- /dev/null
+++ b/src/test/setup-debian-013/etc/debian_version
@@ -0,0 +1 @@
+8.0
diff --git a/src/test/setup-debian-013/etc/hosts b/src/test/setup-debian-013/etc/hosts
new file mode 120000
index 0000000..1d68d2e
--- /dev/null
+++ b/src/test/setup-debian-013/etc/hosts
@@ -0,0 +1 @@
+../../bad-path.txt
\ No newline at end of file
diff --git a/src/test/setup-debian-013/etc/hosts.exp b/src/test/setup-debian-013/etc/hosts.exp
new file mode 100644
index 0000000..bd9bcd7
--- /dev/null
+++ b/src/test/setup-debian-013/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+127.0.1.1 localhost
diff --git a/src/test/setup-opensuse-001/config b/src/test/setup-opensuse-001/config
new file mode 100644
index 0000000..48a4020
--- /dev/null
+++ b/src/test/setup-opensuse-001/config
@@ -0,0 +1,5 @@
+hostname: pvesuse1
+net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=1.2.3.1
+net1: bridge=vmbr0,name=eth1,ip=10.2.3.4/24
+net2: bridge=vmbr0,name=eth2,ip=manual
+net3: bridge=vmbr0,name=eth3
diff --git a/src/test/setup-opensuse-001/etc/SuSE-brand b/src/test/setup-opensuse-001/etc/SuSE-brand
new file mode 100644
index 0000000..e696c32
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/SuSE-brand
@@ -0,0 +1,2 @@
+BasedOnopenSUSE
+VERSION = 13.1
diff --git a/src/test/setup-opensuse-001/etc/hosts.exp b/src/test/setup-opensuse-001/etc/hosts.exp
new file mode 100644
index 0000000..c0113b8
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/hosts.exp
@@ -0,0 +1,2 @@
+127.0.0.1 localhost.localnet localhost
+1.2.3.4 pvesuse1.proxmox.com pvesuse1
diff --git a/src/test/setup-opensuse-001/etc/resolv.conf.exp b/src/test/setup-opensuse-001/etc/resolv.conf.exp
new file mode 100644
index 0000000..e505ad3
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/resolv.conf.exp
@@ -0,0 +1,3 @@
+search proxmox.com
+nameserver 8.8.8.8
+nameserver 8.8.8.9
diff --git a/src/test/setup-opensuse-001/etc/securetty b/src/test/setup-opensuse-001/etc/securetty
new file mode 100644
index 0000000..e0bd229
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/securetty
@@ -0,0 +1,7 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+console
diff --git a/src/test/setup-opensuse-001/etc/securetty.exp b/src/test/setup-opensuse-001/etc/securetty.exp
new file mode 100644
index 0000000..a0f3062
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/securetty.exp
@@ -0,0 +1,12 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+console
+lxc/console
+lxc/tty1
+lxc/tty2
+lxc/tty3
+lxc/tty4
diff --git a/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp
new file mode 100644
index 0000000..65bbdac
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp
@@ -0,0 +1,3 @@
+STARTMODE=onboot
+BOOTPROTO=static
+IPADDR=1.2.3.4/24
diff --git a/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp
new file mode 100644
index 0000000..eeeb459
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp
@@ -0,0 +1,3 @@
+STARTMODE=onboot
+BOOTPROTO=static
+IPADDR=10.2.3.4/24
diff --git a/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp
new file mode 100644
index 0000000..28fdc31
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp
@@ -0,0 +1,2 @@
+STARTMODE=manual
+BOOTPROTO=static
diff --git a/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp
new file mode 100644
index 0000000..28fdc31
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp
@@ -0,0 +1,2 @@
+STARTMODE=manual
+BOOTPROTO=static
diff --git a/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp b/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp
new file mode 100644
index 0000000..a936f06
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp
@@ -0,0 +1,3 @@
+# --- BEGIN PVE ROUTES ---
+default 1.2.3.1 0.0.0.0 eth0
+# --- END PVE ROUTES ---
diff --git a/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1 b/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1
new file mode 100644
index 0000000..b864673
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1
@@ -0,0 +1 @@
+# Nothing else
diff --git a/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp b/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp
new file mode 100644
index 0000000..b864673
--- /dev/null
+++ b/src/test/setup-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp
@@ -0,0 +1 @@
+# Nothing else
diff --git a/src/test/setup-opensuse-002/config b/src/test/setup-opensuse-002/config
new file mode 100644
index 0000000..3337969
--- /dev/null
+++ b/src/test/setup-opensuse-002/config
@@ -0,0 +1,4 @@
+hostname: pvesuse1
+net0: bridge=vmbr0,name=eth0,ip6=2001:1::/64,gw6=2001:1::ffff
+net1: bridge=vmbr0,name=eth1,ip6=2001:2::/64
+net2: bridge=vmbr0,name=eth2,ip6=manual
diff --git a/src/test/setup-opensuse-002/etc/SuSE-brand b/src/test/setup-opensuse-002/etc/SuSE-brand
new file mode 100644
index 0000000..e696c32
--- /dev/null
+++ b/src/test/setup-opensuse-002/etc/SuSE-brand
@@ -0,0 +1,2 @@
+BasedOnopenSUSE
+VERSION = 13.1
diff --git a/src/test/setup-opensuse-002/etc/securetty b/src/test/setup-opensuse-002/etc/securetty
new file mode 100644
index 0000000..e0bd229
--- /dev/null
+++ b/src/test/setup-opensuse-002/etc/securetty
@@ -0,0 +1,7 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+console
diff --git a/src/test/setup-opensuse-002/etc/securetty.exp b/src/test/setup-opensuse-002/etc/securetty.exp
new file mode 100644
index 0000000..a0f3062
--- /dev/null
+++ b/src/test/setup-opensuse-002/etc/securetty.exp
@@ -0,0 +1,12 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+console
+lxc/console
+lxc/tty1
+lxc/tty2
+lxc/tty3
+lxc/tty4
diff --git a/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp b/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp
new file mode 100644
index 0000000..477cae7
--- /dev/null
+++ b/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp
@@ -0,0 +1,3 @@
+STARTMODE=onboot
+BOOTPROTO=static
+IPADDR=2001:1::/64
diff --git a/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp b/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp
new file mode 100644
index 0000000..2abcd37
--- /dev/null
+++ b/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp
@@ -0,0 +1,3 @@
+STARTMODE=onboot
+BOOTPROTO=static
+IPADDR=2001:2::/64
diff --git a/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp b/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp
new file mode 100644
index 0000000..28fdc31
--- /dev/null
+++ b/src/test/setup-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp
@@ -0,0 +1,2 @@
+STARTMODE=manual
+BOOTPROTO=static
diff --git a/src/test/setup-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp b/src/test/setup-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp
new file mode 100644
index 0000000..11d7b71
--- /dev/null
+++ b/src/test/setup-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp
@@ -0,0 +1,3 @@
+# --- BEGIN PVE ROUTES ---
+default 2001:1::ffff - eth0
+# --- END PVE ROUTES ---
diff --git a/src/test/setup-opensuse-003/config b/src/test/setup-opensuse-003/config
new file mode 100644
index 0000000..cbe2dcd
--- /dev/null
+++ b/src/test/setup-opensuse-003/config
@@ -0,0 +1,5 @@
+hostname: pvesuse1
+net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=4.3.2.1,ip6=2001:1::/64,gw6=2001:1::ffff
+net1: bridge=vmbr0,name=eth1,ip=dhcp
+net2: bridge=vmbr0,name=eth2,ip6=dhcp
+net3: bridge=vmbr0,name=eth3,ip=dhcp,ip6=dhcp
diff --git a/src/test/setup-opensuse-003/etc/SuSE-brand b/src/test/setup-opensuse-003/etc/SuSE-brand
new file mode 100644
index 0000000..e696c32
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/SuSE-brand
@@ -0,0 +1,2 @@
+BasedOnopenSUSE
+VERSION = 13.1
diff --git a/src/test/setup-opensuse-003/etc/securetty b/src/test/setup-opensuse-003/etc/securetty
new file mode 100644
index 0000000..e0bd229
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/securetty
@@ -0,0 +1,7 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+console
diff --git a/src/test/setup-opensuse-003/etc/securetty.exp b/src/test/setup-opensuse-003/etc/securetty.exp
new file mode 100644
index 0000000..a0f3062
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/securetty.exp
@@ -0,0 +1,12 @@
+tty1
+tty2
+tty3
+tty4
+tty5
+tty6
+console
+lxc/console
+lxc/tty1
+lxc/tty2
+lxc/tty3
+lxc/tty4
diff --git a/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp
new file mode 100644
index 0000000..d5255e2
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp
@@ -0,0 +1,4 @@
+STARTMODE=onboot
+BOOTPROTO=static
+IPADDR_1=1.2.3.4/24
+IPADDR_2=2001:1::/64
diff --git a/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp
new file mode 100644
index 0000000..9afa8b7
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp
@@ -0,0 +1,2 @@
+STARTMODE=onboot
+BOOTPROTO=dhcp4
diff --git a/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp
new file mode 100644
index 0000000..4b5bf6f
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp
@@ -0,0 +1,2 @@
+STARTMODE=onboot
+BOOTPROTO=dhcp6
diff --git a/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp
new file mode 100644
index 0000000..e498f5b
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp
@@ -0,0 +1,2 @@
+STARTMODE=onboot
+BOOTPROTO=dhcp
diff --git a/src/test/setup-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp b/src/test/setup-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp
new file mode 100644
index 0000000..c784a38
--- /dev/null
+++ b/src/test/setup-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp
@@ -0,0 +1,5 @@
+# --- BEGIN PVE ROUTES ---
+4.3.2.1 0.0.0.0 255.255.255.255 eth0
+default 4.3.2.1 0.0.0.0 eth0
+default 2001:1::ffff - eth0
+# --- END PVE ROUTES ---
diff --git a/src/test/snapshot-expected/commit/lxc/101.conf b/src/test/snapshot-expected/commit/lxc/101.conf
new file mode 100644
index 0000000..ac8f306
--- /dev/null
+++ b/src/test/snapshot-expected/commit/lxc/101.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/commit/lxc/102.conf b/src/test/snapshot-expected/commit/lxc/102.conf
new file mode 100644
index 0000000..70b5bcf
--- /dev/null
+++ b/src/test/snapshot-expected/commit/lxc/102.conf
@@ -0,0 +1,37 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test2
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/commit/lxc/201.conf b/src/test/snapshot-expected/commit/lxc/201.conf
new file mode 100644
index 0000000..f871426
--- /dev/null
+++ b/src/test/snapshot-expected/commit/lxc/201.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-expected/commit/lxc/202.conf b/src/test/snapshot-expected/commit/lxc/202.conf
new file mode 100644
index 0000000..e7a3843
--- /dev/null
+++ b/src/test/snapshot-expected/commit/lxc/202.conf
@@ -0,0 +1,10 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-expected/commit/lxc/203.conf b/src/test/snapshot-expected/commit/lxc/203.conf
new file mode 100644
index 0000000..96a775f
--- /dev/null
+++ b/src/test/snapshot-expected/commit/lxc/203.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/create/lxc/101.conf b/src/test/snapshot-expected/create/lxc/101.conf
new file mode 100644
index 0000000..092c185
--- /dev/null
+++ b/src/test/snapshot-expected/create/lxc/101.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/create/lxc/102.conf b/src/test/snapshot-expected/create/lxc/102.conf
new file mode 100644
index 0000000..d702822
--- /dev/null
+++ b/src/test/snapshot-expected/create/lxc/102.conf
@@ -0,0 +1,37 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test2
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/create/lxc/201.conf b/src/test/snapshot-expected/create/lxc/201.conf
new file mode 100644
index 0000000..da4d72c
--- /dev/null
+++ b/src/test/snapshot-expected/create/lxc/201.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:unsnapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-expected/create/lxc/202.conf b/src/test/snapshot-expected/create/lxc/202.conf
new file mode 100644
index 0000000..c6d04c9
--- /dev/null
+++ b/src/test/snapshot-expected/create/lxc/202.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/101.conf b/src/test/snapshot-expected/delete/lxc/101.conf
new file mode 100644
index 0000000..c6d04c9
--- /dev/null
+++ b/src/test/snapshot-expected/delete/lxc/101.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/102.conf b/src/test/snapshot-expected/delete/lxc/102.conf
new file mode 100644
index 0000000..092c185
--- /dev/null
+++ b/src/test/snapshot-expected/delete/lxc/102.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/103.conf b/src/test/snapshot-expected/delete/lxc/103.conf
new file mode 100644
index 0000000..08bc80d
--- /dev/null
+++ b/src/test/snapshot-expected/delete/lxc/103.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test2
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/104.conf b/src/test/snapshot-expected/delete/lxc/104.conf
new file mode 100644
index 0000000..ce35c79
--- /dev/null
+++ b/src/test/snapshot-expected/delete/lxc/104.conf
@@ -0,0 +1,37 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test3
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
+
+[test3]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/105.conf b/src/test/snapshot-expected/delete/lxc/105.conf
new file mode 100644
index 0000000..c6d04c9
--- /dev/null
+++ b/src/test/snapshot-expected/delete/lxc/105.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/201.conf b/src/test/snapshot-expected/delete/lxc/201.conf
new file mode 100644
index 0000000..b010dfb
--- /dev/null
+++ b/src/test/snapshot-expected/delete/lxc/201.conf
@@ -0,0 +1,24 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:unsnapshotable-disk-1
+snapstate: delete
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/delete/lxc/202.conf b/src/test/snapshot-expected/delete/lxc/202.conf
new file mode 100644
index 0000000..2b2c5e2
--- /dev/null
+++ b/src/test/snapshot-expected/delete/lxc/202.conf
@@ -0,0 +1,24 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: backup
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/prepare/lxc/101.conf b/src/test/snapshot-expected/prepare/lxc/101.conf
new file mode 100644
index 0000000..08f6734
--- /dev/null
+++ b/src/test/snapshot-expected/prepare/lxc/101.conf
@@ -0,0 +1,24 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snapstate: prepare
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/prepare/lxc/102.conf b/src/test/snapshot-expected/prepare/lxc/102.conf
new file mode 100644
index 0000000..fa59022
--- /dev/null
+++ b/src/test/snapshot-expected/prepare/lxc/102.conf
@@ -0,0 +1,39 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+snapstate: prepare
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/prepare/lxc/200.conf b/src/test/snapshot-expected/prepare/lxc/200.conf
new file mode 100644
index 0000000..08f6734
--- /dev/null
+++ b/src/test/snapshot-expected/prepare/lxc/200.conf
@@ -0,0 +1,24 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snapstate: prepare
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/prepare/lxc/201.conf b/src/test/snapshot-expected/prepare/lxc/201.conf
new file mode 100644
index 0000000..ac8f306
--- /dev/null
+++ b/src/test/snapshot-expected/prepare/lxc/201.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-expected/prepare/lxc/202.conf b/src/test/snapshot-expected/prepare/lxc/202.conf
new file mode 100644
index 0000000..f871426
--- /dev/null
+++ b/src/test/snapshot-expected/prepare/lxc/202.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-expected/prepare/lxc/300.conf b/src/test/snapshot-expected/prepare/lxc/300.conf
new file mode 100644
index 0000000..f871426
--- /dev/null
+++ b/src/test/snapshot-expected/prepare/lxc/300.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-input/commit/lxc/101.conf b/src/test/snapshot-input/commit/lxc/101.conf
new file mode 100644
index 0000000..08f6734
--- /dev/null
+++ b/src/test/snapshot-input/commit/lxc/101.conf
@@ -0,0 +1,24 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snapstate: prepare
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/commit/lxc/102.conf b/src/test/snapshot-input/commit/lxc/102.conf
new file mode 100644
index 0000000..fa59022
--- /dev/null
+++ b/src/test/snapshot-input/commit/lxc/102.conf
@@ -0,0 +1,39 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+snapstate: prepare
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/commit/lxc/201.conf b/src/test/snapshot-input/commit/lxc/201.conf
new file mode 100644
index 0000000..f871426
--- /dev/null
+++ b/src/test/snapshot-input/commit/lxc/201.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-input/commit/lxc/202.conf b/src/test/snapshot-input/commit/lxc/202.conf
new file mode 100644
index 0000000..e7a3843
--- /dev/null
+++ b/src/test/snapshot-input/commit/lxc/202.conf
@@ -0,0 +1,10 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-input/commit/lxc/203.conf b/src/test/snapshot-input/commit/lxc/203.conf
new file mode 100644
index 0000000..96a775f
--- /dev/null
+++ b/src/test/snapshot-input/commit/lxc/203.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/create/lxc/101.conf b/src/test/snapshot-input/create/lxc/101.conf
new file mode 100644
index 0000000..c6d04c9
--- /dev/null
+++ b/src/test/snapshot-input/create/lxc/101.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-input/create/lxc/102.conf b/src/test/snapshot-input/create/lxc/102.conf
new file mode 100644
index 0000000..092c185
--- /dev/null
+++ b/src/test/snapshot-input/create/lxc/102.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/create/lxc/201.conf b/src/test/snapshot-input/create/lxc/201.conf
new file mode 100644
index 0000000..da4d72c
--- /dev/null
+++ b/src/test/snapshot-input/create/lxc/201.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:unsnapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-input/create/lxc/202.conf b/src/test/snapshot-input/create/lxc/202.conf
new file mode 100644
index 0000000..c6d04c9
--- /dev/null
+++ b/src/test/snapshot-input/create/lxc/202.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/101.conf b/src/test/snapshot-input/delete/lxc/101.conf
new file mode 100644
index 0000000..092c185
--- /dev/null
+++ b/src/test/snapshot-input/delete/lxc/101.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/102.conf b/src/test/snapshot-input/delete/lxc/102.conf
new file mode 100644
index 0000000..d702822
--- /dev/null
+++ b/src/test/snapshot-input/delete/lxc/102.conf
@@ -0,0 +1,37 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test2
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/103.conf b/src/test/snapshot-input/delete/lxc/103.conf
new file mode 100644
index 0000000..d702822
--- /dev/null
+++ b/src/test/snapshot-input/delete/lxc/103.conf
@@ -0,0 +1,37 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test2
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/104.conf b/src/test/snapshot-input/delete/lxc/104.conf
new file mode 100644
index 0000000..9b7fb78
--- /dev/null
+++ b/src/test/snapshot-input/delete/lxc/104.conf
@@ -0,0 +1,51 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test3
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
+
+[test2]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
+
+[test3]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test2
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/105.conf b/src/test/snapshot-input/delete/lxc/105.conf
new file mode 100644
index 0000000..ad0bdf1
--- /dev/null
+++ b/src/test/snapshot-input/delete/lxc/105.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:unsnapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/201.conf b/src/test/snapshot-input/delete/lxc/201.conf
new file mode 100644
index 0000000..ad0bdf1
--- /dev/null
+++ b/src/test/snapshot-input/delete/lxc/201.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:unsnapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/delete/lxc/202.conf b/src/test/snapshot-input/delete/lxc/202.conf
new file mode 100644
index 0000000..2b2c5e2
--- /dev/null
+++ b/src/test/snapshot-input/delete/lxc/202.conf
@@ -0,0 +1,24 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: backup
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: local:snapshotable-disk-1
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: local:snapshotable-disk-1
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/prepare/lxc/101.conf b/src/test/snapshot-input/prepare/lxc/101.conf
new file mode 100644
index 0000000..f871426
--- /dev/null
+++ b/src/test/snapshot-input/prepare/lxc/101.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-input/prepare/lxc/102.conf b/src/test/snapshot-input/prepare/lxc/102.conf
new file mode 100644
index 0000000..ac8f306
--- /dev/null
+++ b/src/test/snapshot-input/prepare/lxc/102.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/prepare/lxc/200.conf b/src/test/snapshot-input/prepare/lxc/200.conf
new file mode 100644
index 0000000..08f6734
--- /dev/null
+++ b/src/test/snapshot-input/prepare/lxc/200.conf
@@ -0,0 +1,24 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+lock: snapshot
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snapstate: prepare
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/prepare/lxc/201.conf b/src/test/snapshot-input/prepare/lxc/201.conf
new file mode 100644
index 0000000..ac8f306
--- /dev/null
+++ b/src/test/snapshot-input/prepare/lxc/201.conf
@@ -0,0 +1,23 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+parent: test
+rootfs: somestore:somedisk
+swap: 512
+
+[test]
+#test comment
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+snaptime: 1234567890
+swap: 512
diff --git a/src/test/snapshot-input/prepare/lxc/202.conf b/src/test/snapshot-input/prepare/lxc/202.conf
new file mode 100644
index 0000000..f871426
--- /dev/null
+++ b/src/test/snapshot-input/prepare/lxc/202.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-input/prepare/lxc/300.conf b/src/test/snapshot-input/prepare/lxc/300.conf
new file mode 100644
index 0000000..f871426
--- /dev/null
+++ b/src/test/snapshot-input/prepare/lxc/300.conf
@@ -0,0 +1,9 @@
+arch: amd64
+cpulimit: 1
+cpuunits: 1024
+hostname: test
+memory: 2048
+net0: bridge=vmbr0,hwaddr=12:34:56:78:90:12,ip=dhcp,ip6=dhcp,name=eth0,type=veth
+ostype: redhat
+rootfs: somestore:somedisk
+swap: 512
diff --git a/src/test/snapshot-input/storage.cfg b/src/test/snapshot-input/storage.cfg
new file mode 100644
index 0000000..e5b9703
--- /dev/null
+++ b/src/test/snapshot-input/storage.cfg
@@ -0,0 +1,4 @@
+dir: local
+ path tmp/storage/
+ maxfiles 0
+ content vztmpl,rootdir,iso,images
diff --git a/src/test/snapshot-test.pm b/src/test/snapshot-test.pm
new file mode 100644
index 0000000..f0ce678
--- /dev/null
+++ b/src/test/snapshot-test.pm
@@ -0,0 +1,332 @@
+package PVE::LXC;
+
+use strict;
+use warnings;
+
+use PVE::Storage;
+use PVE::Storage::Plugin;
+use PVE::LXC;
+use PVE::Tools;
+
+use Test::MockModule;
+use Test::More;
+
+my $nodename;
+my $snapshot_possible;
+my $vol_snapshot_possible = {};
+my $vol_snapshot_delete_possible = {};
+my $vol_snapshot = {};
+my $vol_snapshot_delete = {};
+my $running;
+my $freeze_possible;
+
+# Mocked methods
+
+sub mocked_volume_snapshot {
+ my ($storecfg, $volid, $snapname) = @_;
+ die "Storage config not mocked! aborting"
+ if defined($storecfg);
+ die "volid undefined"
+ if !defined($volid);
+ die "snapname undefined"
+ if !defined($snapname);
+ if ($vol_snapshot_possible->{$volid}) {
+ if (defined($vol_snapshot->{$volid})) {
+ $vol_snapshot->{$volid} .= ",$snapname";
+ } else {
+ $vol_snapshot->{$volid} = $snapname;
+ }
+ return 1;
+ } else {
+ die "volume snapshot disabled";
+ }
+}
+
+sub mocked_volume_snapshot_delete {
+ my ($storecfg, $volid, $snapname) = @_;
+ die "Storage config not mocked! aborting"
+ if defined($storecfg);
+ die "volid undefined"
+ if !defined($volid);
+ die "snapname undefined"
+ if !defined($snapname);
+ if ($vol_snapshot_delete_possible->{$volid}) {
+ if (defined($vol_snapshot_delete->{$volid})) {
+ $vol_snapshot_delete->{$volid} .= ",$snapname";
+ } else {
+ $vol_snapshot_delete->{$volid} = $snapname;
+ }
+ return 1;
+ } else {
+ die "volume snapshot delete disabled";
+ }
+}
+
+sub mocked_run_command {
+ my ($cmd, %param) = @_;
+ my $cmdstring;
+ if (my $ref = ref($cmd)) {
+ $cmdstring = PVE::Tools::cmd2string($cmd);
+ if ($cmdstring =~ m/.*\/lxc-(un)?freeze.*/) {
+ return 1 if $freeze_possible;
+ die "lxc-[un]freeze disabled";
+ }
+ }
+ die "unexpected run_command call, aborting";
+}
+
+# Testing methods
+
+sub test_file {
+ my ($exp_fn, $real_fn) = @_;
+ my $ret;
+ eval {
+ $ret = system("diff -u '$exp_fn' '$real_fn'");
+ };
+ die if $@;
+ return !$ret;
+}
+
+sub testcase_prepare {
+ my ($vmid, $snapname, $save_vmstate, $comment, $exp_err) = @_;
+ subtest "Preparing snapshot '$snapname' for vm '$vmid'" => sub {
+ plan tests => 2;
+ $@ = undef;
+ eval {
+ PVE::LXC::snapshot_prepare($vmid, $snapname, $save_vmstate, $comment);
+ };
+ is($@, $exp_err, "\$@ correct");
+ ok(test_file("snapshot-expected/prepare/lxc/$vmid.conf", "snapshot-working/prepare/lxc/$vmid.conf"), "config file correct");
+ };
+}
+
+sub testcase_commit {
+ my ($vmid, $snapname, $exp_err) = @_;
+ subtest "Committing snapshot '$snapname' for vm '$vmid'" => sub {
+ plan tests => 2;
+ $@ = undef;
+ eval {
+ PVE::LXC::snapshot_commit($vmid, $snapname);
+ };
+ is($@, $exp_err, "\$@ correct");
+ ok(test_file("snapshot-expected/commit/lxc/$vmid.conf", "snapshot-working/commit/lxc/$vmid.conf"), "config file correct");
+ }
+}
+
+sub testcase_create {
+ my ($vmid, $snapname, $save_vmstate, $comment, $exp_err, $exp_vol_snap, $exp_vol_snap_delete) = @_;
+ subtest "Creating snapshot '$snapname' for vm '$vmid'" => sub {
+ plan tests => 4;
+ $vol_snapshot = {};
+ $vol_snapshot_delete = {};
+ $exp_vol_snap = {} if !defined($exp_vol_snap);
+ $exp_vol_snap_delete = {} if !defined($exp_vol_snap_delete);
+ $@ = undef;
+ eval {
+ PVE::LXC::snapshot_create($vmid, $snapname, $save_vmstate, $comment);
+ };
+ is($@, $exp_err, "\$@ correct");
+ is_deeply($vol_snapshot, $exp_vol_snap, "created correct volume snapshots");
+ is_deeply($vol_snapshot_delete, $exp_vol_snap_delete, "deleted correct volume snapshots");
+ ok(test_file("snapshot-expected/create/lxc/$vmid.conf", "snapshot-working/create/lxc/$vmid.conf"), "config file correct");
+ };
+}
+
+sub testcase_delete {
+ my ($vmid, $snapname, $force, $exp_err, $exp_vol_snap_delete) = @_;
+ subtest "Deleting snapshot '$snapname' of vm '$vmid'" => sub {
+ plan tests => 3;
+ $vol_snapshot_delete = {};
+ $exp_vol_snap_delete = {} if !defined($exp_vol_snap_delete);
+ $@ = undef;
+ eval {
+ PVE::LXC::snapshot_delete($vmid, $snapname, $force);
+ };
+ is($@, $exp_err, "\$@ correct");
+ is_deeply($vol_snapshot_delete, $exp_vol_snap_delete, "deleted correct volume snapshots");
+ ok(test_file("snapshot-expected/delete/lxc/$vmid.conf", "snapshot-working/delete/lxc/$vmid.conf"), "config file correct");
+ };
+}
+
+# BEGIN redefine PVE::LXC methods
+sub config_file_lock {
+ return "snapshot-working/pve-test.lock";
+}
+
+sub cfs_config_path {
+ my ($vmid, $node) = @_;
+
+ $node = $nodename if !$node;
+ return "snapshot-working/$node/lxc/$vmid.conf";
+}
+
+sub load_config {
+ my ($vmid, $node) = @_;
+
+ my $filename = cfs_config_path($vmid, $node);
+
+ my $raw = PVE::Tools::file_get_contents($filename);
+
+ my $conf = PVE::LXC::parse_pct_config($filename, $raw);
+ return $conf;
+}
+
+sub write_config {
+ my ($vmid, $conf) = @_;
+
+ my $filename = cfs_config_path($vmid);
+
+ if ($conf->{snapshots}) {
+ foreach my $snapname (keys %{$conf->{snapshots}}) {
+ $conf->{snapshots}->{$snapname}->{snaptime} = "1234567890"
+ if $conf->{snapshots}->{$snapname}->{snaptime};
+ }
+ }
+
+ my $raw = PVE::LXC::write_pct_config($filename, $conf);
+
+ PVE::Tools::file_set_contents($filename, $raw);
+}
+
+sub has_feature {
+ my ($feature, $conf, $storecfg, $snapname) = @_;
+ return $snapshot_possible;
+}
+
+sub check_running {
+ return $running;
+}
+
+sub sync_container_namespace {
+ return;
+}
+
+# END redefine PVE::LXC methods
+
+PVE::Tools::run_command("rm -rf snapshot-working");
+PVE::Tools::run_command("cp -a snapshot-input snapshot-working");
+
+$running = 1;
+$freeze_possible = 1;
+
+printf("");
+printf("Running prepare tests");
+printf("");
+$nodename = "prepare";
+
+printf("");
+printf("Setting has_feature to return true");
+printf("");
+$snapshot_possible = 1;
+
+printf("Successful snapshot_prepare with no existing snapshots");
+testcase_prepare("101", "test", 0, "test comment", '');
+
+printf("Successful snapshot_prepare with one existing snapshot");
+testcase_prepare("102", "test2", 0, "test comment", "");
+
+printf("Expected error for snapshot_prepare on locked container");
+testcase_prepare("200", "test", 0, "test comment", "VM is locked (snapshot)\n");
+
+printf("Expected error for snapshot_prepare with duplicate snapshot name");
+testcase_prepare("201", "test", 0, "test comment", "snapshot name 'test' already used\n");
+
+printf("Expected error for snapshot_prepare with save_vmstate");
+testcase_prepare("202", "test", 1, "test comment", "implement me - snapshot_save_vmstate\n");
+
+printf("");
+printf("Setting has_feature to return false");
+printf("");
+$snapshot_possible = 0;
+
+printf("Expected error for snapshot_prepare if snapshots not possible");
+testcase_prepare("300", "test", 0, "test comment", "snapshot feature is not available\n");
+
+printf("");
+printf("Running commit tests");
+printf("");
+$nodename = "commit";
+
+printf("");
+printf("Setting has_feature to return true");
+printf("");
+$snapshot_possible = 1;
+
+printf("Successful snapshot_commit with one prepared snapshot");
+testcase_commit("101", "test", "");
+
+printf("Successful snapshot_commit with one committed and one prepared snapshot");
+testcase_commit("102", "test2", "");
+
+printf("Expected error for snapshot_commit with no snapshot lock");
+testcase_commit("201", "test", "missing snapshot lock\n");
+
+printf("Expected error for snapshot_commit with invalid snapshot name");
+testcase_commit("202", "test", "snapshot 'test' does not exist\n");
+
+printf("Expected error for snapshot_commit with invalid snapshot state");
+testcase_commit("203", "test", "wrong snapshot state\n");
+
+$vol_snapshot_possible->{"local:snapshotable-disk-1"} = 1;
+$vol_snapshot_delete_possible->{"local:snapshotable-disk-1"} = 1;
+printf("");
+printf("Setting up Mocking for PVE::Storage");
+my $storage_module = new Test::MockModule('PVE::Storage');
+$storage_module->mock('config', sub { return undef; });
+$storage_module->mock('volume_snapshot', \&mocked_volume_snapshot);
+$storage_module->mock('volume_snapshot_delete', \&mocked_volume_snapshot_delete);
+printf("\tconfig(), volume_snapshot() and volume_snapshot_delete() mocked");
+
+printf("");
+printf("Setting up Mocking for PVE::Tools");
+my $tools_module = new Test::MockModule('PVE::Tools');
+$tools_module->mock('run_command' => \&mocked_run_command);
+printf("\trun_command() mocked");
+
+$nodename = "create";
+printf("");
+printf("Running create tests");
+printf("");
+
+printf("Successful snapshot_create with no existing snapshots");
+testcase_create("101", "test", 0, "test comment", "", { "local:snapshotable-disk-1" => "test" });
+
+printf("Successful snapshot_create with one existing snapshots");
+testcase_create("102", "test2", 0, "test comment", "", { "local:snapshotable-disk-1" => "test2" });
+
+printf("Expected error for snapshot_create when volume snapshot is not possible");
+testcase_create("201", "test", 0, "test comment", "volume snapshot disabled at snapshot-test.pm line 41.\n\n");
+
+printf("Expected error for snapshot_create with broken lxc-freeze");
+$freeze_possible = 0;
+testcase_create("202", "test", 0, "test comment", "lxc-[un]freeze disabled at snapshot-test.pm line 72.\n\n", undef, { "local:snapshotable-disk-1" => "test" });
+$freeze_possible = 1;
+
+$nodename = "delete";
+printf("");
+printf("Running delete tests");
+printf("");
+
+printf("Successful snapshot_delete of only existing snapshot");
+testcase_delete("101", "test", 0, "", { "local:snapshotable-disk-1" => "test" });
+
+printf("Successful snapshot_delete of leaf snapshot");
+testcase_delete("102", "test2", 0, "", { "local:snapshotable-disk-1" => "test2" });
+
+printf("Successful snapshot_delete of root snapshot");
+testcase_delete("103", "test", 0, "", { "local:snapshotable-disk-1" => "test" });
+
+printf("Successful snapshot_delete of intermediate snapshot");
+testcase_delete("104", "test2", 0, "", { "local:snapshotable-disk-1" => "test2" });
+
+printf("Successful snapshot_delete with broken volume_snapshot_delete and force=1");
+testcase_delete("105", "test", 1, "");
+
+printf("Expected error when snapshot_delete fails with broken volume_snapshot_delete and force=0");
+testcase_delete("201", "test", 0, "volume snapshot delete disabled at snapshot-test.pm line 61.\n");
+
+printf("Expected error for snapshot_delete with locked config");
+testcase_delete("202", "test", 0, "VM is locked (backup)\n");
+
+
+done_testing();
diff --git a/src/test/test-centos6-001/config b/src/test/test-centos6-001/config
deleted file mode 100644
index afe246f..0000000
--- a/src/test/test-centos6-001/config
+++ /dev/null
@@ -1,4 +0,0 @@
-hostname: test1
-net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=1.2.3.1
-net1: bridge=vmbr0,name=eth1,ip=10.2.3.4/24
-net2: bridge=vmbr0,name=eth2
diff --git a/src/test/test-centos6-001/etc/hosts.exp b/src/test/test-centos6-001/etc/hosts.exp
deleted file mode 100644
index 0791e77..0000000
--- a/src/test/test-centos6-001/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-1.2.3.4 test1.proxmox.com test1
diff --git a/src/test/test-centos6-001/etc/init/power-status-changed.conf.exp b/src/test/test-centos6-001/etc/init/power-status-changed.conf.exp
deleted file mode 100644
index 0763ae5..0000000
--- a/src/test/test-centos6-001/etc/init/power-status-changed.conf.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-# power-status-changed - shutdown on SIGPWR
-#
-start on power-status-changed
-
-exec /sbin/shutdown -h now "SIGPWR received"
diff --git a/src/test/test-centos6-001/etc/init/start-ttys.conf.exp b/src/test/test-centos6-001/etc/init/start-ttys.conf.exp
deleted file mode 100644
index 20e379b..0000000
--- a/src/test/test-centos6-001/etc/init/start-ttys.conf.exp
+++ /dev/null
@@ -1,18 +0,0 @@
-#
-# This service starts the configured number of gettys.
-#
-# Do not edit this file directly. If you want to change the behaviour,
-# please create a file start-ttys.override and put your changes there.
-
-start on stopped rc RUNLEVEL=[2345]
-
-env ACTIVE_CONSOLES=/dev/tty[1-6]
-env X_TTY=/dev/tty1
-task
-script
- . /etc/sysconfig/init
- for tty in $(echo $ACTIVE_CONSOLES) ; do
- [ "$RUNLEVEL" = "5" -a "$tty" = "$X_TTY" ] && continue
- initctl start tty TTY=$tty
- done
-end script
diff --git a/src/test/test-centos6-001/etc/init/tty.conf.exp b/src/test/test-centos6-001/etc/init/tty.conf.exp
deleted file mode 100644
index 5dcd7ad..0000000
--- a/src/test/test-centos6-001/etc/init/tty.conf.exp
+++ /dev/null
@@ -1,13 +0,0 @@
-# tty - getty
-#
-# This service maintains a getty on the specified device.
-#
-# Do not edit this file directly. If you want to change the behaviour,
-# please create a file tty.override and put your changes there.
-
-stop on runlevel [S016]
-
-respawn
-instance $TTY
-exec /sbin/mingetty $TTY
-usage 'tty TTY=/dev/ttyX - where X is console id'
diff --git a/src/test/test-centos6-001/etc/rc.d/rc.sysinit b/src/test/test-centos6-001/etc/rc.d/rc.sysinit
deleted file mode 100644
index a98b7dd..0000000
--- a/src/test/test-centos6-001/etc/rc.d/rc.sysinit
+++ /dev/null
@@ -1,6 +0,0 @@
-# just a test
-# dummy
-
-/sbin/start_udev xxxxxxxxxxyyyyyyzzzz
-
-
diff --git a/src/test/test-centos6-001/etc/rc.d/rc.sysinit.exp b/src/test/test-centos6-001/etc/rc.d/rc.sysinit.exp
deleted file mode 100644
index 097907e..0000000
--- a/src/test/test-centos6-001/etc/rc.d/rc.sysinit.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-# just a test
-# dummy
-
-#/sbin/start_udev xxxxxxxxxxyyyyyyzzzz
-
-
diff --git a/src/test/test-centos6-001/etc/redhat-release b/src/test/test-centos6-001/etc/redhat-release
deleted file mode 100644
index cdb73e8..0000000
--- a/src/test/test-centos6-001/etc/redhat-release
+++ /dev/null
@@ -1 +0,0 @@
-CentOS release 6.3 (Final)
diff --git a/src/test/test-centos6-001/etc/resolv.conf.exp b/src/test/test-centos6-001/etc/resolv.conf.exp
deleted file mode 100644
index e505ad3..0000000
--- a/src/test/test-centos6-001/etc/resolv.conf.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-search proxmox.com
-nameserver 8.8.8.8
-nameserver 8.8.8.9
diff --git a/src/test/test-centos6-001/etc/securetty b/src/test/test-centos6-001/etc/securetty
deleted file mode 100644
index fae1648..0000000
--- a/src/test/test-centos6-001/etc/securetty
+++ /dev/null
@@ -1,23 +0,0 @@
-console
-vc/1
-vc/2
-vc/3
-vc/4
-vc/5
-vc/6
-vc/7
-vc/8
-vc/9
-vc/10
-vc/11
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-tty7
-tty8
-tty9
-tty10
-tty11
\ No newline at end of file
diff --git a/src/test/test-centos6-001/etc/securetty.exp b/src/test/test-centos6-001/etc/securetty.exp
deleted file mode 100644
index 573c668..0000000
--- a/src/test/test-centos6-001/etc/securetty.exp
+++ /dev/null
@@ -1,28 +0,0 @@
-console
-vc/1
-vc/2
-vc/3
-vc/4
-vc/5
-vc/6
-vc/7
-vc/8
-vc/9
-vc/10
-vc/11
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-tty7
-tty8
-tty9
-tty10
-tty11
-lxc/console
-lxc/tty1
-lxc/tty2
-lxc/tty3
-lxc/tty4
diff --git a/src/test/test-centos6-001/etc/sysconfig/network b/src/test/test-centos6-001/etc/sysconfig/network
deleted file mode 100644
index e69de29..0000000
diff --git a/src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp b/src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp
deleted file mode 100644
index 2c5e570..0000000
--- a/src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth0.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-DEVICE=eth0
-ONBOOT=yes
-BOOTPROTO=none
-IPADDR=1.2.3.4
-NETMASK=255.255.255.0
-GATEWAY=1.2.3.1
diff --git a/src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp b/src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp
deleted file mode 100644
index 7be5df0..0000000
--- a/src/test/test-centos6-001/etc/sysconfig/network-scripts/ifcfg-eth1.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-DEVICE=eth1
-ONBOOT=yes
-BOOTPROTO=none
-IPADDR=10.2.3.4
-NETMASK=255.255.255.0
diff --git a/src/test/test-centos6-001/etc/sysconfig/network.exp b/src/test/test-centos6-001/etc/sysconfig/network.exp
deleted file mode 100644
index 03d42fd..0000000
--- a/src/test/test-centos6-001/etc/sysconfig/network.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-NETWORKING=yes
-HOSTNAME=test1
diff --git a/src/test/test-debian-001/config b/src/test/test-debian-001/config
deleted file mode 100644
index f8d7636..0000000
--- a/src/test/test-debian-001/config
+++ /dev/null
@@ -1 +0,0 @@
-hostname: test1
diff --git a/src/test/test-debian-001/etc/crontab b/src/test/test-debian-001/etc/crontab
deleted file mode 100644
index 95edd9b..0000000
--- a/src/test/test-debian-001/etc/crontab
+++ /dev/null
@@ -1,15 +0,0 @@
-# /etc/crontab: system-wide crontab
-# Unlike any other crontab you don't have to run the `crontab'
-# command to install the new version when you edit this file
-# and files in /etc/cron.d. These files also have username fields,
-# that none of the other crontabs do.
-
-SHELL=/bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-
-# m h dom mon dow user command
-17 * * * * root cd / && run-parts --report /etc/cron.hourly
-25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
-47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
-52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
-#
diff --git a/src/test/test-debian-001/etc/crontab.exp b/src/test/test-debian-001/etc/crontab.exp
deleted file mode 100644
index f57dc8d..0000000
--- a/src/test/test-debian-001/etc/crontab.exp
+++ /dev/null
@@ -1,15 +0,0 @@
-# /etc/crontab: system-wide crontab
-# Unlike any other crontab you don't have to run the `crontab'
-# command to install the new version when you edit this file
-# and files in /etc/cron.d. These files also have username fields,
-# that none of the other crontabs do.
-
-SHELL=/bin/sh
-PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
-
-# m h dom mon dow user command
-10 * * * * root cd / && run-parts --report /etc/cron.hourly
-44 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
-5 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
-51 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
-#
diff --git a/src/test/test-debian-001/etc/debian_version b/src/test/test-debian-001/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-001/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-001/etc/hostname.exp b/src/test/test-debian-001/etc/hostname.exp
deleted file mode 100644
index a5bce3f..0000000
--- a/src/test/test-debian-001/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test1
diff --git a/src/test/test-debian-001/etc/hosts.exp b/src/test/test-debian-001/etc/hosts.exp
deleted file mode 100644
index 7f3910c..0000000
--- a/src/test/test-debian-001/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 test1
diff --git a/src/test/test-debian-002/config b/src/test/test-debian-002/config
deleted file mode 100644
index 5191092..0000000
--- a/src/test/test-debian-002/config
+++ /dev/null
@@ -1,4 +0,0 @@
-hostname: test1
-net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=1.2.3.1
-net1: bridge=vmbr0,name=eth1,ip=10.2.3.4/24
-net2: bridge=vmbr0,name=eth2,ip=manual
diff --git a/src/test/test-debian-002/etc/debian_version b/src/test/test-debian-002/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-002/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-002/etc/hostname.exp b/src/test/test-debian-002/etc/hostname.exp
deleted file mode 100644
index a5bce3f..0000000
--- a/src/test/test-debian-002/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test1
diff --git a/src/test/test-debian-002/etc/hosts.exp b/src/test/test-debian-002/etc/hosts.exp
deleted file mode 100644
index 0791e77..0000000
--- a/src/test/test-debian-002/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-1.2.3.4 test1.proxmox.com test1
diff --git a/src/test/test-debian-002/etc/network/interfaces.exp b/src/test/test-debian-002/etc/network/interfaces.exp
deleted file mode 100644
index 9d9dbcc..0000000
--- a/src/test/test-debian-002/etc/network/interfaces.exp
+++ /dev/null
@@ -1,14 +0,0 @@
-auto eth0
-iface eth0 inet static
- address 1.2.3.4
- netmask 255.255.255.0
- gateway 1.2.3.1
-
-auto eth1
-iface eth1 inet static
- address 10.2.3.4
- netmask 255.255.255.0
-
-auto eth2
-iface eth2 inet manual
-
diff --git a/src/test/test-debian-003/config b/src/test/test-debian-003/config
deleted file mode 100644
index 6df1aba..0000000
--- a/src/test/test-debian-003/config
+++ /dev/null
@@ -1,5 +0,0 @@
-arch: i386
-memory: 512
-ostype: debian
-hostname: test3
-net0: bridge=vmbr0,name=eth0,hwaddr=26:2B:CC:E5:7F:F9,ip=manual
diff --git a/src/test/test-debian-003/etc/debian_version b/src/test/test-debian-003/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-003/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-003/etc/hostname.exp b/src/test/test-debian-003/etc/hostname.exp
deleted file mode 100644
index df6b0d2..0000000
--- a/src/test/test-debian-003/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test3
diff --git a/src/test/test-debian-003/etc/hosts.exp b/src/test/test-debian-003/etc/hosts.exp
deleted file mode 100644
index 9e3fb59..0000000
--- a/src/test/test-debian-003/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 test3
diff --git a/src/test/test-debian-003/etc/network/interfaces b/src/test/test-debian-003/etc/network/interfaces
deleted file mode 100644
index f1bd92e..0000000
--- a/src/test/test-debian-003/etc/network/interfaces
+++ /dev/null
@@ -1,2 +0,0 @@
-auto lo
-iface lo inet loopback
diff --git a/src/test/test-debian-003/etc/network/interfaces.exp b/src/test/test-debian-003/etc/network/interfaces.exp
deleted file mode 100644
index cdb8d13..0000000
--- a/src/test/test-debian-003/etc/network/interfaces.exp
+++ /dev/null
@@ -1,6 +0,0 @@
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet manual
-
diff --git a/src/test/test-debian-004/config b/src/test/test-debian-004/config
deleted file mode 100644
index bdd25d7..0000000
--- a/src/test/test-debian-004/config
+++ /dev/null
@@ -1,5 +0,0 @@
-arch: i386
-memory: 512
-ostype: debian
-hostname: test3.use-fqdn.com
-net0: bridge=vmbr0,name=eth0,hwaddr=26:2B:CC:E5:7F:F9,ip=1.2.3.2/24,gw=1.2.3.1
diff --git a/src/test/test-debian-004/etc/debian_version b/src/test/test-debian-004/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-004/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-004/etc/hostname.exp b/src/test/test-debian-004/etc/hostname.exp
deleted file mode 100644
index df6b0d2..0000000
--- a/src/test/test-debian-004/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test3
diff --git a/src/test/test-debian-004/etc/hosts.exp b/src/test/test-debian-004/etc/hosts.exp
deleted file mode 100644
index cd65bdf..0000000
--- a/src/test/test-debian-004/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-1.2.3.2 test3.use-fqdn.com test3
diff --git a/src/test/test-debian-004/etc/network/interfaces b/src/test/test-debian-004/etc/network/interfaces
deleted file mode 100644
index f1bd92e..0000000
--- a/src/test/test-debian-004/etc/network/interfaces
+++ /dev/null
@@ -1,2 +0,0 @@
-auto lo
-iface lo inet loopback
diff --git a/src/test/test-debian-004/etc/network/interfaces.exp b/src/test/test-debian-004/etc/network/interfaces.exp
deleted file mode 100644
index 6003326..0000000
--- a/src/test/test-debian-004/etc/network/interfaces.exp
+++ /dev/null
@@ -1,9 +0,0 @@
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet static
- address 1.2.3.2
- netmask 255.255.255.0
- gateway 1.2.3.1
-
diff --git a/src/test/test-debian-005/config b/src/test/test-debian-005/config
deleted file mode 100644
index 1d794fe..0000000
--- a/src/test/test-debian-005/config
+++ /dev/null
@@ -1,2 +0,0 @@
-hostname: test1
-tty: 4
diff --git a/src/test/test-debian-005/etc/debian_version b/src/test/test-debian-005/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-005/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-005/etc/hostname.exp b/src/test/test-debian-005/etc/hostname.exp
deleted file mode 100644
index a5bce3f..0000000
--- a/src/test/test-debian-005/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test1
diff --git a/src/test/test-debian-005/etc/hosts.exp b/src/test/test-debian-005/etc/hosts.exp
deleted file mode 100644
index 7f3910c..0000000
--- a/src/test/test-debian-005/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 test1
diff --git a/src/test/test-debian-005/etc/inittab b/src/test/test-debian-005/etc/inittab
deleted file mode 100644
index ddc59b8..0000000
--- a/src/test/test-debian-005/etc/inittab
+++ /dev/null
@@ -1,69 +0,0 @@
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-pf::powerwait:/etc/init.d/powerfail start
-pn::powerfailnow:/etc/init.d/powerfail now
-po::powerokwait:/etc/init.d/powerfail stop
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-# <id>:<runlevels>:<action>:<process>
-#
-# Note that on most Debian systems tty7 is used by the X Window System,
-# so if you want to add more getty's go ahead but skip tty7 if you run X.
-#
-1:2345:respawn:/sbin/getty --noclear 38400 tty1
-2:23:respawn:/sbin/getty 38400 tty2
-3:23:respawn:/sbin/getty 38400 tty3
-4:23:respawn:/sbin/getty 38400 tty4
-5:23:respawn:/sbin/getty 38400 tty5
-6:23:respawn:/sbin/getty 38400 tty6
-
-# Example how to put a getty on a serial line (for a terminal)
-#
-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-# Example how to put a getty on a modem line.
-#
-#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
-
diff --git a/src/test/test-debian-005/etc/inittab.exp b/src/test/test-debian-005/etc/inittab.exp
deleted file mode 100644
index 7d881db..0000000
--- a/src/test/test-debian-005/etc/inittab.exp
+++ /dev/null
@@ -1,64 +0,0 @@
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-# <id>:<runlevels>:<action>:<process>
-#
-# Note that on most Debian systems tty7 is used by the X Window System,
-# so if you want to add more getty's go ahead but skip tty7 if you run X.
-#
-
-# Example how to put a getty on a serial line (for a terminal)
-#
-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-# Example how to put a getty on a modem line.
-#
-#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
-p0::powerfail:/sbin/init 0
-1:2345:respawn:/sbin/getty --noclear 38400 tty1
-2:23:respawn:/sbin/getty --noclear 38400 tty2
-3:23:respawn:/sbin/getty --noclear 38400 tty3
-4:23:respawn:/sbin/getty --noclear 38400 tty4
diff --git a/src/test/test-debian-006/config b/src/test/test-debian-006/config
deleted file mode 100644
index 3ad4192..0000000
--- a/src/test/test-debian-006/config
+++ /dev/null
@@ -1,2 +0,0 @@
-hostname: test1
-tty: 0
\ No newline at end of file
diff --git a/src/test/test-debian-006/etc/debian_version b/src/test/test-debian-006/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-006/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-006/etc/hostname.exp b/src/test/test-debian-006/etc/hostname.exp
deleted file mode 100644
index a5bce3f..0000000
--- a/src/test/test-debian-006/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test1
diff --git a/src/test/test-debian-006/etc/hosts.exp b/src/test/test-debian-006/etc/hosts.exp
deleted file mode 100644
index 7f3910c..0000000
--- a/src/test/test-debian-006/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 test1
diff --git a/src/test/test-debian-006/etc/inittab b/src/test/test-debian-006/etc/inittab
deleted file mode 100644
index ddc59b8..0000000
--- a/src/test/test-debian-006/etc/inittab
+++ /dev/null
@@ -1,69 +0,0 @@
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-pf::powerwait:/etc/init.d/powerfail start
-pn::powerfailnow:/etc/init.d/powerfail now
-po::powerokwait:/etc/init.d/powerfail stop
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-# <id>:<runlevels>:<action>:<process>
-#
-# Note that on most Debian systems tty7 is used by the X Window System,
-# so if you want to add more getty's go ahead but skip tty7 if you run X.
-#
-1:2345:respawn:/sbin/getty --noclear 38400 tty1
-2:23:respawn:/sbin/getty 38400 tty2
-3:23:respawn:/sbin/getty 38400 tty3
-4:23:respawn:/sbin/getty 38400 tty4
-5:23:respawn:/sbin/getty 38400 tty5
-6:23:respawn:/sbin/getty 38400 tty6
-
-# Example how to put a getty on a serial line (for a terminal)
-#
-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-# Example how to put a getty on a modem line.
-#
-#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
-
diff --git a/src/test/test-debian-006/etc/inittab.exp b/src/test/test-debian-006/etc/inittab.exp
deleted file mode 100644
index 937a7e0..0000000
--- a/src/test/test-debian-006/etc/inittab.exp
+++ /dev/null
@@ -1,60 +0,0 @@
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-# <id>:<runlevels>:<action>:<process>
-#
-# Note that on most Debian systems tty7 is used by the X Window System,
-# so if you want to add more getty's go ahead but skip tty7 if you run X.
-#
-
-# Example how to put a getty on a serial line (for a terminal)
-#
-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-# Example how to put a getty on a modem line.
-#
-#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
-p0::powerfail:/sbin/init 0
diff --git a/src/test/test-debian-007/config b/src/test/test-debian-007/config
deleted file mode 100644
index dbf0e93..0000000
--- a/src/test/test-debian-007/config
+++ /dev/null
@@ -1,3 +0,0 @@
-hostname: test1
-searchdomain: proxmox.com
-nameserver: 8.8.8.8,8.8.8.9
\ No newline at end of file
diff --git a/src/test/test-debian-007/etc/debian_version b/src/test/test-debian-007/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-007/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-007/etc/hostname.exp b/src/test/test-debian-007/etc/hostname.exp
deleted file mode 100644
index a5bce3f..0000000
--- a/src/test/test-debian-007/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test1
diff --git a/src/test/test-debian-007/etc/hosts.exp b/src/test/test-debian-007/etc/hosts.exp
deleted file mode 100644
index 7f3910c..0000000
--- a/src/test/test-debian-007/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 test1
diff --git a/src/test/test-debian-007/etc/resolv.conf.exp b/src/test/test-debian-007/etc/resolv.conf.exp
deleted file mode 100644
index e505ad3..0000000
--- a/src/test/test-debian-007/etc/resolv.conf.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-search proxmox.com
-nameserver 8.8.8.8
-nameserver 8.8.8.9
diff --git a/src/test/test-debian-008/config b/src/test/test-debian-008/config
deleted file mode 100644
index 5861be4..0000000
--- a/src/test/test-debian-008/config
+++ /dev/null
@@ -1,9 +0,0 @@
-arch: i386
-cpulimit: 1
-memory: 512
-swap: 512
-ostype: debian
-hostname: CT102
-nameserver: 8.8.8.8,8.8.8.9
-searchdomain: proxmox.com
-net0: bridge=vmbr0,name=eth0,hwaddr=2A:31:01:D5:A4:BF,ip=192.168.3.102/20,gw=192.168.2.1
diff --git a/src/test/test-debian-008/etc/debian_version b/src/test/test-debian-008/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-008/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-008/etc/hostname.exp b/src/test/test-debian-008/etc/hostname.exp
deleted file mode 100644
index 473d65d..0000000
--- a/src/test/test-debian-008/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-CT102
diff --git a/src/test/test-debian-008/etc/hosts b/src/test/test-debian-008/etc/hosts
deleted file mode 100644
index e7bce03..0000000
--- a/src/test/test-debian-008/etc/hosts
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localdomain localhost
-127.0.1.1 CT102
diff --git a/src/test/test-debian-008/etc/hosts.exp b/src/test/test-debian-008/etc/hosts.exp
deleted file mode 100644
index 58c7bba..0000000
--- a/src/test/test-debian-008/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localdomain localhost
-192.168.3.102 CT102.proxmox.com CT102
diff --git a/src/test/test-debian-008/etc/network/interfaces b/src/test/test-debian-008/etc/network/interfaces
deleted file mode 100644
index f1bd92e..0000000
--- a/src/test/test-debian-008/etc/network/interfaces
+++ /dev/null
@@ -1,2 +0,0 @@
-auto lo
-iface lo inet loopback
diff --git a/src/test/test-debian-008/etc/network/interfaces.exp b/src/test/test-debian-008/etc/network/interfaces.exp
deleted file mode 100644
index b5ce7f8..0000000
--- a/src/test/test-debian-008/etc/network/interfaces.exp
+++ /dev/null
@@ -1,9 +0,0 @@
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet static
- address 192.168.3.102
- netmask 255.255.240.0
- gateway 192.168.2.1
-
diff --git a/src/test/test-debian-008/etc/resolv.conf.exp b/src/test/test-debian-008/etc/resolv.conf.exp
deleted file mode 100644
index e505ad3..0000000
--- a/src/test/test-debian-008/etc/resolv.conf.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-search proxmox.com
-nameserver 8.8.8.8
-nameserver 8.8.8.9
diff --git a/src/test/test-debian-009/config b/src/test/test-debian-009/config
deleted file mode 100644
index 8f09fd8..0000000
--- a/src/test/test-debian-009/config
+++ /dev/null
@@ -1 +0,0 @@
-hostname: test9
diff --git a/src/test/test-debian-009/etc/debian_version b/src/test/test-debian-009/etc/debian_version
deleted file mode 100644
index 4fedf1d..0000000
--- a/src/test/test-debian-009/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-7.0
diff --git a/src/test/test-debian-009/etc/hostname.exp b/src/test/test-debian-009/etc/hostname.exp
deleted file mode 100644
index c372db4..0000000
--- a/src/test/test-debian-009/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test9
diff --git a/src/test/test-debian-009/etc/hosts.exp b/src/test/test-debian-009/etc/hosts.exp
deleted file mode 100644
index 41eed1f..0000000
--- a/src/test/test-debian-009/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 test9
diff --git a/src/test/test-debian-009/etc/passwd b/src/test/test-debian-009/etc/passwd
deleted file mode 100644
index e505613..0000000
--- a/src/test/test-debian-009/etc/passwd
+++ /dev/null
@@ -1,21 +0,0 @@
-root:x:0:0:root:/root:/bin/bash
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:65534:sync:/bin:/bin/sync
-games:x:5:60:games:/usr/games:/bin/sh
-man:x:6:12:man:/var/cache/man:/bin/sh
-lp:x:7:7:lp:/var/spool/lpd:/bin/sh
-mail:x:8:8:mail:/var/mail:/bin/sh
-news:x:9:9:news:/var/spool/news:/bin/sh
-uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
-proxy:x:13:13:proxy:/bin:/bin/sh
-www-data:x:33:33:www-data:/var/www:/bin/sh
-backup:x:34:34:backup:/var/backups:/bin/sh
-list:x:38:38:Mailing List Manager:/var/list:/bin/sh
-irc:x:39:39:ircd:/var/run/ircd:/bin/sh
-gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
-nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
-libuuid:x:100:101::/var/lib/libuuid:/bin/sh
-postfix:x:101:104::/var/spool/postfix:/bin/false
-sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
diff --git a/src/test/test-debian-009/etc/passwd.exp b/src/test/test-debian-009/etc/passwd.exp
deleted file mode 100644
index e505613..0000000
--- a/src/test/test-debian-009/etc/passwd.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-root:x:0:0:root:/root:/bin/bash
-daemon:x:1:1:daemon:/usr/sbin:/bin/sh
-bin:x:2:2:bin:/bin:/bin/sh
-sys:x:3:3:sys:/dev:/bin/sh
-sync:x:4:65534:sync:/bin:/bin/sync
-games:x:5:60:games:/usr/games:/bin/sh
-man:x:6:12:man:/var/cache/man:/bin/sh
-lp:x:7:7:lp:/var/spool/lpd:/bin/sh
-mail:x:8:8:mail:/var/mail:/bin/sh
-news:x:9:9:news:/var/spool/news:/bin/sh
-uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
-proxy:x:13:13:proxy:/bin:/bin/sh
-www-data:x:33:33:www-data:/var/www:/bin/sh
-backup:x:34:34:backup:/var/backups:/bin/sh
-list:x:38:38:Mailing List Manager:/var/list:/bin/sh
-irc:x:39:39:ircd:/var/run/ircd:/bin/sh
-gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
-nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
-libuuid:x:100:101::/var/lib/libuuid:/bin/sh
-postfix:x:101:104::/var/spool/postfix:/bin/false
-sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin
diff --git a/src/test/test-debian-009/etc/shadow b/src/test/test-debian-009/etc/shadow
deleted file mode 100644
index 7d4be16..0000000
--- a/src/test/test-debian-009/etc/shadow
+++ /dev/null
@@ -1,21 +0,0 @@
-root:!*:15908:0:99999:7:::
-daemon:*:15908:0:99999:7:::
-bin:*:15908:0:99999:7:::
-sys:*:15908:0:99999:7:::
-sync:*:15908:0:99999:7:::
-games:*:15908:0:99999:7:::
-man:*:15908:0:99999:7:::
-lp:*:15908:0:99999:7:::
-mail:*:15908:0:99999:7:::
-news:*:15908:0:99999:7:::
-uucp:*:15908:0:99999:7:::
-proxy:*:15908:0:99999:7:::
-www-data:*:15908:0:99999:7:::
-backup:*:15908:0:99999:7:::
-list:*:15908:0:99999:7:::
-irc:*:15908:0:99999:7:::
-gnats:*:15908:0:99999:7:::
-nobody:*:15908:0:99999:7:::
-libuuid:!:15908:0:99999:7:::
-postfix:*:15908:0:99999:7:::
-sshd:*:15908:0:99999:7:::
diff --git a/src/test/test-debian-009/etc/shadow.exp b/src/test/test-debian-009/etc/shadow.exp
deleted file mode 100644
index deb9e2d..0000000
--- a/src/test/test-debian-009/etc/shadow.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-root:$TEST$ABCDEF:12345:0:99999:7:::
-daemon:*:15908:0:99999:7:::
-bin:*:15908:0:99999:7:::
-sys:*:15908:0:99999:7:::
-sync:*:15908:0:99999:7:::
-games:*:15908:0:99999:7:::
-man:*:15908:0:99999:7:::
-lp:*:15908:0:99999:7:::
-mail:*:15908:0:99999:7:::
-news:*:15908:0:99999:7:::
-uucp:*:15908:0:99999:7:::
-proxy:*:15908:0:99999:7:::
-www-data:*:15908:0:99999:7:::
-backup:*:15908:0:99999:7:::
-list:*:15908:0:99999:7:::
-irc:*:15908:0:99999:7:::
-gnats:*:15908:0:99999:7:::
-nobody:*:15908:0:99999:7:::
-libuuid:!:15908:0:99999:7:::
-postfix:*:15908:0:99999:7:::
-sshd:*:15908:0:99999:7:::
diff --git a/src/test/test-debian-010/config b/src/test/test-debian-010/config
deleted file mode 100644
index 8d6386c..0000000
--- a/src/test/test-debian-010/config
+++ /dev/null
@@ -1,2 +0,0 @@
-hostname: test10
-tty: 4
diff --git a/src/test/test-debian-010/etc/debian_version b/src/test/test-debian-010/etc/debian_version
deleted file mode 100644
index c7d48f0..0000000
--- a/src/test/test-debian-010/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-6.0.10
diff --git a/src/test/test-debian-010/etc/hostname.exp b/src/test/test-debian-010/etc/hostname.exp
deleted file mode 100644
index 5e08671..0000000
--- a/src/test/test-debian-010/etc/hostname.exp
+++ /dev/null
@@ -1 +0,0 @@
-test10
diff --git a/src/test/test-debian-010/etc/hosts.exp b/src/test/test-debian-010/etc/hosts.exp
deleted file mode 100644
index 00a9546..0000000
--- a/src/test/test-debian-010/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 test10
diff --git a/src/test/test-debian-010/etc/inittab b/src/test/test-debian-010/etc/inittab
deleted file mode 100644
index 19ed447..0000000
--- a/src/test/test-debian-010/etc/inittab
+++ /dev/null
@@ -1,64 +0,0 @@
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-pf::powerwait:/etc/init.d/powerfail start
-pn::powerfailnow:/etc/init.d/powerfail now
-po::powerokwait:/etc/init.d/powerfail stop
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-# <id>:<runlevels>:<action>:<process>
-#
-# Note that on most Debian systems tty7 is used by the X Window System,
-# so if you want to add more getty's go ahead but skip tty7 if you run X.
-#
-1:2345:respawn:/sbin/getty 38400 tty1
-
-# Example how to put a getty on a serial line (for a terminal)
-#
-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-# Example how to put a getty on a modem line.
-#
-#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
-
diff --git a/src/test/test-debian-010/etc/inittab.exp b/src/test/test-debian-010/etc/inittab.exp
deleted file mode 100644
index c0e7e5a..0000000
--- a/src/test/test-debian-010/etc/inittab.exp
+++ /dev/null
@@ -1,64 +0,0 @@
-# /etc/inittab: init(8) configuration.
-# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:wait:/sbin/sulogin
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/rc 0
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/rc 6
-# Normally not reached, but fallthrough in case of emergency.
-z6:6:respawn:/sbin/sulogin
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-# <id>:<runlevels>:<action>:<process>
-#
-# Note that on most Debian systems tty7 is used by the X Window System,
-# so if you want to add more getty's go ahead but skip tty7 if you run X.
-#
-
-# Example how to put a getty on a serial line (for a terminal)
-#
-#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-# Example how to put a getty on a modem line.
-#
-#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3
-p0::powerfail:/sbin/init 0
-1:2345:respawn:/sbin/getty -L 38400 tty1
-2:23:respawn:/sbin/getty -L 38400 tty2
-3:23:respawn:/sbin/getty -L 38400 tty3
-4:23:respawn:/sbin/getty -L 38400 tty4
diff --git a/src/test/test-debian-011/config b/src/test/test-debian-011/config
deleted file mode 100644
index 63c9ff5..0000000
--- a/src/test/test-debian-011/config
+++ /dev/null
@@ -1 +0,0 @@
-net0: name=eth0,hwaddr=46:6B:2E:6F:B1:13,bridge=vmbr0,ip6=fc00::89:c:1/96
diff --git a/src/test/test-debian-011/etc/debian_version b/src/test/test-debian-011/etc/debian_version
deleted file mode 100644
index cc40bca..0000000
--- a/src/test/test-debian-011/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-8.0
diff --git a/src/test/test-debian-011/etc/network/interfaces b/src/test/test-debian-011/etc/network/interfaces
deleted file mode 100644
index f1bd92e..0000000
--- a/src/test/test-debian-011/etc/network/interfaces
+++ /dev/null
@@ -1,2 +0,0 @@
-auto lo
-iface lo inet loopback
diff --git a/src/test/test-debian-011/etc/network/interfaces.exp b/src/test/test-debian-011/etc/network/interfaces.exp
deleted file mode 100644
index 16e619d..0000000
--- a/src/test/test-debian-011/etc/network/interfaces.exp
+++ /dev/null
@@ -1,8 +0,0 @@
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet6 static
- address fc00::89:c:1
- netmask 96
-
diff --git a/src/test/test-debian-012/config b/src/test/test-debian-012/config
deleted file mode 100644
index 1aeb8c8..0000000
--- a/src/test/test-debian-012/config
+++ /dev/null
@@ -1,2 +0,0 @@
-net0: name=eth0,hwaddr=11:22:33:44:55:66,bridge=vmbr0,ip=10.0.0.100/32,gw=11.0.0.1
-net1: name=eth1,hwaddr=22:33:44:55:66:77,bridge=vmbr0,ip6=fc00::1/64,gw6=fc00:1::ff
diff --git a/src/test/test-debian-012/etc/debian_version b/src/test/test-debian-012/etc/debian_version
deleted file mode 100644
index cc40bca..0000000
--- a/src/test/test-debian-012/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-8.0
diff --git a/src/test/test-debian-012/etc/network/interfaces b/src/test/test-debian-012/etc/network/interfaces
deleted file mode 100644
index f1bd92e..0000000
--- a/src/test/test-debian-012/etc/network/interfaces
+++ /dev/null
@@ -1,2 +0,0 @@
-auto lo
-iface lo inet loopback
diff --git a/src/test/test-debian-012/etc/network/interfaces.exp b/src/test/test-debian-012/etc/network/interfaces.exp
deleted file mode 100644
index 4606578..0000000
--- a/src/test/test-debian-012/etc/network/interfaces.exp
+++ /dev/null
@@ -1,21 +0,0 @@
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet static
- address 10.0.0.100
- netmask 255.255.255.255
- post-up ip route add 11.0.0.1 dev eth0
- post-up ip route add default via 11.0.0.1
- pre-down ip route del default via 11.0.0.1
- pre-down ip route del 11.0.0.1 dev eth0
-
-auto eth1
-iface eth1 inet6 static
- address fc00::1
- netmask 64
- post-up ip route add fc00:1::ff dev eth1
- post-up ip route add default via fc00:1::ff
- pre-down ip route del default via fc00:1::ff
- pre-down ip route del fc00:1::ff dev eth1
-
diff --git a/src/test/test-debian-013/config b/src/test/test-debian-013/config
deleted file mode 100644
index 1d29eb6..0000000
--- a/src/test/test-debian-013/config
+++ /dev/null
@@ -1 +0,0 @@
-net0: name=eth0,hwaddr=11:22:33:44:55:66,bridge=vmbr0
diff --git a/src/test/test-debian-013/etc/debian_version b/src/test/test-debian-013/etc/debian_version
deleted file mode 100644
index cc40bca..0000000
--- a/src/test/test-debian-013/etc/debian_version
+++ /dev/null
@@ -1 +0,0 @@
-8.0
diff --git a/src/test/test-debian-013/etc/hosts b/src/test/test-debian-013/etc/hosts
deleted file mode 120000
index 1d68d2e..0000000
--- a/src/test/test-debian-013/etc/hosts
+++ /dev/null
@@ -1 +0,0 @@
-../../bad-path.txt
\ No newline at end of file
diff --git a/src/test/test-debian-013/etc/hosts.exp b/src/test/test-debian-013/etc/hosts.exp
deleted file mode 100644
index bd9bcd7..0000000
--- a/src/test/test-debian-013/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-127.0.1.1 localhost
diff --git a/src/test/test-opensuse-001/config b/src/test/test-opensuse-001/config
deleted file mode 100644
index 48a4020..0000000
--- a/src/test/test-opensuse-001/config
+++ /dev/null
@@ -1,5 +0,0 @@
-hostname: pvesuse1
-net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=1.2.3.1
-net1: bridge=vmbr0,name=eth1,ip=10.2.3.4/24
-net2: bridge=vmbr0,name=eth2,ip=manual
-net3: bridge=vmbr0,name=eth3
diff --git a/src/test/test-opensuse-001/etc/SuSE-brand b/src/test/test-opensuse-001/etc/SuSE-brand
deleted file mode 100644
index e696c32..0000000
--- a/src/test/test-opensuse-001/etc/SuSE-brand
+++ /dev/null
@@ -1,2 +0,0 @@
-BasedOnopenSUSE
-VERSION = 13.1
diff --git a/src/test/test-opensuse-001/etc/hosts.exp b/src/test/test-opensuse-001/etc/hosts.exp
deleted file mode 100644
index c0113b8..0000000
--- a/src/test/test-opensuse-001/etc/hosts.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-127.0.0.1 localhost.localnet localhost
-1.2.3.4 pvesuse1.proxmox.com pvesuse1
diff --git a/src/test/test-opensuse-001/etc/resolv.conf.exp b/src/test/test-opensuse-001/etc/resolv.conf.exp
deleted file mode 100644
index e505ad3..0000000
--- a/src/test/test-opensuse-001/etc/resolv.conf.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-search proxmox.com
-nameserver 8.8.8.8
-nameserver 8.8.8.9
diff --git a/src/test/test-opensuse-001/etc/securetty b/src/test/test-opensuse-001/etc/securetty
deleted file mode 100644
index e0bd229..0000000
--- a/src/test/test-opensuse-001/etc/securetty
+++ /dev/null
@@ -1,7 +0,0 @@
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-console
diff --git a/src/test/test-opensuse-001/etc/securetty.exp b/src/test/test-opensuse-001/etc/securetty.exp
deleted file mode 100644
index a0f3062..0000000
--- a/src/test/test-opensuse-001/etc/securetty.exp
+++ /dev/null
@@ -1,12 +0,0 @@
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-console
-lxc/console
-lxc/tty1
-lxc/tty2
-lxc/tty3
-lxc/tty4
diff --git a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp b/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp
deleted file mode 100644
index 65bbdac..0000000
--- a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth0.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=static
-IPADDR=1.2.3.4/24
diff --git a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp b/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp
deleted file mode 100644
index eeeb459..0000000
--- a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth1.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=static
-IPADDR=10.2.3.4/24
diff --git a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp b/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp
deleted file mode 100644
index 28fdc31..0000000
--- a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth2.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-STARTMODE=manual
-BOOTPROTO=static
diff --git a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp b/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp
deleted file mode 100644
index 28fdc31..0000000
--- a/src/test/test-opensuse-001/etc/sysconfig/network/ifcfg-eth3.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-STARTMODE=manual
-BOOTPROTO=static
diff --git a/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp b/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp
deleted file mode 100644
index a936f06..0000000
--- a/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth0.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-# --- BEGIN PVE ROUTES ---
-default 1.2.3.1 0.0.0.0 eth0
-# --- END PVE ROUTES ---
diff --git a/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1 b/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1
deleted file mode 100644
index b864673..0000000
--- a/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1
+++ /dev/null
@@ -1 +0,0 @@
-# Nothing else
diff --git a/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp b/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp
deleted file mode 100644
index b864673..0000000
--- a/src/test/test-opensuse-001/etc/sysconfig/network/ifroute-eth1.exp
+++ /dev/null
@@ -1 +0,0 @@
-# Nothing else
diff --git a/src/test/test-opensuse-002/config b/src/test/test-opensuse-002/config
deleted file mode 100644
index 3337969..0000000
--- a/src/test/test-opensuse-002/config
+++ /dev/null
@@ -1,4 +0,0 @@
-hostname: pvesuse1
-net0: bridge=vmbr0,name=eth0,ip6=2001:1::/64,gw6=2001:1::ffff
-net1: bridge=vmbr0,name=eth1,ip6=2001:2::/64
-net2: bridge=vmbr0,name=eth2,ip6=manual
diff --git a/src/test/test-opensuse-002/etc/SuSE-brand b/src/test/test-opensuse-002/etc/SuSE-brand
deleted file mode 100644
index e696c32..0000000
--- a/src/test/test-opensuse-002/etc/SuSE-brand
+++ /dev/null
@@ -1,2 +0,0 @@
-BasedOnopenSUSE
-VERSION = 13.1
diff --git a/src/test/test-opensuse-002/etc/securetty b/src/test/test-opensuse-002/etc/securetty
deleted file mode 100644
index e0bd229..0000000
--- a/src/test/test-opensuse-002/etc/securetty
+++ /dev/null
@@ -1,7 +0,0 @@
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-console
diff --git a/src/test/test-opensuse-002/etc/securetty.exp b/src/test/test-opensuse-002/etc/securetty.exp
deleted file mode 100644
index a0f3062..0000000
--- a/src/test/test-opensuse-002/etc/securetty.exp
+++ /dev/null
@@ -1,12 +0,0 @@
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-console
-lxc/console
-lxc/tty1
-lxc/tty2
-lxc/tty3
-lxc/tty4
diff --git a/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp b/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp
deleted file mode 100644
index 477cae7..0000000
--- a/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth0.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=static
-IPADDR=2001:1::/64
diff --git a/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp b/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp
deleted file mode 100644
index 2abcd37..0000000
--- a/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth1.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=static
-IPADDR=2001:2::/64
diff --git a/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp b/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp
deleted file mode 100644
index 28fdc31..0000000
--- a/src/test/test-opensuse-002/etc/sysconfig/network/ifcfg-eth2.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-STARTMODE=manual
-BOOTPROTO=static
diff --git a/src/test/test-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp b/src/test/test-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp
deleted file mode 100644
index 11d7b71..0000000
--- a/src/test/test-opensuse-002/etc/sysconfig/network/ifroute-eth0.exp
+++ /dev/null
@@ -1,3 +0,0 @@
-# --- BEGIN PVE ROUTES ---
-default 2001:1::ffff - eth0
-# --- END PVE ROUTES ---
diff --git a/src/test/test-opensuse-003/config b/src/test/test-opensuse-003/config
deleted file mode 100644
index cbe2dcd..0000000
--- a/src/test/test-opensuse-003/config
+++ /dev/null
@@ -1,5 +0,0 @@
-hostname: pvesuse1
-net0: bridge=vmbr0,name=eth0,ip=1.2.3.4/24,gw=4.3.2.1,ip6=2001:1::/64,gw6=2001:1::ffff
-net1: bridge=vmbr0,name=eth1,ip=dhcp
-net2: bridge=vmbr0,name=eth2,ip6=dhcp
-net3: bridge=vmbr0,name=eth3,ip=dhcp,ip6=dhcp
diff --git a/src/test/test-opensuse-003/etc/SuSE-brand b/src/test/test-opensuse-003/etc/SuSE-brand
deleted file mode 100644
index e696c32..0000000
--- a/src/test/test-opensuse-003/etc/SuSE-brand
+++ /dev/null
@@ -1,2 +0,0 @@
-BasedOnopenSUSE
-VERSION = 13.1
diff --git a/src/test/test-opensuse-003/etc/securetty b/src/test/test-opensuse-003/etc/securetty
deleted file mode 100644
index e0bd229..0000000
--- a/src/test/test-opensuse-003/etc/securetty
+++ /dev/null
@@ -1,7 +0,0 @@
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-console
diff --git a/src/test/test-opensuse-003/etc/securetty.exp b/src/test/test-opensuse-003/etc/securetty.exp
deleted file mode 100644
index a0f3062..0000000
--- a/src/test/test-opensuse-003/etc/securetty.exp
+++ /dev/null
@@ -1,12 +0,0 @@
-tty1
-tty2
-tty3
-tty4
-tty5
-tty6
-console
-lxc/console
-lxc/tty1
-lxc/tty2
-lxc/tty3
-lxc/tty4
diff --git a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp b/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp
deleted file mode 100644
index d5255e2..0000000
--- a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth0.exp
+++ /dev/null
@@ -1,4 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=static
-IPADDR_1=1.2.3.4/24
-IPADDR_2=2001:1::/64
diff --git a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp b/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp
deleted file mode 100644
index 9afa8b7..0000000
--- a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth1.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=dhcp4
diff --git a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp b/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp
deleted file mode 100644
index 4b5bf6f..0000000
--- a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth2.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=dhcp6
diff --git a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp b/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp
deleted file mode 100644
index e498f5b..0000000
--- a/src/test/test-opensuse-003/etc/sysconfig/network/ifcfg-eth3.exp
+++ /dev/null
@@ -1,2 +0,0 @@
-STARTMODE=onboot
-BOOTPROTO=dhcp
diff --git a/src/test/test-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp b/src/test/test-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp
deleted file mode 100644
index c784a38..0000000
--- a/src/test/test-opensuse-003/etc/sysconfig/network/ifroute-eth0.exp
+++ /dev/null
@@ -1,5 +0,0 @@
-# --- BEGIN PVE ROUTES ---
-4.3.2.1 0.0.0.0 255.255.255.255 eth0
-default 4.3.2.1 0.0.0.0 eth0
-default 2001:1::ffff - eth0
-# --- END PVE ROUTES ---
--
2.1.4
More information about the pve-devel
mailing list