borgbackup/borg

View on GitHub
scripts/make-testdata/test_transfer_upgrade.sh

Summary

Maintainability
Test Coverage
# this scripts uses borg 1.2 to generate test data for "borg transfer --upgrader=From12To20"
BORG=./borg-1.2.2
# on macOS, gnu tar is available as gtar
TAR=gtar
SRC=/tmp/borgtest
ARCHIVE=`pwd`/src/borg/testsuite/archiver/repo12.tar.gz

export BORG_REPO=/tmp/repo12
META=$BORG_REPO/test_meta
export BORG_PASSPHRASE="waytooeasyonlyfortests"
export BORG_DELETE_I_KNOW_WHAT_I_AM_DOING=YES

$BORG init -e repokey 2> /dev/null
mkdir $META

# archive1
mkdir $SRC

pushd $SRC >/dev/null

mkdir directory

echo "content" > directory/no_hardlink

echo "hardlink content" > hardlink1
ln hardlink1 hardlink2

echo "symlinked content" > target
ln -s target symlink

ln -s doesnotexist broken_symlink

mkfifo fifo

touch without_xattrs
touch with_xattrs
xattr -w key1 value with_xattrs
xattr -w key2 ""    with_xattrs

touch without_flags
touch with_flags
chflags nodump with_flags

popd >/dev/null

$BORG create ::archive1 $SRC
$BORG list ::archive1 --json-lines > $META/archive1_list.json
rm -rf $SRC

# archive2
mkdir $SRC

pushd $SRC >/dev/null

sudo mkdir root_stuff
sudo mknod root_stuff/bdev_12_34 b 12 34
sudo mknod root_stuff/cdev_34_56 c 34 56
sudo touch root_stuff/strange_uid_gid  # no user name, no group name for this uid/gid!
sudo chown 54321:54321 root_stuff/strange_uid_gid

popd >/dev/null

$BORG create ::archive2 $SRC
$BORG list ::archive2 --json-lines > $META/archive2_list.json
sudo rm -rf $SRC/root_stuff
rm -rf $SRC


$BORG --version > $META/borg_version.txt
$BORG list :: --json > $META/repo_list.json

pushd $BORG_REPO >/dev/null
$TAR czf $ARCHIVE .
popd >/dev/null

$BORG delete :: 2> /dev/null