From 5cb8c9f6e44aa9874231bae5a909cb4a4f3473b5 Mon Sep 17 00:00:00 2001 From: Claire Hernandez Date: Mon, 23 Apr 2012 15:11:46 +0200 Subject: [PATCH] Bug 7994: scripts to check yaml files $ prove yaml_valid.t checks a closed list of files $ perl yaml_valid.pl -f myfile.yaml try to load a yaml file with YAML::LoadFile and show errors (both files pertidied) Signed-off-by: Kyle M Hall Signed-off-by: Chris Cormack --- xt/yaml_valid.pl | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ xt/yaml_valid.t | 56 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 123 insertions(+) create mode 100755 xt/yaml_valid.pl create mode 100755 xt/yaml_valid.t diff --git a/xt/yaml_valid.pl b/xt/yaml_valid.pl new file mode 100755 index 0000000000..75e0ae78ca --- /dev/null +++ b/xt/yaml_valid.pl @@ -0,0 +1,67 @@ +#!/usr/bin/perl + +# Copyright (C) 2012 BibLibre +# +# 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. + +use Modern::Perl; +use Getopt::Long; +use YAML; + +my $usage = < \$help, + "file=s" => \$file, +) or die $usage; +die $usage if $help; + +say "Testing file: $file"; +eval { YAML::LoadFile($file); }; +if ($@) { + print "KO!\n$@\n"; +} +else { + print "Loading and Syntax OK\n"; +} + +#yaml_file_ok("$file", "$file is YAML"); + +=head1 NAME + +yaml_valid.pl + +=head1 DESCRIPTION + + Tests yaml config files + It does not tell if the params are correct, only if the file is well-formed (ie: readable by yaml) + +=head1 USAGE + +From Koha root directory: + +perl xt/yaml_valid.pl -f filename.yaml + +=cut diff --git a/xt/yaml_valid.t b/xt/yaml_valid.t new file mode 100755 index 0000000000..06618fccdd --- /dev/null +++ b/xt/yaml_valid.t @@ -0,0 +1,56 @@ +#!/usr/bin/perl + +# Copyright (C) 2012 BibLibre +# +# 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. + +use Modern::Perl; +use Test::YAML::Valid; +use Data::Dumper; + +use Test::More; + +BEGIN { + use FindBin; + eval { require "$FindBin::Bin/../misc/kohalib.pl" }; +} + +my $filebase = "$FindBin::Bin/../koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences"; + +my @files = `ls -1 $filebase`; + +plan tests => scalar @files; + +foreach my $f (@files) { + chomp $f; + yaml_file_ok( "$filebase/$f", "$f is YAML" ); +} + + +=head1 NAME + +yaml_valid.t + +=head1 DESCRIPTION + + +=head1 USAGE + +From everywhere: + +prove xt/yaml_valid.t + +=cut -- 2.39.5