You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.6 KiB
75 lines
1.6 KiB
#!/bin/bash |
|
# This file is part of dracut. |
|
# SPDX-License-Identifier: GPL-2.0-or-later |
|
|
|
# shellcheck disable=SC2034 |
|
TEST_DESCRIPTION="test skipcpio" |
|
|
|
test_check() { |
|
which cpio dd truncate find sort diff &> /dev/null |
|
} |
|
|
|
skipcpio_simple() { |
|
mkdir -p "$CPIO_TESTDIR/skipcpio_simple/first_archive" |
|
pushd "$CPIO_TESTDIR/skipcpio_simple/first_archive" |
|
|
|
for ((i = 0; i < 3; i++)); do |
|
echo "first archive file $i" >> ./"$i" |
|
done |
|
find . -print0 | sort -z \ |
|
| cpio -o --null -H newc --file "$CPIO_TESTDIR/skipcpio_simple.cpio" |
|
popd |
|
|
|
mkdir -p "$CPIO_TESTDIR/skipcpio_simple/second_archive" |
|
pushd "$CPIO_TESTDIR/skipcpio_simple/second_archive" |
|
|
|
for ((i = 10; i < 13; i++)); do |
|
echo "second archive file $i" >> ./"$i" |
|
done |
|
|
|
find . -print0 | sort -z \ |
|
| cpio -o --null -H newc >> "$CPIO_TESTDIR/skipcpio_simple.cpio" |
|
popd |
|
|
|
cpio -i --list < "$CPIO_TESTDIR/skipcpio_simple.cpio" \ |
|
> "$CPIO_TESTDIR/skipcpio_simple.list" |
|
cat << EOF | diff - "$CPIO_TESTDIR/skipcpio_simple.list" |
|
. |
|
0 |
|
1 |
|
2 |
|
EOF |
|
|
|
"$basedir"/src/skipcpio/skipcpio "$CPIO_TESTDIR/skipcpio_simple.cpio" \ |
|
| cpio -i --list > "$CPIO_TESTDIR/skipcpio_simple.list" |
|
cat << EOF | diff - "$CPIO_TESTDIR/skipcpio_simple.list" |
|
. |
|
10 |
|
11 |
|
12 |
|
EOF |
|
} |
|
|
|
test_run() { |
|
set -x |
|
set -e |
|
|
|
skipcpio_simple |
|
|
|
return 0 |
|
} |
|
|
|
test_setup() { |
|
CPIO_TESTDIR=$(mktemp --directory -p "$TESTDIR" cpio-test.XXXXXXXXXX) \ |
|
|| return 1 |
|
export CPIO_TESTDIR |
|
return 0 |
|
} |
|
|
|
test_cleanup() { |
|
[ -d "$CPIO_TESTDIR" ] && rm -rf "$CPIO_TESTDIR" |
|
return 0 |
|
} |
|
|
|
# shellcheck disable=SC1090 |
|
. "$testdir"/test-functions
|
|
|