#!/bin/bash
# vim: ft=bash


log_dir="test-results/successful-boot"
rm -rf $log_dir
mkdir -p $log_dir

logfile="$log_dir/main.log"

log() {
	if [ -n "$logfile" ]; then
		printf '%s\n' "$@" >> "$logfile"
	fi

	printf '%s\n' "$@"
}

log "Running boot test. Press Ctrl+\\ to stop."

declare -i result
declare -i count
declare -i pass
declare -i fail
count=0
pass=0
fail=0
python=$1
validation_script=$2
qemu=$3
kernel=$4
initrd=$5

while true; do
	log "Test $count"
	result_file="$log_dir/$count.log"
	ninja run-cdrom-bochs > $result_file &
	qemu_id=$!

	sleep 5

	$python $validation_script successful-boot $result_file $logfile
	result=$?

	count=$count+1

	if [ $result -eq 0 ]; then
		pass=$pass+1
	else
		mv $result_file "$result_file.FAIL"
		fail=$fail+1
	fi

	killall -9 bochs

	log "---------------"
	log "Total tests: $count"
	log "Pass: $pass"
	log "Fail: $fail"
	log "---------------"
done
