#!/bin/bash

. ../init.sh || exit 1

set -e

mktmpdir

test() {
	local num=$1 exp=$2 ret=0
	shift 2
	eval "$@" > list || ret=$?
	if ! diff -u ${as}/list${num}.good list ; then
		tfail "output does not match"
	fi
	if [[ ${exp} -ne ${ret} ]] ; then
		tfail "exit code (${ret}) does not match expected (${exp})"
	fi
	tend $? "$*"
}

# We output dates, so make sure it matches our logs.
export LC_TIME="C"

# simple sync check
test 01 0 "qlop -s -f ${as}/sync.log"

# check all merged pkgs
test 02 0 "qlop -mv -f ${as}/sync.log"

# check all unmerged pkgs
test 03 0 "qlop -uv -f ${as}/sync.log"

# verify atom parsing works (and not partial strings)
test 04 0 "qlop -mv gcc -f ${as}/sync.log"

# verify atom version parsing works
test 05 0 "qlop -mv '<gcc-5' -f ${as}/sync.log"

# check date time parser, note on date parsing,
# https://bugs.gentoo.org/638032#c6 so the format %d%Y%m isn't compliant
test 06 0 "qlop -mv -f ${as}/sync.log -d 2005-01-01"
test 07 0 "qlop -mv -f ${as}/sync.log -d '%d %Y %m|01 2005 01'"
test 08 0 "qlop -mv -f ${as}/sync.log -d 1104898893"

# deal with aborted merges
test 09 0 "qlop -Hacv automake -f ${as}/aborts.log"

# https://bugs.gentoo.org/697068: a parallel emerge finishing should
# wipe the outstanding emerges from other emerges
test 10 0 "qlop -Mrr -f ${as}/parallel.log" -d 1568976528

cleantmpdir

end
