mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-06-08 06:05:57 -04:00
Target previously-uncovered functions in the path/file-operation files the
resolver restructure touches, confirmed hit under coverage:
preallocate --preallocate (syscall.c do_fallocate) and sparse hole-punching
via --preallocate --sparse and --inplace --sparse (do_punch_hole),
on a file several levels deep.
fuzzy-basis --fuzzy basis selection with similar-named candidates and no
exact match, so the generator scores them (util1.c fuzzy_distance).
delete-deep add a --backup --delete case so removing an extraneous
backup-suffixed file consults delete.c is_backup_file.
preallocate probes --preallocate support up front and skips where it is
unavailable: macOS, the *BSDs and Solaris build without fallocate/posix_fallocate
(and FALLOC_FL_PUNCH_HOLE is Linux-only), and reject the option outright. It runs
on Linux and Cygwin. fuzzy-basis and delete-deep are plain local transfers with
no skips. All green on master and under --protocol=29/30.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
66 lines
2.1 KiB
YAML
66 lines
2.1 KiB
YAML
name: Test rsync on macOS
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- '.github/workflows/*.yml'
|
|
- '!.github/workflows/macos-build.yml'
|
|
pull_request:
|
|
branches: [ master ]
|
|
paths-ignore:
|
|
- '.github/workflows/*.yml'
|
|
- '!.github/workflows/macos-build.yml'
|
|
schedule:
|
|
- cron: '42 8 * * *'
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: macos-latest
|
|
name: Test rsync on macOS
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- name: prep
|
|
run: |
|
|
brew install automake openssl xxhash zstd lz4
|
|
pip3 install --user --break-system-packages commonmark
|
|
echo "$(brew --prefix)/bin" >>$GITHUB_PATH
|
|
- name: configure
|
|
run: |
|
|
BREW_PREFIX=$(brew --prefix)
|
|
OPENSSL_PREFIX=$(brew --prefix openssl)
|
|
CPPFLAGS="-I${BREW_PREFIX}/include -I${OPENSSL_PREFIX}/include" \
|
|
LDFLAGS="-L${BREW_PREFIX}/lib -L${OPENSSL_PREFIX}/lib" \
|
|
./configure --with-rrsync
|
|
- name: make
|
|
run: make
|
|
- name: install
|
|
run: sudo make install
|
|
- name: info
|
|
run: rsync --version
|
|
- name: check
|
|
# chown-fake / devices-fake / xattrs / xattrs-hlink now RUN on macOS
|
|
# (rsyncfns.py drives xattrs via the `xattr` command), verified on a
|
|
# real macOS host, so they're no longer in the skip set.
|
|
run: sudo RSYNC_EXPECT_SKIPPED=acls-default,acls-depth,chmod-temp-dir,daemon-access-ip,daemon-chroot-acl,dir-sgid,open-noatime,preallocate,protected-regular,proxy-response-line-too-long,simd-checksum,sparse make check
|
|
- name: check (TCP daemon transport)
|
|
# Second run with daemon tests over a real loopback rsyncd; the default
|
|
# 'make check' above uses the secure stdio-pipe transport.
|
|
run: sudo ./runtests.py --rsync-bin=`pwd`/rsync --use-tcp -j 8
|
|
- name: ssl file list
|
|
run: rsync-ssl --no-motd download.samba.org::rsyncftp/ || true
|
|
- name: save artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: macos-bin
|
|
path: |
|
|
rsync
|
|
rsync-ssl
|
|
rsync.1
|
|
rsync-ssl.1
|
|
rsyncd.conf.5
|
|
rrsync.1
|
|
rrsync
|