#!/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" $qemu \ -kernel $kernel \ -initrd $initrd \ -serial file:$result_file \ -cpu qemu64,+rdrand \ --append kernel.early-console=ttyS0 -s > /dev/null & qemu_id=$! sleep 1.2 $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 lldb \ -o "file kernel/mango_kernel.debug" \ -o "gdb-remote localhost:1234" fi kill -INT $qemu_id log "---------------" log "Total tests: $count" log "Pass: $pass" log "Fail: $fail" log "---------------" done