mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
491b9a8575
[ 15.896174] TEST-25-IMPORT.sh[473]: + mkdir /var/tmp/scratch [ 15.902524] TEST-25-IMPORT.sh[519]: mkdir: cannot create directory ‘/var/tmp/scratch’: File exists https://github.com/systemd/systemd/actions/runs/12248114409/job/34167155679?pr=35520
144 lines
4.1 KiB
Bash
Executable File
144 lines
4.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# SPDX-License-Identifier: LGPL-2.1-or-later
|
|
set -eux
|
|
set -o pipefail
|
|
|
|
export SYSTEMD_PAGER=cat
|
|
|
|
dd if=/dev/urandom of=/var/tmp/testimage.raw bs=$((1024*1024+7)) count=5
|
|
|
|
# Test import
|
|
machinectl import-raw /var/tmp/testimage.raw
|
|
machinectl image-status testimage
|
|
test -f /var/lib/machines/testimage.raw
|
|
cmp /var/tmp/testimage.raw /var/lib/machines/testimage.raw
|
|
|
|
# Test export
|
|
machinectl export-raw testimage /var/tmp/testimage2.raw
|
|
cmp /var/tmp/testimage.raw /var/tmp/testimage2.raw
|
|
rm /var/tmp/testimage2.raw
|
|
|
|
# Test compressed export (gzip)
|
|
machinectl export-raw testimage /var/tmp/testimage2.raw.gz
|
|
gunzip /var/tmp/testimage2.raw.gz
|
|
cmp /var/tmp/testimage.raw /var/tmp/testimage2.raw
|
|
rm /var/tmp/testimage2.raw
|
|
|
|
# Test clone
|
|
machinectl clone testimage testimage3
|
|
test -f /var/lib/machines/testimage3.raw
|
|
machinectl image-status testimage3
|
|
test -f /var/lib/machines/testimage.raw
|
|
machinectl image-status testimage
|
|
cmp /var/tmp/testimage.raw /var/lib/machines/testimage.raw
|
|
cmp /var/tmp/testimage.raw /var/lib/machines/testimage3.raw
|
|
|
|
# Test removal
|
|
machinectl remove testimage
|
|
test ! -f /var/lib/machines/testimage.raw
|
|
(! machinectl image-status testimage)
|
|
|
|
# Test export of clone
|
|
machinectl export-raw testimage3 /var/tmp/testimage3.raw
|
|
cmp /var/tmp/testimage.raw /var/tmp/testimage3.raw
|
|
rm /var/tmp/testimage3.raw
|
|
|
|
# Test rename
|
|
machinectl rename testimage3 testimage4
|
|
test -f /var/lib/machines/testimage4.raw
|
|
machinectl image-status testimage4
|
|
test ! -f /var/lib/machines/testimage3.raw
|
|
(! machinectl image-status testimage3)
|
|
cmp /var/tmp/testimage.raw /var/lib/machines/testimage4.raw
|
|
|
|
# Test export of rename
|
|
machinectl export-raw testimage4 /var/tmp/testimage4.raw
|
|
cmp /var/tmp/testimage.raw /var/tmp/testimage4.raw
|
|
rm /var/tmp/testimage4.raw
|
|
|
|
# Test removal
|
|
machinectl remove testimage4
|
|
test ! -f /var/lib/machines/testimage4.raw
|
|
(! machinectl image-status testimage4)
|
|
|
|
# → And now, let's test directory trees ← #
|
|
|
|
# Set up a directory we can import
|
|
mkdir -p /var/tmp/scratch
|
|
mv /var/tmp/testimage.raw /var/tmp/scratch/
|
|
touch /var/tmp/scratch/anotherfile
|
|
mkdir -p /var/tmp/scratch/adirectory
|
|
echo "piep" >/var/tmp/scratch/adirectory/athirdfile
|
|
|
|
# Test import-fs
|
|
machinectl import-fs /var/tmp/scratch/
|
|
test -d /var/lib/machines/scratch
|
|
machinectl image-status scratch
|
|
|
|
# Test export-tar
|
|
machinectl export-tar scratch /var/tmp/scratch.tar.gz
|
|
test -f /var/tmp/scratch.tar.gz
|
|
mkdir -p /var/tmp/extract
|
|
(cd /var/tmp/extract ; tar xzf /var/tmp/scratch.tar.gz)
|
|
diff -r /var/tmp/scratch/ /var/tmp/extract/
|
|
rm -rf /var/tmp/extract
|
|
|
|
# Test import-tar
|
|
machinectl import-tar /var/tmp/scratch.tar.gz scratch2
|
|
test -d /var/lib/machines/scratch2
|
|
machinectl image-status scratch2
|
|
diff -r /var/tmp/scratch/ /var/lib/machines/scratch2
|
|
|
|
# Test removal
|
|
machinectl remove scratch
|
|
test ! -f /var/lib/machines/scratch
|
|
(! machinectl image-status scratch)
|
|
|
|
# Test clone
|
|
machinectl clone scratch2 scratch3
|
|
test -d /var/lib/machines/scratch2
|
|
machinectl image-status scratch2
|
|
test -d /var/lib/machines/scratch3
|
|
machinectl image-status scratch3
|
|
diff -r /var/tmp/scratch/ /var/lib/machines/scratch3
|
|
|
|
# Test removal
|
|
machinectl remove scratch2
|
|
test ! -f /var/lib/machines/scratch2
|
|
(! machinectl image-status scratch2)
|
|
|
|
# Test rename
|
|
machinectl rename scratch3 scratch4
|
|
test -d /var/lib/machines/scratch4
|
|
machinectl image-status scratch4
|
|
test ! -f /var/lib/machines/scratch3
|
|
(! machinectl image-status scratch3)
|
|
diff -r /var/tmp/scratch/ /var/lib/machines/scratch4
|
|
|
|
# Test removal
|
|
machinectl remove scratch4
|
|
test ! -f /var/lib/machines/scratch4
|
|
(! machinectl image-status scratch4)
|
|
|
|
# Test import-tar hyphen/stdin pipe behavior
|
|
# shellcheck disable=SC2002
|
|
cat /var/tmp/scratch.tar.gz | machinectl import-tar - scratch5
|
|
test -d /var/lib/machines/scratch5
|
|
machinectl image-status scratch5
|
|
diff -r /var/tmp/scratch/ /var/lib/machines/scratch5
|
|
|
|
# Test export-tar hyphen/stdout pipe behavior
|
|
mkdir -p /var/tmp/extract
|
|
machinectl export-tar scratch5 - | tar xvf - -C /var/tmp/extract/
|
|
diff -r /var/tmp/scratch/ /var/tmp/extract/
|
|
rm -rf /var/tmp/extract
|
|
|
|
rm -rf /var/tmp/scratch
|
|
|
|
# Test removal
|
|
machinectl remove scratch5
|
|
test ! -f /var/lib/machines/scratch5
|
|
(! machinectl image-status scratch5)
|
|
|
|
touch /testok
|