[newlib-cygwin] Cygwin: Fix testsuite tmpdir creation with non-default cygdrive prefix

Jon TURNEY jturney@sourceware.org
Thu Nov 12 15:31:50 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=140b0a6484414fcf848012c848c674644cc64f11

commit 140b0a6484414fcf848012c848c674644cc64f11
Author: Jon Turney <jon.turney@dronecode.org.uk>
Date:   Mon Nov 9 13:48:38 2020 +0000

    Cygwin: Fix testsuite tmpdir creation with non-default cygdrive prefix

Diff:
---
 winsup/testsuite/Makefile.in           | 10 ++++++----
 winsup/testsuite/winsup.api/winsup.exp |  2 +-
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/winsup/testsuite/Makefile.in b/winsup/testsuite/Makefile.in
index 3b5a251b2..4948a0bc7 100644
--- a/winsup/testsuite/Makefile.in
+++ b/winsup/testsuite/Makefile.in
@@ -124,10 +124,11 @@ $(RUNTIME) : $(cygwin_build)/Makefile
 # Set to $(target_alias)/ for cross.
 target_subdir = @target_subdir@
 
-# temporary directory to be used for files created by tests (as an absolute,
-# /cygdrive path, so it can be understood by the test DLL, which will have
-# different mount table)
-tmpdir = $(shell cygpath -ma $(objdir)/testsuite/tmp/ | sed -e 's#^\([A-Z]\):#/cygdrive/\L\1#')
+# a temporary directory, to be used for files created by tests
+tmpdir = $(abspath $(objdir)/testsuite/tmp/)
+# the same temporary directory, as an absolute, /cygdrive path (so it can be
+# understood by the test DLL, which will have a different mount table)
+testdll_tmpdir = $(shell cygpath -ma $(tmpdir) | sed -e 's#^\([A-Z]\):#/cygdrive/\L\1#')
 
 site.exp: ./config.status Makefile
 	@echo "Making a new config file..."
@@ -149,6 +150,7 @@ site.exp: ./config.status Makefile
 	@echo "set CFLAGS \"$(ALL_CFLAGS)\"" >> ./tmp0
 	@echo "set MINGW_CXX \"$(MINGW_CXX)\"" >> ./tmp0
 	@echo "set tmpdir $(tmpdir)" >> ./tmp0
+	@echo "set testdll_tmpdir $(testdll_tmpdir)" >> ./tmp0
 	@echo "set ltp_includes \"$(realpath $(libltp_srcdir))/include\"" >> ./tmp0
 	@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
 	@cat ./tmp0 > site.exp
diff --git a/winsup/testsuite/winsup.api/winsup.exp b/winsup/testsuite/winsup.api/winsup.exp
index cd5964d47..4978136a1 100644
--- a/winsup/testsuite/winsup.api/winsup.exp
+++ b/winsup/testsuite/winsup.api/winsup.exp
@@ -69,7 +69,7 @@ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c $srcdir/$subdir/*/*.{cc
 	       set redirect_output /dev/null
 	    }
 	    file mkdir $tmpdir/$base
-	    ws_spawn "$rootme/cygrun ./$base.exe $tmpdir/$base > $redirect_output"
+	    ws_spawn "$rootme/cygrun ./$base.exe $testdll_tmpdir/$base > $redirect_output"
 	    file delete -force $tmpdir/$base
 	    if { $rv } {
 		fail "$testcase (execute)"


More information about the Cygwin-cvs mailing list