summaryrefslogtreecommitdiff
path: root/tests/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/scripts')
-rw-r--r--tests/scripts/features/patspecific_vars2
-rw-r--r--tests/scripts/functions/eval10
-rw-r--r--tests/scripts/misc/general45
-rw-r--r--tests/scripts/options/symlinks47
-rw-r--r--tests/scripts/variables/MAKE4
-rw-r--r--tests/scripts/variables/MFILE_LIST (renamed from tests/scripts/variables/MAKEFILE_LIST)0
6 files changed, 62 insertions, 6 deletions
diff --git a/tests/scripts/features/patspecific_vars b/tests/scripts/features/patspecific_vars
index 31359cf..9e98b43 100644
--- a/tests/scripts/features/patspecific_vars
+++ b/tests/scripts/features/patspecific_vars
@@ -67,7 +67,7 @@ run_make_test('
/%: export foo := foo
/bar:
- @test "$(foo)" == "$$foo"
+ @test "$(foo)" = "$$foo"
', '', '');
diff --git a/tests/scripts/functions/eval b/tests/scripts/functions/eval
index c69a110..bc43053 100644
--- a/tests/scripts/functions/eval
+++ b/tests/scripts/functions/eval
@@ -158,4 +158,14 @@ $(eval $(FOO))
', '', 'hello
world');
+
+# We don't allow new target/prerequisite relationships to be defined within a
+# command script, because these are evaluated after snap_deps() and that
+# causes lots of problems (like core dumps!)
+# See Savannah bug # 12124.
+
+run_make_test('deps: ; $(eval deps: foo)', '',
+ '#MAKEFILE#:1: *** prerequisites cannot be defined in command scripts. Stop.',
+ 512);
+
1;
diff --git a/tests/scripts/misc/general4 b/tests/scripts/misc/general4
index 3b4595f..63320e2 100644
--- a/tests/scripts/misc/general4
+++ b/tests/scripts/misc/general4
@@ -24,13 +24,10 @@ close(MAKEFILE);
$answer = "mkdir -p dir/subdir\ntouch dir/subdir/file.b\ncp dir/subdir/file.b dir/subdir/file.a\n";
&compare_output($answer,&get_logfile(1));
-
# Test implicit rules
&touch('foo.c');
-run_make_test('
-foo: foo.o
-',
+run_make_test('foo: foo.o',
'CC="@echo cc" OUTPUT_OPTION=',
'cc -c foo.c
cc foo.o -o foo');
diff --git a/tests/scripts/options/symlinks b/tests/scripts/options/symlinks
new file mode 100644
index 0000000..4dcc67a
--- /dev/null
+++ b/tests/scripts/options/symlinks
@@ -0,0 +1,47 @@
+# -*-perl-*-
+
+$description = "Test the -L option.";
+
+$details = "Verify that symlink handling with and without -L works properly.";
+
+# Only run these tests if the system sypports symlinks
+if (eval { symlink("",""); 1 }) {
+
+ # Set up a symlink sym -> dep
+ # We'll make both dep and targ older than sym
+ $pwd =~ m%/([^/]+)$%;
+ $dirnm = $1;
+ &utouch(-10, 'dep');
+ &utouch(-5, 'targ');
+ symlink("../$dirnm/dep", 'sym');
+
+ # Without -L, nothing should happen
+ # With -L, it should update targ
+ run_make_test('targ: sym ; @echo make $@ from $<', '',
+ "#MAKE#: `targ' is up to date.");
+ run_make_test(undef, '-L', "make targ from sym");
+
+ # Now update dep; in all cases targ should be out of date.
+ &touch('dep');
+ run_make_test(undef, '', "make targ from sym");
+ run_make_test(undef, '-L', "make targ from sym");
+
+ # Now update targ; in all cases targ should be up to date.
+ &touch('targ');
+ run_make_test(undef, '', "#MAKE#: `targ' is up to date.");
+ run_make_test(undef, '-L', "#MAKE#: `targ' is up to date.");
+
+ # Add in a new link between sym and dep. Be sure it's newer than targ.
+ sleep(1);
+ rename('dep', 'dep1');
+ symlink('dep1', 'dep');
+
+ # Without -L, nothing should happen
+ # With -L, it should update targ
+ run_make_test(undef, '', "#MAKE#: `targ' is up to date.");
+ run_make_test(undef, '-L', "make targ from sym");
+
+ rmfiles('targ', 'dep', 'sym', 'dep1');
+}
+
+1;
diff --git a/tests/scripts/variables/MAKE b/tests/scripts/variables/MAKE
index 7c4cf0a..079c57e 100644
--- a/tests/scripts/variables/MAKE
+++ b/tests/scripts/variables/MAKE
@@ -1,3 +1,5 @@
+# -*-perl-*-
+
$description = "The following test creates a makefile to test MAKE \n"
."(very generic)";
@@ -26,7 +28,7 @@ $answer = "$mkpath\n$mkpath -f $makefile foo\n"
&run_make_with_options($makefile,"",&get_logfile,0);
-&delete("foo");
+&rmfiles("foo");
# COMPARE RESULTS
&compare_output($answer,&get_logfile(1));
diff --git a/tests/scripts/variables/MAKEFILE_LIST b/tests/scripts/variables/MFILE_LIST
index 076e42d..076e42d 100644
--- a/tests/scripts/variables/MAKEFILE_LIST
+++ b/tests/scripts/variables/MFILE_LIST