mirror of
https://github.com/systemd/systemd.git
synced 2025-01-10 05:18:17 +03:00
test: introduce TEST-83-BTRFS
The Ubuntu CIs are deny-listed because the shipped btrfs-progs is too old, i.e. doesn't support the recently-added 'filesystem mkswapfile' command.
This commit is contained in:
parent
efb6a76a2a
commit
2b344ea808
@ -221,6 +221,10 @@ executables += [
|
||||
'sources' : files('test-btrfs.c'),
|
||||
'type' : 'manual',
|
||||
},
|
||||
test_template + {
|
||||
'sources' : files('test-btrfs-physical-offset.c'),
|
||||
'type' : 'manual',
|
||||
},
|
||||
test_template + {
|
||||
'sources' : files('test-cap-list.c') +
|
||||
generated_gperf_headers,
|
||||
|
33
src/test/test-btrfs-physical-offset.c
Normal file
33
src/test/test-btrfs-physical-offset.c
Normal file
@ -0,0 +1,33 @@
|
||||
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
||||
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "btrfs-util.h"
|
||||
#include "fd-util.h"
|
||||
#include "format-util.h"
|
||||
#include "log.h"
|
||||
#include "memory-util.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
_cleanup_close_ int fd = -EBADF;
|
||||
uint64_t offset;
|
||||
int r;
|
||||
|
||||
assert(argc == 2);
|
||||
assert(!isempty(argv[1]));
|
||||
|
||||
fd = open(argv[1], O_RDONLY|O_CLOEXEC|O_NOCTTY);
|
||||
if (fd < 0) {
|
||||
log_error_errno(fd, "Failed to open '%s': %m", argv[1]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
r = btrfs_get_file_physical_offset_fd(fd, &offset);
|
||||
if (r < 0) {
|
||||
log_error_errno(r, "Failed to get physical offset of '%s': %m", argv[1]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
printf("%" PRIu64 "\n", offset / page_size());
|
||||
return EXIT_SUCCESS;
|
||||
}
|
1
test/TEST-83-BTRFS/Makefile
Symbolic link
1
test/TEST-83-BTRFS/Makefile
Symbolic link
@ -0,0 +1 @@
|
||||
../TEST-01-BASIC/Makefile
|
0
test/TEST-83-BTRFS/deny-list-ubuntu-ci
Normal file
0
test/TEST-83-BTRFS/deny-list-ubuntu-ci
Normal file
25
test/TEST-83-BTRFS/test.sh
Executable file
25
test/TEST-83-BTRFS/test.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -e
|
||||
|
||||
TEST_DESCRIPTION="test btrfs-util"
|
||||
|
||||
TEST_NO_NSPAWN=1
|
||||
FSTYPE=btrfs
|
||||
IMAGE_NAME="btrfs"
|
||||
TEST_FORCE_NEWIMAGE=1
|
||||
|
||||
# shellcheck source=test/test-functions
|
||||
. "${TEST_BASE_DIR:?}/test-functions"
|
||||
|
||||
if ! command -v btrfs >/dev/null || ! command -v mkfs.btrfs >/dev/null; then
|
||||
echo "TEST: $TEST_DESCRIPTION [SKIPPED]: btrfs not supported by host" >&2
|
||||
exit 0
|
||||
fi
|
||||
|
||||
test_append_files() {
|
||||
install_btrfs
|
||||
image_install sync
|
||||
}
|
||||
|
||||
do_test "$@"
|
8
test/units/testsuite-83.service
Normal file
8
test/units/testsuite-83.service
Normal file
@ -0,0 +1,8 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
[Unit]
|
||||
Description=TEST-83-BTRFS
|
||||
|
||||
[Service]
|
||||
ExecStartPre=rm -f /failed /testok
|
||||
ExecStart=/usr/lib/systemd/tests/testdata/units/%N.sh
|
||||
Type=oneshot
|
25
test/units/testsuite-83.sh
Executable file
25
test/units/testsuite-83.sh
Executable file
@ -0,0 +1,25 @@
|
||||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
TEST_BTRFS_OFFSET=/usr/lib/systemd/tests/unit-tests/manual/test-btrfs-physical-offset
|
||||
|
||||
SWAPFILE=/var/tmp/swapfile
|
||||
|
||||
btrfs filesystem mkswapfile -s 10m "$SWAPFILE"
|
||||
sync -f "$SWAPFILE"
|
||||
|
||||
offset_btrfs_progs="$(btrfs inspect-internal map-swapfile -r "$SWAPFILE")"
|
||||
echo "btrfs-progs: $offset_btrfs_progs"
|
||||
|
||||
offset_btrfs_util="$("$TEST_BTRFS_OFFSET" "$SWAPFILE")"
|
||||
echo "btrfs-util: $offset_btrfs_util"
|
||||
|
||||
(( offset_btrfs_progs == offset_btrfs_util ))
|
||||
|
||||
rm -f "$SWAPFILE"
|
||||
|
||||
/usr/lib/systemd/tests/unit-tests/manual/test-btrfs
|
||||
|
||||
touch /testok
|
Loading…
Reference in New Issue
Block a user