From a8c428da9527c93040ee10c45b9458c02c94381f Mon Sep 17 00:00:00 2001 From: jkeenan Date: Sun, 21 Nov 2010 09:54:36 -0500 Subject: [PATCH] Test additional branches and conditions in Parrot::Headerizer::Functions::qualify_sourcefile(). --- t/tools/dev/headerizer/01_functions.t | 20 ++++++++++++++++++- .../headerizer/testlib/missingheaderfile.in | 2 ++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 t/tools/dev/headerizer/testlib/missingheaderfile.in diff --git a/t/tools/dev/headerizer/01_functions.t b/t/tools/dev/headerizer/01_functions.t index a247599a37..d9d47b4a8f 100644 --- a/t/tools/dev/headerizer/01_functions.t +++ b/t/tools/dev/headerizer/01_functions.t @@ -126,7 +126,6 @@ like($@, qr/$ofile doesn't look like an object file/, "Got expected die message for file lacking HEADERIZER HFILE directive" ); } -#t/tools/dev/headerizer/testlib/none.in { my $tdir = tempdir( CLEANUP => 1 ); my $stub = 'none'; @@ -146,6 +145,25 @@ like($@, qr/$ofile doesn't look like an object file/, is( $hfile, 'none', "As expected, no header file" ); } +{ + my $tdir = tempdir( CLEANUP => 1 ); + my $stub = 'missingheaderfile'; + copy "$cwd/t/tools/dev/headerizer/testlib/$stub.in" => + "$tdir/$stub.c" or croak "Unable to copy file for testing"; + $ofile = "$tdir/$stub.o"; + my $expected_cfile = "$tdir/$stub.c"; + eval { + my ($sourcefile, $source_code, $hfile) = + qualify_sourcefile( { + ofile => $ofile, + PConfig => \%PConfig, + is_yacc => 0, + } ); + }; + like($@, qr/"$stub" not found \(referenced from "$expected_cfile"\)/, + "Got expected error message for missing header file" ); +} + pass("Completed all tests in $0"); #sub touch_parrot { diff --git a/t/tools/dev/headerizer/testlib/missingheaderfile.in b/t/tools/dev/headerizer/testlib/missingheaderfile.in new file mode 100644 index 0000000000..4ac585b97f --- /dev/null +++ b/t/tools/dev/headerizer/testlib/missingheaderfile.in @@ -0,0 +1,2 @@ +This file has a valid HEADERIZER HFILE directive but no corresponding header file. +/* HEADERIZER HFILE: missingheaderfile */