From 7153cb98befc36a924dc8a48fefe962acf1dc51b Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Fri, 13 Oct 2017 13:41:11 -0300 Subject: [PATCH] Bug 19422: Make sure it will never happen again --- t/check_kohastructure.t | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 t/check_kohastructure.t diff --git a/t/check_kohastructure.t b/t/check_kohastructure.t new file mode 100644 index 0000000..ec5c48c --- /dev/null +++ b/t/check_kohastructure.t @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +# 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 3 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, see . + +use Modern::Perl; +use Test::More tests => 1; +use File::Slurp; +use C4::Context; +my $content = read_file( C4::Context->config("intranetdir") + . '/installer/data/mysql/kohastructure.sql' ); +my @drop_stmt_missing; +my $ccc = $content; +while ( $content =~ m|CREATE TABLE `?([^`\n ]*)`?\s?\(\s*\n|g ) { + my $match = $1; + next if $match =~ m|^IF NOT EXISTS |; + push @drop_stmt_missing, $match unless $ccc =~ m|DROP TABLE [^\n]*$match|; +} +is( + @drop_stmt_missing, + 0, + 'DROP TABLE statements should exist for all tables' + . ( + @drop_stmt_missing + ? ' but missing for ' . join( ',', @drop_stmt_missing ) + : '' + ) +); -- 2.1.4