#!/bin/sh
set -exu

# expected to fail on Ubuntu
exit 0

# we have to export PYTHONHASHSEED because otherwise networkx will create
# content with random output order
#   https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=749710
#   https://github.com/networkx/networkx/issues/1181
export PYTHONHASHSEED=0
# to make the sort order in the tests locale independent
export LC_COLLATE=C.UTF8
export LC_ALL=C.UTF8
# because dose2html outputs utf8 on standard output
export PYTHONIOENCODING=utf-8

rm -rf $ADTTMP/out $ADTTMP/tmp
mkdir -p $ADTTMP/out
cp tests/cross-ma.diff $ADTTMP/out/ma.diff
botch-cross --debug --verbose --output=$ADTTMP/out --tmp=$ADTTMP/tmp --drop-b-d-indep --optgraph --jobs=2 amd64 armhf tests/sid-amd64-packages-20140101T000000Z tests/sid-sources-20140101T000000Z

# the "while : ; do" loop around graph-difference is a temporary fix to work
# around random segmentation faults. See http://bugs.python.org/issue24605
for f in tests/cross/tmp/* $ADTTMP/tmp/*; do basename "$f"; done | sort | uniq | while read f; do
	echo checking $f
	case "$f" in
		*.xml) while : ; do
			exit=0
			botch-graph-difference "tests/cross/tmp/$f" "$ADTTMP/tmp/$f" || exit=$?
			case "$exit" in
				139) continue;;
				0)   break;;
				*)   exit $exit;;
			esac
		done;;
		*) diff -u "tests/cross/tmp/$f" "$ADTTMP/tmp/$f" || exit 1;;
	esac
done
for f in tests/cross/out/* $ADTTMP/out/*; do basename "$f"; done | sort | uniq | while read f; do
	echo checking $f
	case "$f" in
		*.xml) while : ; do
			exit=0
			botch-graph-difference "tests/cross/out/$f" "$ADTTMP/out/$f" || exit=$?
			case "$exit" in
				139) continue;;
				0)   break;;
				*)   exit $exit;;
			esac
			done;;
		*) diff -u "tests/cross/out/$f" "$ADTTMP/out/$f" || exit 1;;
	esac
done
