#!/usr/bin/perl use strict; use warnings; use Test::More tests => 17; use LedgerSMB; use LedgerSMB::Form; my $lsmb = new LedgerSMB; ok(defined $lsmb, 'lsmb: defined'); isa_ok($lsmb, 'LedgerSMB', 'lsmb: correct type'); ok(defined $lsmb->{version}, 'lsmb: version set'); ok(defined $lsmb->{dbversion}, 'lsmb: dbversion set'); my $form = new Form; ok(defined $form, 'form: defined'); isa_ok($form, 'Form', 'form: correct type'); ok(defined $form->{version}, 'form: version set'); ok(defined $form->{dbversion}, 'form: dbversion set'); is($lsmb->{version}, $form->{version}, 'LedgerSMB and Form versions match'); is($lsmb->{dbversion}, $form->{dbversion}, 'LedgerSMB and Form dbversions match'); ok(-e 'VERSION', 'VERSION exists'); ok(-s 'VERSION', 'VERSION non-empty'); ok(-r 'VERSION', 'VERSION readable'); open(my $FH, '<', 'VERSION'); my $ver = readline $FH; close $FH; chomp $ver; is($lsmb->{version}, $ver, 'LedgerSMB version matches VERSION'); is($form->{version}, $ver, 'Form version matches VERSION'); my @dparts; my @lparts; my $age; SKIP: { skip 'LedgerSMB is trunk', 1 if $lsmb->{version} =~ /trunk$/i; @dparts = split /\./, $lsmb->{dbversion}; @lparts = split /\./, $lsmb->{version}; $age = 0; foreach my $dpart (@dparts) { my $lpart = shift @lparts; if (!defined $lpart) { $age = 1; last; } elsif ($lpart > $dpart) { last; } elsif ($dpart > $lpart) { $age = 1; last; } } ok($age == 0, 'lsmb: version >= dbversion'); } SKIP: { skip 'Form is trunk', 1 if $form->{version} =~ /trunk$/i; @dparts = split /\./, $form->{dbversion}; @lparts = split /\./, $form->{version}; $age = 0; foreach my $dpart (@dparts) { my $lpart = shift @lparts; if (!defined $lpart) { $age = 1; last; } elsif ($lpart > $dpart) { last; } elsif ($dpart > $lpart) { $age = 1; last; } } ok($age == 0, 'form: version >= dbversion'); }