html.mk

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

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