mirror of
https://github.com/RsyncProject/rsync.git
synced 2026-11-02 18:15:11 -05:00
266 lines
9.6 KiB
JSON
266 lines
9.6 KiB
JSON
{
|
|
"_comment": [
|
|
"Copy this file to testsuite/fleettest.json and edit it for the available hosts.",
|
|
"Use --fleet PATH to select another file. fleettest.json is ignored by Git.",
|
|
"",
|
|
"Required target fields are name, ssh_host, workflow and configure_flags.",
|
|
"Set ssh_host to null for a local target. workflow names a file under .github/workflows.",
|
|
"Optional fields mirror the Target dataclass defaults in fleettest.py.",
|
|
"Set profiles for targets mapped to a workflow matrix.",
|
|
"",
|
|
"nonroot reruns tests marked fleet_nonroot as the SSH user after privileged passes.",
|
|
"",
|
|
"protocols adds one pipe pass per version and uses the matching workflow policy.",
|
|
"",
|
|
"max_retry reruns a failed test alone and reports recovered tests separately.",
|
|
"",
|
|
"unsupported_extra permits capabilities missing only on one fleet host.",
|
|
"",
|
|
"Keys starting with \"_\" are comments. See testsuite/README.md."
|
|
],
|
|
"targets": [
|
|
{
|
|
"name": "freebsd",
|
|
"ssh_host": "root@freebsd",
|
|
"workflow": "freebsd-build.yml",
|
|
"make": "gmake",
|
|
"configure_flags": [
|
|
"--with-rrsync",
|
|
"--disable-zstd",
|
|
"--disable-md2man",
|
|
"--disable-xxhash",
|
|
"--disable-lz4",
|
|
"--disable-idn"
|
|
]
|
|
},
|
|
{
|
|
"name": "solaris",
|
|
"ssh_host": "root@solaris",
|
|
"workflow": "solaris-build.yml",
|
|
"make": "gmake",
|
|
"configure_flags": [
|
|
"--with-rrsync",
|
|
"--disable-zstd",
|
|
"--disable-md2man",
|
|
"--disable-xxhash",
|
|
"--disable-lz4",
|
|
"--disable-idn"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "The nested OpenBSD VM excludes three rename-race tests because of a kernel lost wake-up and FFS rename-storm corruption. See dev-notes/openbsd-connect-lost-wakeup-report.txt.",
|
|
"name": "openbsd",
|
|
"ssh_host": "root@openbsd",
|
|
"workflow": "openbsd-build.yml",
|
|
"make": "gmake",
|
|
"configure_pre": "export AUTOCONF_VERSION=2.71 AUTOMAKE_VERSION=1.16;",
|
|
"max_retry": 2,
|
|
"exclude": [
|
|
"acl-symlink-race",
|
|
"sender-readlink-atfd",
|
|
"sender-remove-source-secure"
|
|
],
|
|
"configure_flags": [
|
|
"--with-rrsync",
|
|
"--disable-zstd",
|
|
"--disable-md2man",
|
|
"--disable-xxhash",
|
|
"--disable-lz4",
|
|
"--disable-idn"
|
|
]
|
|
},
|
|
{
|
|
"name": "netbsd",
|
|
"ssh_host": "root@netbsd",
|
|
"workflow": "netbsd-build.yml",
|
|
"make": "gmake",
|
|
"configure_flags": [
|
|
"--with-rrsync",
|
|
"--disable-zstd",
|
|
"--disable-md2man",
|
|
"--disable-xxhash",
|
|
"--disable-lz4",
|
|
"--disable-idn"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Ubuntu 18.04 coverage using the Ubuntu workflow because no matching hosted runner exists.",
|
|
"name": "ubuntu-1804",
|
|
"ssh_host": "root@ubuntu-1804",
|
|
"workflow": "ubuntu-build.yml",
|
|
"profiles": ["non-asan", "root", "self-peer", "linux", "no-zstd-threads"],
|
|
"_python_comment": "The stock Python 3.6 is too old for the runner. Use the installed Python 3.10.",
|
|
"python": "python3.10",
|
|
"_configure_flags_comment": "Disable zstd because 1.3.3 lacks ZSTD_minCLevel. Disable lz4 so compression-level tests use zlib.",
|
|
"configure_flags": [
|
|
"--with-rrsync",
|
|
"--disable-zstd",
|
|
"--disable-lz4"
|
|
],
|
|
"unsupported_extra": [
|
|
"protected_regular"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Ubuntu 20.04 coverage using the Ubuntu workflow because no matching hosted runner exists.",
|
|
"name": "ubuntu-2004",
|
|
"ssh_host": "root@ubuntu-2004",
|
|
"workflow": "ubuntu-build.yml",
|
|
"profiles": ["non-asan", "root", "self-peer", "linux", "no-zstd-threads"],
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Build unprivileged then run the main suite through sudo. Protocol 29 and 30 runs cover a kernel without xattrat.",
|
|
"name": "ubuntu-2204",
|
|
"ssh_host": "runner@ubuntu-2204",
|
|
"workflow": "ubuntu-build.yml",
|
|
"profiles": ["non-asan", "root", "self-peer", "linux", "no-zstd-threads"],
|
|
"privilege": "sudo",
|
|
"nonroot": true,
|
|
"protocols": [
|
|
30,
|
|
29
|
|
],
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Ubuntu 24.04 with kernel 6.8 and no xattrat support.",
|
|
"name": "ubuntu-2404",
|
|
"ssh_host": "runner@ubuntu-2404",
|
|
"workflow": "ubuntu-build.yml",
|
|
"profiles": ["non-asan", "root", "self-peer", "linux"],
|
|
"privilege": "sudo",
|
|
"nonroot": true,
|
|
"protocols": [
|
|
30,
|
|
29
|
|
],
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Current Ubuntu coverage with protocol 29 and 30 pipe passes.",
|
|
"name": "ubuntu-2604",
|
|
"ssh_host": "runner@ubuntu-2604",
|
|
"workflow": "ubuntu-build.yml",
|
|
"profiles": ["non-asan", "root", "self-peer", "linux"],
|
|
"privilege": "sudo",
|
|
"nonroot": true,
|
|
"protocols": [
|
|
30,
|
|
29
|
|
],
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "AlmaLinux 8 coverage with glibc 2.28, GCC 8.5 and the Python 3.9 module. The stock Python 3.6 is unsupported.",
|
|
"name": "almalinux-8",
|
|
"ssh_host": "root@almalinux-8",
|
|
"workflow": "almalinux-8-build.yml",
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
],
|
|
"_unsupported_extra_comment": "This VM has no second filesystem for the cross-device temporary-directory test.",
|
|
"unsupported_extra": [
|
|
"cross_device"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Add Homebrew to the non-interactive SSH path and pass its include and library directories to configure.",
|
|
"name": "mac2",
|
|
"ssh_host": "runner@mac2",
|
|
"workflow": "macos-build.yml",
|
|
"privilege": "sudo",
|
|
"env_prefix": "export PATH=/opt/homebrew/bin:/usr/local/bin:$PATH",
|
|
"configure_pre": "CPPFLAGS=\"-I$(brew --prefix)/include -I$(brew --prefix openssl)/include\"; LDFLAGS=\"-L$(brew --prefix)/lib -L$(brew --prefix openssl)/lib\"; export CPPFLAGS LDFLAGS;",
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
],
|
|
"_xfail_comment": "Older peers handle APFS birthtime differently. Current rsync passes this test.",
|
|
"xfail": [
|
|
"crtimes"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Run scratch data on an HFS+ image. The setup verifies the mount and enables ownership so permission tests remain meaningful.",
|
|
"name": "mac2-hfs",
|
|
"ssh_host": "runner@mac2",
|
|
"workflow": "macos-build.yml",
|
|
"privilege": "sudo",
|
|
"env_prefix": "export PATH=/opt/homebrew/bin:/usr/local/bin:$PATH; if ! mount | grep -q 'on /Volumes/RsyncHFS (hfs'; then [ -f ~/hfsplus.dmg ] || hdiutil create -size 3g -fs 'HFS+' -volname RsyncHFS -quiet ~/hfsplus.dmg; hdiutil attach -quiet ~/hfsplus.dmg; fi; mount | grep -q 'on /Volumes/RsyncHFS (hfs' || { echo 'FATAL: /Volumes/RsyncHFS is not a mounted HFS+ volume' >&2; exit 9; }; sudo -n diskutil enableOwnership /Volumes/RsyncHFS >/dev/null || { echo 'FATAL: could not enable ownership on /Volumes/RsyncHFS' >&2; exit 9; }; mount | grep 'on /Volumes/RsyncHFS (hfs' | grep -q noowners && { echo 'FATAL: /Volumes/RsyncHFS still mounted noowners' >&2; exit 9; } || true",
|
|
"configure_pre": "CPPFLAGS=\"-I$(brew --prefix)/include -I$(brew --prefix openssl)/include\"; LDFLAGS=\"-L$(brew --prefix)/lib -L$(brew --prefix openssl)/lib\"; export CPPFLAGS LDFLAGS;",
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
],
|
|
"_xfail_comment": "Same APFS birthtime caveat as mac2.",
|
|
"xfail": [
|
|
"crtimes"
|
|
],
|
|
"scratchbase": "/Volumes/RsyncHFS"
|
|
},
|
|
{
|
|
"_comment": "macOS 10.13 on x86-64 with Apple Clang 10. This target covers MD5 assembly but cannot compile the SIMD multiversioning probe.",
|
|
"name": "mac-x86",
|
|
"ssh_host": "tridge@mac",
|
|
"workflow": "macos-build.yml",
|
|
"privilege": "sudo",
|
|
"configure_flags": [
|
|
"--with-rrsync",
|
|
"--enable-md5-asm",
|
|
"--disable-md2man"
|
|
],
|
|
"_xfail_comment": "Same APFS birthtime caveat as mac2.",
|
|
"xfail": [
|
|
"crtimes"
|
|
],
|
|
"env_prefix": "export PATH=/opt/local/bin:/opt/local/sbin:$PATH",
|
|
"configure_pre": "CPPFLAGS=\"-I/opt/local/include\"; LDFLAGS=\"-L/opt/local/lib\"; export CPPFLAGS LDFLAGS;",
|
|
"unsupported_extra": [
|
|
"symlink_mknod"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "The same x86-64 Mac built with MacPorts Clang 19, rolling SIMD, rolling assembly and MD5 assembly. This covers the Mach-O combination from issues 160 and 178.",
|
|
"name": "mac-x86-asm",
|
|
"ssh_host": "tridge@mac",
|
|
"workflow": "macos-build.yml",
|
|
"privilege": "sudo",
|
|
"configure_flags": [
|
|
"--with-rrsync",
|
|
"--enable-roll-simd",
|
|
"--enable-roll-asm",
|
|
"--enable-md5-asm",
|
|
"--disable-md2man"
|
|
],
|
|
"_xfail_comment": "Same APFS birthtime caveat as mac2.",
|
|
"xfail": [
|
|
"crtimes"
|
|
],
|
|
"env_prefix": "export PATH=/opt/local/bin:/opt/local/sbin:$PATH",
|
|
"configure_pre": "CC=clang-mp-19; CXX=clang++-mp-19; CPPFLAGS=\"-I/opt/local/include\"; LDFLAGS=\"-L/opt/local/lib\"; export CC CXX CPPFLAGS LDFLAGS;",
|
|
"unsupported_extra": [
|
|
"symlink_mknod"
|
|
]
|
|
},
|
|
{
|
|
"_comment": "Cygwin runs unprivileged with rsync.exe and Python 3.9 to match the workflow capability set. Keep Python 3.9 current enough to expose os.getxattr.",
|
|
"name": "cygwin",
|
|
"ssh_host": "win11",
|
|
"workflow": "cygwin-build.yml",
|
|
"rsync_bin": "rsync.exe",
|
|
"python": "python3.9",
|
|
"privilege": "user",
|
|
"configure_flags": [
|
|
"--with-rrsync"
|
|
]
|
|
}
|
|
]
|
|
}
|