make/tests/scripts/variables/INCLUDE_DIRS

93 lines
1.8 KiB
Plaintext
Raw Normal View History

# -*-perl-*-
$description = "Test the .INCLUDE_DIRS special variable.";
$details = "";
use Cwd;
$dir = cwd;
$dir =~ s,.*/([^/]+)$,../$1,;
# Test #1: The content of .INCLUDE_DIRS depends on the platform for which
# make was built. What we know for sure is that it shouldn't be
# empty.
#
run_make_test('
ifeq ($(.INCLUDE_DIRS),)
$(warning .INCLUDE_DIRS is empty)
endif
.PHONY: all
all:;@:
',
'', '');
# Test #2: Make sure -I paths end up in .INCLUDE_DIRS.
#
run_make_test('
ifeq ($(dir),)
$(warning dir is empty)
endif
ifeq ($(filter $(dir),$(.INCLUDE_DIRS)),)
$(warning .INCLUDE_DIRS does not contain $(dir))
endif
.PHONY: all
all:;@:
',
"-I$dir dir=$dir", '');
# Find the default .INCLUDE_DIRS
create_file('defaultdirs.mk', "\$(info \$(.INCLUDE_DIRS))\nall:;\@:\n");
my $cmd = subst_make_string("#MAKEPATH# -f defaultdirs.mk");
my @dirs = `$cmd`;
my $dirs = $dirs[0];
chomp $dirs;
unlink('defaultdirs.mk');
run_make_test("
ifneq (\$(.INCLUDE_DIRS),$dirs)
\$(warning Mismatched \$(.INCLUDE_DIRS) != $dirs)
endif
all:;\@:
",
'', '');
# Verify that -I- disables content from .INCLUDE_DIRS
run_make_test("
ifneq (\$(.INCLUDE_DIRS),)
\$(warning Mismatched \$(.INCLUDE_DIRS) != )
endif
all:;\@:
",
'-I-', '');
# Prefix -I dirs to the front
mkdir('somedir', 0777);
run_make_test("
ifneq (\$(.INCLUDE_DIRS),somedir $dirs)
\$(warning Mismatched \$(.INCLUDE_DIRS) != somedir $dirs)
endif
all:;\@:
",
'-I somedir', '');
# Verify .INCLUDE_DIRS contains files after -I-
run_make_test("
ifneq (\$(.INCLUDE_DIRS),somedir)
\$(warning Mismatched \$(.INCLUDE_DIRS) != somedir)
endif
all:;\@:
",
'-I - -I somedir', '');
rmdir('somedir');
# This tells the test driver that the perl test script executed properly.
1;