#!/usr/bin/env bash set -eu hn=$(set -eu; hostname) rm -rf save-dir-* case "$(uname -s)" in Haiku) echo "$0: This test fails on Haiku because it has no os.major or os.minor in its python" 1>&2 exit 0 ;; esac function seder { # This isn't as necessary as it once was, but we keep it anyway in case we revert to the old behavior someday sed -e 's/ */ /g' | \ ../canonicalize-dates } function file_list { find \ $([ -e /dev/zero ] && echo /dev/zero) \ $([ -e /dev/null ] && echo /dev/null) \ $([ -e /dev/random ] && echo /dev/random) \ $([ -e /dev/urandom ] && echo /dev/urandom) \ $([ -e /dev/ram0 ] && echo /dev/ram0) \ $([ -e /dev/sda ] && echo /dev/sda) \ $([ -e /usr/bin/at ] && echo /usr/bin/at) \ -print0 } if type gtar > /dev/null 2>&1 then tar=gtar else tar=tar fi file_list | \ $tar --null --no-recursion --files-from - --create --file - | \ $tar tvf - 2>&1 | \ ../old-gtar-timestamps-to-new | \ seder | \ sort > tar.tvf for record in $(../../this-interpreter --variety minimal-a; ../../this-interpreter --variety minimal-b) do pyver=$(echo "$record" | awk -F'%' ' { print $1 }') python=$(echo "$record" | awk -F'%' ' { print $2 }') rm -rf "save-dir-$pyver" file_list | \ $python ../../backshift --save-directory save-dir-$pyver --backup --hostname $(hostname) --subset test --init-savedir backup_id=$($python ../../backshift --list-backups --save-directory save-dir-$pyver | tail -1 | cut -d ' ' -f 1) $python ../../backshift --save-directory save-dir-$pyver --backup-id $backup_id --list-backup 2>&1 | \ seder | \ sort > backshift.tvf.$pyver diff -C3 -b tar.tvf backshift.tvf.$pyver done