#!/bin/bash

set -e

WORKDIR=$(mktemp -d)
cd $WORKDIR

mkdir -p a/foo/bar/bar
mkdir -p a/foo/bar/baz
mkdir -p b/foo/bar/bar
mkdir -p b/foo/bar/baz

# A file that is modified
echo qux > a/foo/bar/qux
echo quz > b/foo/bar/qux

# A binary file that is modified
cp $(which ls) a/foo/bin
cp $(which cat) b/foo/bin

# A file that is removed
echo hoge > a/foo/bar/bar/hoge

# A file that is created
echo fuga > b/foo/bar/baz/fuga

# Also add a zip file with the same contents
(cd a/foo; zip -r bar.zip bar)
(cd b/foo; zip -r bar.zip bar)

if TERM=linux diffoscope --no-progress --text diff.txt a b; then
	echo "diffoscope didn't find differences?"
	exit 1
fi

cat > expected.txt <<EOF
TEST-UNEXPECTED-FAIL | foo/bar.zip differs. See the diff.html or diff.txt artifact
TEST-UNEXPECTED-FAIL | foo/bar/bar differs. See the diff.html or diff.txt artifact
TEST-UNEXPECTED-FAIL | foo/bar/baz differs. See the diff.html or diff.txt artifact
TEST-UNEXPECTED-FAIL | foo/bar/qux differs. See the diff.html or diff.txt artifact
TEST-UNEXPECTED-FAIL | foo/bin differs. See the diff.html or diff.txt artifact
EOF

$(dirname $0)/report_error diff | diff -u - expected.txt || exit 1

cd $OLDPWD
rm -rf $WORKDIR
