62 lines
898 B
Bash
Executable File
62 lines
898 B
Bash
Executable File
#!/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
|