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