1# Check that a small bugfix in Inline::C::validate() (ticket #11748) 2# is behaving as expected. 3 4use warnings; 5use strict; 6use Config; 7 8print "1..5\n"; 9 10require Inline::C; 11 12# Next 2 lines are for the benefit of 5.8.8. 13my (%o1, %o2, %o3); 14my($o1, $o2, $o3) = (\%o1, \%o2,\ %o3); 15 16$o1->{FOOBAR}{STUFF} = 1; 17 18$o2->{FOOBAR}{STUFF} = 1; 19$o2->{ILSM}{MAKEFILE}{INC} = '-I/foo -I/bar'; 20 21$o3->{FOOBAR}{STUFF} = 1; 22 23bless($o1, 'Inline::C'); 24bless($o2, 'Inline::C'); 25bless($o3, 'Inline::C'); 26 27Inline::C::validate($o1); 28 29if(($Config{osname} eq 'MSWin32') and ($Config{cc} =~ /\b(cl\b|clarm|icl)/)) { 30 31 ## $o1->{ILSM}{MAKEFILE}{INC} should be unset 32 ## as it's $ENV{INCLUDE} that is instead amended 33 34 if($o1->{ILSM}{MAKEFILE}{INC}) {print "not ok 1\n"} 35 else {print "ok 1\n"} 36} 37else { 38 39 ## $o1->{ILSM}{MAKEFILE}{INC} should be set 40 ## to "-I\"$FindBin::Bin\"" 41 42 if($o1->{ILSM}{MAKEFILE}{INC}) {print "ok 1\n"} 43 else {print "not ok 1\n"} 44} 45 46Inline::C::validate($o2); 47 48if($o2->{ILSM}{MAKEFILE}{INC} eq '-I/foo -I/bar') {print "ok 2\n"} 49else { 50 warn "INC: ", $o2->{ILSM}{MAKEFILE}{INC}, "\n"; 51 print "not ok 2\n"; 52} 53 54Inline::C::validate($o2, 'INC', '-I/baz'); 55 56if($o2->{ILSM}{MAKEFILE}{INC} =~ / \-I\/baz/) {print "ok 3\n"} 57else { 58 warn "INC: ", $o2->{ILSM}{MAKEFILE}{INC}, "\n"; 59 print "not ok 3\n"; 60} 61 62if($o2->{ILSM}{MAKEFILE}{INC} eq '-I/foo -I/bar -I/baz') {print "ok 4\n"} 63else { 64 warn "INC: ", $o2->{ILSM}{MAKEFILE}{INC}, "\n"; 65 print "not ok 4\n"; 66} 67 68Inline::C::validate($o3, 'INC', '-I/baz'); 69 70if(($Config{osname} eq 'MSWin32') and ($Config{cc} =~ /\b(cl\b|clarm|icl)/)) { 71 72 ## $o3->{ILSM}{MAKEFILE}{INC} should be set to " -I/baz" 73 74 if($o3->{ILSM}{MAKEFILE}{INC} eq ' -I/baz' ) {print "ok 5\n"} 75 else { 76 warn "INC: ", $o3->{ILSM}{MAKEFILE}{INC}, "\n"; 77 print "not ok 5\n"; 78 } 79 80} 81else { 82 83 ## $o3->{ILSM}{MAKEFILE}{INC} should be set 84 ## to "-I\"$FindBin::Bin\"" followed by " -I/baz" 85 86 if($o3->{ILSM}{MAKEFILE}{INC} =~ / \-I\/baz/ && 87 $o3->{ILSM}{MAKEFILE}{INC} ne ' -I/baz' ) {print "ok 5\n"} 88 else { 89 warn "INC: ", $o3->{ILSM}{MAKEFILE}{INC}, "\n"; 90 print "not ok 5\n"; 91 } 92 93} 94