summaryrefslogtreecommitdiff
path: root/tests/scripts
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2013-09-21 18:47:26 -0400
committerPaul Smith <psmith@gnu.org>2013-09-22 17:09:46 -0400
commit7e77685bc35dd0217ed3c72529b2aaf8466b991d (patch)
tree879e32605bce5c98f823739b522d84b2ff61a3b6 /tests/scripts
parent300d1296fb0f8f1b6bd16f977e2167442338343d (diff)
downloadgunmake-7e77685bc35dd0217ed3c72529b2aaf8466b991d.tar.gz
Portability enhancements for Mac OSX.
Don't dup stdout into stderr in the test suite. Don't rely on $port_type eq "UNIX" to mean case-preserving. Check against the real output of ar when creating archives.
Diffstat (limited to 'tests/scripts')
-rw-r--r--tests/scripts/features/archives6
-rw-r--r--tests/scripts/features/default_names49
2 files changed, 30 insertions, 25 deletions
diff --git a/tests/scripts/features/archives b/tests/scripts/features/archives
index 4b331c2..15f433b 100644
--- a/tests/scripts/features/archives
+++ b/tests/scripts/features/archives
@@ -11,9 +11,13 @@ exists $FEATURES{archives} or return -1;
# Create some .o files to work with
utouch(-60, qw(a1.o a2.o a3.o));
+# Some versions of ar print different things on creation. Find out.
+my $created = `ar rv libxx.a a1.o 2>&1`;
+unlink('libxx.a');
+
# Very simple
run_make_test('all: libxx.a(a1.o)',
- '', "ar rv libxx.a a1.o\nar: creating libxx.a\na - a1.o\n");
+ '', "ar rv libxx.a a1.o\n$created");
# Multiple .o's. Add a new one to the existing library
run_make_test('all: libxx.a(a1.o a2.o)',
diff --git a/tests/scripts/features/default_names b/tests/scripts/features/default_names
index e53127e..4ce90e5 100644
--- a/tests/scripts/features/default_names
+++ b/tests/scripts/features/default_names
@@ -10,32 +10,33 @@ open(MAKEFILE,"> $makefile");
print MAKEFILE "FIRST: ; \@echo It chose GNUmakefile\n";
close(MAKEFILE);
-# DOS/WIN32 platforms preserve case, but Makefile is the same file as makefile.
-# Just test what we can here (avoid Makefile versus makefile test).
-
-if ($port_type eq 'UNIX') {
- # Create another makefile called "makefile"
- open(MAKEFILE,"> makefile");
- print MAKEFILE "SECOND: ; \@echo It chose makefile\n";
- close(MAKEFILE);
-}
-
-# Create another makefile called "Makefile"
-open(MAKEFILE,"> Makefile");
-print MAKEFILE "THIRD: ; \@echo It chose Makefile\n";
+# Create another makefile called "makefile"
+open(MAKEFILE,"> makefile");
+print MAKEFILE "SECOND: ; \@echo It chose makefile\n";
close(MAKEFILE);
+# DOS/WIN32/MacOSX platforms are case-insensitive / case-preserving, so
+# Makefile is the same file as makefile. Just test what we can here.
-&run_make_with_options("","",&get_logfile);
-&compare_output("It chose GNUmakefile\n",&get_logfile(1));
-unlink $makefile;
-
-if ($port_type eq 'UNIX') {
- &run_make_with_options("","",&get_logfile);
- &compare_output("It chose makefile\n",&get_logfile(1));
- unlink "makefile";
+my $case_sensitive = 0;
+if (! -f 'Makefile') {
+ # Create another makefile called "Makefile"
+ $case_sensitive = 1;
+ open(MAKEFILE,"> Makefile");
+ print MAKEFILE "THIRD: ; \@echo It chose Makefile\n";
+ close(MAKEFILE);
}
-&run_make_with_options("","",&get_logfile);
-&compare_output("It chose Makefile\n",&get_logfile(1));
-unlink "Makefile";
+run_make_with_options("","",&get_logfile);
+compare_output("It chose GNUmakefile\n",&get_logfile(1));
+unlink($makefile);
+
+run_make_with_options("","",&get_logfile);
+compare_output("It chose makefile\n",&get_logfile(1));
+unlink("makefile");
+
+if ($case_sensitive) {
+ run_make_with_options("","",&get_logfile);
+ compare_output("It chose Makefile\n",&get_logfile(1));
+ unlink("Makefile");
+}