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
This commit is contained in:
Viktor Szakats 2025-03-24 00:31:33 +01:00
parent 89101fabf8
commit 579625efa5
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
2 changed files with 7 additions and 1 deletions

View file

@ -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

View file

@ -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";