html.mk

static html creation framework using make(1) and cpp(1)
git clone git://0x30.net/html.mk
Log | Files | Refs | README | LICENSE

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' );