bsdobjdir.t (1465B)
1 # 2 # Different settings of BSDOBJDIR for make obj. 3 # 4 use Modern::Perl; 5 use Test::Cmd; 6 use Test::File; 7 use Test::More tests => 9; 8 9 10 my $cmd = Test::Cmd->new( prog => '/usr/bin/make', workdir => '' ); 11 my $html_mk = $cmd->here . "/bsd.html.mk"; 12 13 # 14 # 1) BSDOBJDIR does not exist 15 # 16 my $o = "does_not_exist does not exist"; 17 18 $cmd->write( 'Makefile', <<EOF ); 19 BSDSRCDIR = /tmp 20 BSDOBJDIR = does_not_exist 21 22 .include "$html_mk" 23 EOF 24 25 $cmd->run( args => 'obj', chdir => $cmd->curdir ); 26 27 like( $cmd->stdout, qr{$o}, 'make obj stdout' ); 28 is( $cmd->stderr, "", 'make obj stderr' ); 29 is( $? >> 8, 0, 'make obj exit status' ); 30 31 32 # 33 # 2) BSDOBJDIR is a file 34 # 35 $o = "not_a_dir is not a directory"; 36 37 $cmd->write( 'not_a_dir' ); 38 $cmd->write( 'Makefile', <<EOF ); 39 BSDSRCDIR = /tmp 40 BSDOBJDIR = not_a_dir 41 42 .include "$html_mk" 43 EOF 44 45 $cmd->run( args => 'obj', chdir => $cmd->curdir ); 46 47 like( $cmd->stdout, qr{$o}, 'make obj stdout' ); 48 is( $cmd->stderr, "", 'make obj stderr' ); 49 is( $? >> 8, 0, 'make obj exit status' ); 50 51 # 52 # 3) BSDOBJDIR is a relative directory that exists. 53 # 54 $o = ".*/obj -> destdir/"; 55 56 $cmd->subdir( 'destdir' ); 57 $cmd->write( 'Makefile', <<EOF ); 58 BSDSRCDIR = /tmp 59 BSDOBJDIR = destdir 60 61 .include "$html_mk" 62 EOF 63 64 $cmd->run( args => 'obj', chdir => $cmd->curdir ); 65 66 like( $cmd->stdout, qr{$o}, 'make obj stdout' ); 67 is( $cmd->stderr, "", 'make obj stderr' ); 68 is( $? >> 8, 0, 'make obj exit status' ); 69 # XXX: Re enable 70 # symlink_target_is( $cmd->workpath . '/obj', 'destdir/' );