From 579625efa577f99e914ef6bee6505ec18d9abfbf Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Mon, 24 Mar 2025 00:31:33 +0100 Subject: [PATCH] test615: fix for Cygwin, unignore in CI Setting a server-side file read-only by `chmod 0444` has does not prevent overwriting it via SFTP upload (as tested in CI). Fix it by setting its MS-DOS read-only attribute in addition. It requires the Cygwin tool `chattr`. Also unignore in CI. Fixes: ``` test 0615...[SFTP put remote failure] curl returned 0, when expecting 9 615: exit FAILED === Start of file stderr615 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 30 0 0 100 30 0 93 --:--:-- --:--:-- --:--:-- 95 100 30 0 0 100 30 0 92 --:--:-- --:--:-- --:--:-- 92 === End of file stderr615 ``` Ref: https://github.com/curl/curl/actions/runs/14037991918/job/39300723214#step:12:1269 Closes #16818 --- .github/workflows/windows.yml | 2 +- tests/libtest/test613.pl | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index b2dbd60faf..d8eb86fe84 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -149,7 +149,7 @@ jobs: timeout-minutes: 15 run: | PATH=/usr/bin - export TFLAGS='-j8 ${{ matrix.tflags }} ~615' + export TFLAGS='-j8 ${{ matrix.tflags }}' if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")" fi diff --git a/tests/libtest/test613.pl b/tests/libtest/test613.pl index 3bcd32aa44..2d4f390f77 100755 --- a/tests/libtest/test613.pl +++ b/tests/libtest/test613.pl @@ -66,6 +66,9 @@ if ($ARGV[0] eq "prepare") # represented exactly on a FAT filesystem. utime time, timegm(0,0,12,31,11,100), "rofile.txt"; chmod 0444, "rofile.txt"; + if($^O eq 'cygwin') { + system "chattr +r rofile.txt"; + } exit 0; } @@ -75,6 +78,9 @@ elsif ($ARGV[0] eq "postprocess") my $logfile = $ARGV[2]; # Clean up the test directory + if($^O eq 'cygwin') { + system "chattr -r $dirname/rofile.txt"; + } chmod 0666, "$dirname/rofile.txt"; unlink "$dirname/rofile.txt"; unlink "$dirname/plainfile.txt"; -- 2.47.3