From 7e77685bc35dd0217ed3c72529b2aaf8466b991d Mon Sep 17 00:00:00 2001
From: Paul Smith <psmith@gnu.org>
Date: Sat, 21 Sep 2013 18:47:26 -0400
Subject: 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.
---
 tests/scripts/features/archives      |  6 ++++-
 tests/scripts/features/default_names | 49 ++++++++++++++++++------------------
 2 files changed, 30 insertions(+), 25 deletions(-)

(limited to 'tests/scripts/features')

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");
+}
-- 
cgit v1.2.3