#! /usr/bin/perl -w
use strict;
use Data::Dumper;
# $Id: smoke.t 1191 2008-08-08 23:30:46Z abeltje $
use File::Spec::Functions;
my $findbin;
use File::Basename;
BEGIN { $findbin = dirname $0; }
use lib $findbin;
use TestLib;
use File::Copy;
use Test::More tests => 8;
use_ok( 'Test::Smoke' );
use_ok ('Test::Smoke::Util', qw( get_local_patches ));
my $verbose = $ENV{SMOKE_VERBOSE} || 0;
my @patchlevels = (
# [
# patch level,
# patch description,
# string in report
# ],
[
"20000",
"",
" 20000 ",
],
[
"2af192eebde5f7a93e229dfc3196f62ee4cbcd2e",
"blead-47-2af192ee",
"blead-47-2af192ee",
],
[
"a1248f17ffcfa8fe0e91df962317b46b81fc0ce5",
"v5.11.1-205-ga1248f1",
"v5.11.1-205-ga1248f1",
],
);
for my $p (@patchlevels) {
# test set_smoke_patchlevel
my $plevh = 'patchlevel.h';
my $srcd = catdir( $findbin, qw( ftppub perl-current ) );
my $src = catfile( $srcd, $plevh );
my $dst = catfile( $findbin, $plevh );
copy( $src, $dst ) or die "Cannot copy $plevh ($!)", 2;
my @lpatches = get_local_patches( $findbin, $verbose );
my $count_before = @lpatches;
Test::Smoke::set_smoke_patchlevel($findbin, $p->[0], $verbose);
my @lpatches2 = get_local_patches( $findbin, $verbose );
is(scalar @lpatches2, $count_before + 1, "smoke id added in patchlevel.h");
Test::Smoke::set_smoke_patchlevel($findbin, $p->[0], $verbose);
my @lpatches3 = get_local_patches( $findbin, $verbose );
is(scalar @lpatches3, $count_before + 1, "smoke id only one time added in patchlevel.h");
1 while unlink $dst;
my $plb = catfile( $findbin, 'patchlevel.bak' );
1 while unlink $plb;
}