Skip to content

Commit

Permalink
Run passing tests from pjdfstest (s3fs-fuse#1882)
Browse files Browse the repository at this point in the history
This downloads a tarball by hash instead of using a submodule.
References s3fs-fuse#1589.
  • Loading branch information
gaul authored Jan 19, 2025
1 parent 84dcf34 commit dd4f139
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 5 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/linux-ci-helper.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand All @@ -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

Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
14 changes: 14 additions & 0 deletions test/integration-test-common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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}"
Expand Down Expand Up @@ -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 {
Expand Down
41 changes: 41 additions & 0 deletions test/integration-test-main.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit dd4f139

Please sign in to comment.