Run passing tests from pjdfstest (#1882)

This downloads a tarball by hash instead of using a submodule.
References #1589.
This commit is contained in:
Andrew Gaul 2025-01-19 10:26:40 +09:00 committed by GitHub
parent 84dcf34e2c
commit dd4f1395ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 63 additions and 5 deletions

View File

@ -136,28 +136,28 @@ elif [ "${CONTAINER_FULLNAME}" = "rockylinux:9" ]; then
#
PACKAGE_INSTALL_ADDITIONAL_OPTIONS="--allowerasing"
INSTALL_PACKAGES="clang-tools-extra curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-17-openjdk-headless jq libxml2-devel mailcap git automake make openssl openssl-devel attr diffutils curl python3 procps unzip xz https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm"
INSTALL_PACKAGES="clang-tools-extra curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-17-openjdk-headless jq libxml2-devel mailcap git automake make openssl openssl-devel perl-Test-Harness attr diffutils curl python3 procps unzip xz https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm"
elif [ "${CONTAINER_FULLNAME}" = "rockylinux:8" ]; then
PACKAGE_MANAGER_BIN="dnf"
PACKAGE_UPDATE_OPTIONS="update -y -qq"
PACKAGE_INSTALL_OPTIONS="install -y"
INSTALL_PACKAGES="clang-tools-extra curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-17-openjdk-headless jq libxml2-devel mailcap git automake make openssl openssl-devel attr diffutils curl python3 unzip"
INSTALL_PACKAGES="clang-tools-extra curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-17-openjdk-headless jq libxml2-devel mailcap git automake make openssl openssl-devel perl-Test-Harness attr diffutils curl python3 unzip"
elif [ "${CONTAINER_FULLNAME}" = "fedora:41" ]; then
PACKAGE_MANAGER_BIN="dnf"
PACKAGE_UPDATE_OPTIONS="update -y -qq"
PACKAGE_INSTALL_OPTIONS="install -y"
INSTALL_PACKAGES="clang clang-tools-extra cppcheck curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-latest-openjdk-headless jq libxml2-devel mailcap git automake make openssl openssl-devel curl attr diffutils procps python3-pip unzip libcxx libcxx-devel ShellCheck"
INSTALL_PACKAGES="clang clang-tools-extra cppcheck curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-latest-openjdk-headless jq libxml2-devel mailcap git automake make openssl openssl-devel perl-Test-Harness curl attr diffutils procps python3-pip unzip libcxx libcxx-devel ShellCheck"
elif [ "${CONTAINER_FULLNAME}" = "fedora:40" ]; then
PACKAGE_MANAGER_BIN="dnf"
PACKAGE_UPDATE_OPTIONS="update -y -qq"
PACKAGE_INSTALL_OPTIONS="install -y"
INSTALL_PACKAGES="clang clang-tools-extra cppcheck curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-latest-openjdk-headless jq libxml2-devel mailcap git automake make openssl openssl-devel curl attr diffutils procps python3-pip unzip libcxx libcxx-devel ShellCheck"
INSTALL_PACKAGES="clang clang-tools-extra cppcheck curl-devel fuse fuse-devel gcc libstdc++-devel gcc-c++ glibc-langpack-en java-latest-openjdk-headless jq libxml2-devel mailcap git automake make openssl perl-Test-Harness openssl-devel curl attr diffutils procps python3-pip unzip libcxx libcxx-devel ShellCheck"
elif [ "${CONTAINER_FULLNAME}" = "opensuse/leap:15" ]; then
PACKAGE_MANAGER_BIN="zypper"
@ -171,7 +171,7 @@ elif [ "${CONTAINER_FULLNAME}" = "alpine:3.21" ]; then
PACKAGE_UPDATE_OPTIONS="update --no-progress"
PACKAGE_INSTALL_OPTIONS="add --no-progress --no-cache"
INSTALL_PACKAGES="bash clang-extra-tools curl g++ make automake autoconf libtool git curl-dev fuse-dev jq libxml2-dev openssl coreutils procps attr sed mailcap openjdk17 aws-cli"
INSTALL_PACKAGES="bash clang-extra-tools curl g++ make automake autoconf libtool git curl-dev fuse-dev jq libxml2-dev openssl coreutils procps attr sed mailcap openjdk17 perl-test-harness-utils aws-cli"
AWSCLI_DIRECT_INSTALL=0

3
.gitignore vendored
View File

@ -82,8 +82,11 @@ src/s3fs
src/test_curl_util
src/test_page_list
src/test_string_util
test/chaos-http-proxy-*
test/junk_data
test/pjdfstest
test/pjd-pjdfstest-*
test/s3proxy-*
test/write_multiblock
test/mknod_test

View File

@ -94,6 +94,8 @@ S3PROXY_BINARY="${S3PROXY_BINARY-"s3proxy-${S3PROXY_VERSION}"}"
CHAOS_HTTP_PROXY_VERSION="1.1.0"
CHAOS_HTTP_PROXY_BINARY="chaos-http-proxy-${CHAOS_HTTP_PROXY_VERSION}"
PJDFSTEST_HASH="c711b5f6b666579846afba399a998f74f60c488b"
if [ ! -f "$S3FS_CREDENTIALS_FILE" ]
then
echo "Missing credentials file: ${S3FS_CREDENTIALS_FILE}"
@ -194,6 +196,18 @@ function start_s3proxy {
# wait for Chaos HTTP Proxy to start
wait_for_port 1080
fi
if [ ! -d "pjd-pjdfstest-${PJDFSTEST_HASH:0:7}" ]; then
curl "https://api.github.com/repos/pjd/pjdfstest/tarball/${PJDFSTEST_HASH}" \
--fail --location --silent --output /tmp/pjdfstest.tar.gz
tar zxf /tmp/pjdfstest.tar.gz
rm -f /tmp/pjdfstest.tar.gz
rm -f pjdfstest
ln -s "pjd-pjdfstest-${PJDFSTEST_HASH:0:7}" pjdfstest
(cd pjdfstest && autoreconf -ifs && ./configure && make)
fi
}
function stop_s3proxy {

View File

@ -2721,6 +2721,43 @@ function test_statvfs() {
fi
}
function test_pjdfstest() {
# TODO: explain exclusions
# fails with -o use_cache: ../../pjdfstest/tests/rmdir/01.t
prove -rv \
../../pjdfstest/tests/chflags/*.t \
../../pjdfstest/tests/chmod/0[4689].t \
../../pjdfstest/tests/chmod/10.t \
../../pjdfstest/tests/chown/0[4689].t \
../../pjdfstest/tests/chown/10.t \
../../pjdfstest/tests/ftruncate/0[147-9].t \
../../pjdfstest/tests/ftruncate/1[0134].t \
../../pjdfstest/tests/granular/*.t \
../../pjdfstest/tests/link/*.t \
../../pjdfstest/tests/mkdir/0[347-9].t \
../../pjdfstest/tests/mkdir/1[12]*.t \
../../pjdfstest/tests/mkfifo/0[3478].t \
../../pjdfstest/tests/mkfifo/1*.t \
../../pjdfstest/tests/mknod/0[479].t \
../../pjdfstest/tests/mknod/10.t \
../../pjdfstest/tests/open/0[49].t \
../../pjdfstest/tests/open/1*.t \
../../pjdfstest/tests/open/2[0-134].t \
../../pjdfstest/tests/posix_fallocate/*.t \
../../pjdfstest/tests/rename/0[2-36-8].t \
../../pjdfstest/tests/rename/1[15-9].t \
../../pjdfstest/tests/rename/22.t \
../../pjdfstest/tests/rmdir/0[3-59].t \
../../pjdfstest/tests/rmdir/1[02-5].t \
../../pjdfstest/tests/symlink/0[13479].t \
../../pjdfstest/tests/symlink/1*.t \
../../pjdfstest/tests/truncate/0[147-9].t \
../../pjdfstest/tests/truncate/1[0134].t \
../../pjdfstest/tests/unlink/0[47-8].t \
../../pjdfstest/tests/unlink/1[02-4].t \
../../pjdfstest/tests/utimensat/0[1-58-9].t
}
function add_all_tests {
if s3fs_args | grep -q use_cache; then
add_tests test_cache_file_stat
@ -2856,6 +2893,10 @@ function add_all_tests {
# add_tests test_chown_mountpoint
add_tests test_time_mountpoint
add_tests test_statvfs
if ! uname | grep -q Darwin; then
add_tests test_pjdfstest
fi
}
init_suite