aboutsummaryrefslogtreecommitdiffstats
path: root/t/run.t
blob: fa435aaaabff46e0ec9f3532467e0724e9a7be20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/usr/bin/perl
# $Id: gprintify 257533 2009-05-23 12:45:15Z guillomovitch $

use strict;
use warnings;

use IPC::Run qw/run/;
use Test::More tests => 54;
use FindBin qw/$Bin/;
use File::Temp qw/tempdir/;

my ($out, $err);
delete $ENV{RPM_BUILD_ROOT};

foreach my $prog (qw/clean_files compress_files relink_symlinks gprintify translate_menu remove_info_dir fix_pamd fix_eol check_elf_files/) {

    ($out, $err) = run_prog($prog);
    is(  $out, '',                         "$prog stdin without buildroot" );
    like($err, qr/^No build root defined/, "$prog stderr without buildroot");

    $ENV{RPM_BUILD_ROOT} = "foo";

    ($out, $err) = run_prog($prog);
    is(  $out, '',                      "$prog stdin with wrong buildroot" );
    like($err, qr/^Invalid build root/, "$prog stderr with wrong buildroot");

    my $buildroot = tempdir(CLEANUP => 1);

    $ENV{RPM_BUILD_ROOT} = $buildroot;

    ($out, $err) = run_prog($prog);
    is($out, '', "$prog stdin with correct buildroot" );
    is($err, '', "$prog stderr with correct buildroot");

    delete $ENV{RPM_BUILD_ROOT};
}

sub run_prog {
    my ($prog, @args) = @_;

    run (["$Bin/../$prog", @args], \my($in, $out, $err));
    return ($out, $err);
}