Bug 9802 - add test case to ensure man pages have correct XML
authorRobin Sheat <robin@catalyst.net.nz>
Wed, 13 Mar 2013 02:51:37 +0000 (15:51 +1300)
committerJared Camins-Esakov <jcamins@cpbibliography.com>
Wed, 20 Mar 2013 19:11:10 +0000 (15:11 -0400)
To test:
* run xt/verify-debian-docbook.t and make sure it's all OK
* modify an xml file in debian/docs, try again, make sure it fails

Signed-off-by: Magnus Enger <magnus@enger.priv.no>
- Running "prove -v xt/verify-debian-docbook.t" loops through all the
  XML files in debian/docs and reports them as being ok.
- Removing a "<" from one of the files makes the test report it as
  an error
- I did not verify that the test actually trips up a package build
  if there is invalid XML.
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>

debian/control
debian/control.in
debian/rules
xt/verify-debian-docbook.t [new file with mode: 0755]

index 31af622..8ac0262 100644 (file)
@@ -106,7 +106,8 @@ Build-Depends: libalgorithm-checkdigits-perl,
  libyaml-syck-perl,
  perl,
  perl-modules, 
- debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl
+ debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl,
+ libxml2-utils
 
 Package: koha-common
 Architecture: all
index 8cc49dc..a30aeed 100644 (file)
@@ -7,7 +7,8 @@ Standards-Version: 3.8.4
 # See debian/rules, the override_dh_gencontrol rules. 
 # There are some exceptions.
 Build-Depends:__AUTODEPENDS__, 
- debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl
+ debhelper (>= 7.0.50), gettext, python, python-debian, xsltproc, docbook-xsl,
+ libxml2-utils
 
 Package: koha-common
 Architecture: all
index 0b75d09..5980ebb 100755 (executable)
@@ -100,6 +100,7 @@ override_dh_auto_install:
                   -e 's:url(.*/skin.css.*):url(skin.css):' \
                $(TMP)/usr/share/koha/intranet/htdocs/intranet-tmpl/prog/en/css/staff-global*.css
        mkdir -p $(TMP)/debian/tmp_docbook
+       xt/verify-debian-docbook.t
        xsltproc --output $(TMP)/debian/tmp_docbook/ \
            /usr/share/xml/docbook/stylesheet/docbook-xsl/manpages/docbook.xsl \
            debian/docs/*.xml
diff --git a/xt/verify-debian-docbook.t b/xt/verify-debian-docbook.t
new file mode 100755 (executable)
index 0000000..06490c3
--- /dev/null
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+
+# Copyright (C) 2013 Catalyst IT Ltd.
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha 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 General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with Koha; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# This runs 'xmllint' (part of libxml2-utils) over each xml file that
+# generates the koha-common man pages and ensures they're correct.
+
+use strict;
+use warnings;
+
+use Test::More qw(no_plan);
+
+my $doc_dir = 'debian/docs';
+my @doc_files = glob($doc_dir . '/*.xml');
+my @command = qw(xmllint --noout);
+
+foreach my $file (@doc_files) {
+    ok(system(@command, $file) == 0, "XML validation for $file");
+}