#!/bin/bash

[ -f testing.sh ] && . testing.sh

# We need to test name and file padding.
# This means all possible values of strlen(name)+1 % 4,
# plus file sizes of at least 0-4.

touch a bb ccc dddd
testing "name padding" "cpio -o -H newc|cpio -it" "a\nbb\nccc\ndddd\n" "" "a\nbb\nccc\ndddd\n"
rm a bb ccc dddd

touch a
printf '1' >b
printf '22' >c
printf '333' >d
testing "file padding" "cpio -o -H newc|cpio -it" "a\nb\nc\nd\n" "" "a\nb\nc\nd\n"
rm a b c d

touch a
printf '1' >bb
printf '22' >ccc
printf '333' >dddd
# With the proper padding, header length, and file length, 
# the relevant bit should be here:
# 110*5 + 4*3 + 2 + 6*3 = 550 + 12 + 20 = 582
# files are padded to n*4, names are padded to 2 + n*4 due to the header length
testing "archive length" "cpio -o -H newc|dd ibs=2 skip=291 count=5 2>/dev/null" "TRAILER!!!" "" "a\nbb\nccc\ndddd\n"
testing "archive magic" "cpio -o -H newc|dd ibs=2 count=3 2>/dev/null" "070701" "" "a\n"
# check name length (8 bytes before the empty "crc")
testing "name length" "cpio -o -H newc|dd ibs=2 skip=47 count=4 2>/dev/null" "00000002" "" "a\n"
testing "-t" "cpio -o -H newc|cpio -it" "a\nbb\n" "" "a\nbb"
testing "-t --quiet" "cpio -o -H newc|cpio -it --quiet" "a\nbb\n" "" "a\nbb"
mkdir out
testing "-p" "cpio -p out && find out | sort" "out\nout/a\nout/bb\n" "" "a\nbb"
rm -rf out
testing "-pd" "cpio -pd out && find out | sort" "out\nout/a\nout/bb\n" "" "a\nbb"
rm a bb ccc dddd

# archive dangling symlinks and empty files even if we cannot open them
touch a; chmod a-rwx a; ln -s a/cant b
toyonly testing "archives unreadable empty files" "cpio -o -H newc|cpio -it" "b\na\n" "" "b\na\n"
chmod u+rw a; rm -f a b

mkdir a
echo "old" >a/b
echo "a/b" | cpio -o -H newc >a.cpio
rm -rf a
testing "-i doesn't create leading directories" "cpio -i <a.cpio 2>/dev/null; [ -e a ] || echo yes" "yes\n" "" ""
rm -rf a
testing "-id creates leading directories" "cpio -id <a.cpio && cat a/b" "old\n" "" ""
rm -rf a a.cpio

mkdir a
echo "old" >a/b
find a | cpio -o -H newc >a.cpio
testing "-i keeps existing files" "echo new >a/b && cpio -i <a.cpio 2>/dev/null; cat a/b" "new\n" "" ""
testing "-id keeps existing files" "echo new >a/b && cpio -id <a.cpio 2>/dev/null; cat a/b" "new\n" "" ""
testing "-iu replaces existing files; no error" "echo new >a/b && cpio -iu <a.cpio && cat a/b" "old\n" "" ""
testing "-idu replaces existing files; no error" "echo new >a/b && cpio -idu <a.cpio && cat a/b" "old\n" "" ""
testing "skip NUL" "for i in a b; do dd if=/dev/zero bs=512 count=1 2>/dev/null; cat a.cpio; done | cpio -t -H newc" \
  "a\na/b\na\na/b\n" "" ""
rm -rf a a.cpio

testing "error on empty file" "cpio -i 2>/dev/null || echo err" "err\n" "" ""

mkdir a
touch a/file
ln -s a/symlink a/symlink
mkdir a/dir
find a | cpio -o -H newc >a.cpio
if [ "$(id -u)" -eq 0 ]; then
  # We chown between user "root" and the last user in /etc/passwd,
  # and group "root" and the last group in /etc/group.
  USR="$(sed -n '$s/:.*//p' /etc/passwd)"
  GRP="$(sed -n '$s/:.*//p' /etc/group)"
  # Or if that fails, we assume we're on Android...
  : "${USR:=shell}"
  : "${GRP:=shell}"
  chown -h "${USR}:${GRP}" a/file a/symlink a/dir
fi
skipnot [ $(id -u) -eq 0 ]
testing "-t preserve ownership" "cpio -t <a.cpio >/dev/null && stat -c '%U:%G' a/file a/symlink a/dir" "${USR}:${GRP}\n${USR}:${GRP}\n${USR}:${GRP}\n" "" ""
rm -rf a a.cpio
