From: Andrew Tridgell Date: Fri, 1 May 2026 00:56:17 +0000 (+1000) Subject: testsuite: cover 'refuse options = compress' for the daemon X-Git-Tag: v3.4~12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e4c681fefd1be3a361a2f718f9a530fc52f0b612;p=thirdparty%2Frsync.git testsuite: cover 'refuse options = compress' for the daemon Add a daemon-refuse-compress test that builds a module configured with 'refuse options = compress' and asserts that: 1. an attempted -z transfer to that module fails with an error mentioning --compress, and 2. the same transfer without -z still succeeds. This pins down the documented way to disable all compression on a daemon, which previously had no automated coverage. Co-Authored-By: Claude Opus 4.7 (1M context) --- diff --git a/testsuite/daemon-refuse-compress.test b/testsuite/daemon-refuse-compress.test new file mode 100644 index 00000000..a24e50d1 --- /dev/null +++ b/testsuite/daemon-refuse-compress.test @@ -0,0 +1,51 @@ +#!/bin/sh + +# Copyright (C) 2026 by Andrew Tridgell + +# This program is distributable under the terms of the GNU GPL (see +# COPYING). + +# Test that a daemon module configured with "refuse options = compress" +# rejects clients that ask for compression and still serves the same +# transfer when the client does not. + +. "$suitedir/rsync.fns" + +build_rsyncd_conf + +# Append a module that refuses --compress (-z). +cat >>"$conf" </dev/null 2>"$errlog"; then + cat "$errlog" >&2 + test_fail "compressed transfer was not refused" +fi + +grep -- '--compress' "$errlog" >/dev/null || { + cat "$errlog" >&2 + test_fail "expected refuse error mentioning --compress" +} + +# The same transfer without -z must succeed. +rm -rf "$todir" +mkdir "$todir" +checkit "$RSYNC -av localhost::no-compress/ '$todir/'" "$chkdir" "$todir" + +# The script would have aborted on error, so getting here means we've won. +exit 0