diff --git a/test/TEST-56-EXIT-TYPE/test.sh b/test/TEST-56-EXIT-TYPE/test.sh index 0f84dca1ba6..37475e817e1 100755 --- a/test/TEST-56-EXIT-TYPE/test.sh +++ b/test/TEST-56-EXIT-TYPE/test.sh @@ -6,4 +6,9 @@ TEST_DESCRIPTION="test ExitType=cgroup" # shellcheck source=test/test-functions . "${TEST_BASE_DIR:?}/test-functions" +if [[ "$(get_cgroup_hierarchy)" != unified ]]; then + echo "This test requires unified cgroup hierarchy, skipping..." + exit 0 +fi + do_test "$@" diff --git a/test/test-functions b/test/test-functions index 3ae8caed3fb..d79c52c5911 100644 --- a/test/test-functions +++ b/test/test-functions @@ -2010,6 +2010,24 @@ import_initdir() { export initdir } +get_cgroup_hierarchy() { + case "$(stat -c '%T' -f /sys/fs/cgroup)" in + cgroup2fs) + echo "unified" + ;; + tmpfs) + if [[ -d /sys/fs/cgroup/unified && "$(stat -c '%T' -f /sys/fs/cgroup/unified)" == cgroup2fs ]]; then + echo "hybrid" + else + echo "legacy" + fi + ;; + *) + dfatal "Failed to determine host's cgroup hierarchy" + exit 1 + esac +} + ## @brief Converts numeric logging level to the first letter of level name. # # @param lvl Numeric logging level in range from 1 to 6.