From de9758ae9b2cb0c7f9f8e15e4e69016f6e7fc2a8 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 25 May 2012 11:14:15 +0100 Subject: [PATCH] Autogenerate augeas test case from default config files When adding new config file parameters, the corresponding additions to the augeas lens' are constantly forgotten. Also there are augeas test cases, these don't catch the error, since they too are never updated. To address this, the augeas test cases need to be auto-generated from the example config files. * build-aux/augeas-gentest.pl: Helper to generate an augeas test file, substituting in elements from the example config files * src/Makefile.am, daemon/Makefile.am: Switch to auto-generated augeas test cases * daemon/test_libvirtd.aug, daemon/test_libvirtd.aug.in, src/locking/test_libvirt_sanlock.aug, src/locking/test_libvirt_sanlock.aug.in, src/lxc/test_libvirtd_lxc.aug, src/lxc/test_libvirtd_lxc.aug.in, src/qemu/test_libvirtd_qemu.aug, src/qemu/test_libvirtd_qemu.aug.in: Remove example config file data, replacing with a ::CONFIG:: placeholder Signed-off-by: Daniel P. Berrange --- .gitignore | 4 + build-aux/augeas-gentest.pl | 71 +++ daemon/Makefile.am | 11 +- daemon/test_libvirtd.aug | 553 ------------------ daemon/test_libvirtd.aug.in | 49 ++ src/Makefile.am | 37 +- ...anlock.aug => test_libvirt_sanlock.aug.in} | 8 +- src/lxc/test_libvirtd_lxc.aug | 33 -- src/lxc/test_libvirtd_lxc.aug.in | 8 + src/qemu/test_libvirtd_qemu.aug | 252 -------- src/qemu/test_libvirtd_qemu.aug.in | 60 ++ 11 files changed, 233 insertions(+), 853 deletions(-) create mode 100755 build-aux/augeas-gentest.pl delete mode 100644 daemon/test_libvirtd.aug create mode 100644 daemon/test_libvirtd.aug.in rename src/locking/{test_libvirt_sanlock.aug => test_libvirt_sanlock.aug.in} (60%) delete mode 100644 src/lxc/test_libvirtd_lxc.aug create mode 100644 src/lxc/test_libvirtd_lxc.aug.in delete mode 100644 src/qemu/test_libvirtd_qemu.aug create mode 100644 src/qemu/test_libvirtd_qemu.aug.in diff --git a/.gitignore b/.gitignore index 65f679d05e..50ff3bf7d2 100644 --- a/.gitignore +++ b/.gitignore @@ -54,6 +54,7 @@ /daemon/libvirtd.init /daemon/libvirtd.pod /daemon/libvirtd.service +/daemon/test_libvirtd.aug /docs/apibuild.py.stamp /docs/devhelp/libvirt.devhelp /docs/hvsupport.html.in @@ -101,6 +102,9 @@ /src/libvirt_*probes.h /src/libvirt_lxc /src/locking/qemu-sanlock.conf +/src/locking/test_libvirt_sanlock.aug +/src/lxc/test_libvirtd_lxc.aug +/src/qemu/test_libvirtd_qemu.aug /src/remote/*_client_bodies.h /src/remote/*_protocol.[ch] /src/rpc/virkeepaliveprotocol.[ch] diff --git a/build-aux/augeas-gentest.pl b/build-aux/augeas-gentest.pl new file mode 100755 index 0000000000..a5f9fd3881 --- /dev/null +++ b/build-aux/augeas-gentest.pl @@ -0,0 +1,71 @@ +#!/usr/bin/perl +# +# augeas-gentest.pl: Generate an augeas test file, from an +# example config file + test file template +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# Authors: +# Daniel P. Berrange + +use strict; +use warnings; + +die "syntax: $0 CONFIG TEMPLATE AUGTEST\n" unless @ARGV == 3; + +my $config = shift @ARGV; +my $template = shift @ARGV; +my $augtest = shift @ARGV; + +open AUGTEST, ">", $augtest or die "cannot create $augtest: $!"; + +$SIG{__DIE__} = sub { + unlink $augtest; +}; + +open CONFIG, "<", $config or die "cannot read $config: $!"; +open TEMPLATE, "<", $template or die "cannot read $template: $!"; + +my $group = 0; +while (