# # Build # build "core init drivers/timer test/cpu_quota" # # Boot image # create_boot_directory install_config { } build_boot_image "core init timer test-cpu_quota" # # Execution # append qemu_args "-nographic -m 64" run_genode_until "test.*\n.*test.*\n.*test.*\n" 60 # # Conclusion # set slow_opt 0.10 set middle_opt 0.25 set fast_opt 0.65 set err 0.02 regexp {[0-9]+} [regexp -inline {slow.*[0-9]+} $output] slow_cnt regexp {[0-9]+} [regexp -inline {middle.*[0-9]+} $output] middle_cnt regexp {[0-9]+} [regexp -inline {fast.*[0-9]+} $output] fast_cnt set total_cnt [expr $fast_cnt + $middle_cnt + $slow_cnt] set slow_fac [expr $slow_cnt / double($total_cnt) ] set middle_fac [expr $middle_cnt / double($total_cnt) ] set fast_fac [expr $fast_cnt / double($total_cnt) ] set failed 0 if {[expr $slow_fac > $slow_opt + $err || $slow_fac < $slow_opt - $err]} { set is_pc [expr round($slow_fac * 10000) / 100] set opt_pc [expr round($slow_opt * 10000) / 100] puts stderr "Error: Slow counter received $is_pc% of the CPU time." puts stderr " Should receive $opt_pc%." set failed 1 } if {[expr $middle_fac > $middle_opt + $err || $middle_fac < $middle_opt - $err]} { set is_pc [expr round($middle_fac * 10000) / 100] set opt_pc [expr round($middle_opt * 10000) / 100] puts stderr "Error: Middle counter received $is_pc% of the CPU time." puts stderr " Should receive $opt_pc%." set failed 1 } if {[expr $fast_fac > $fast_opt + $err || $fast_fac < $fast_opt - $err]} { set is_pc [expr round($fast_fac * 10000) / 100] set opt_pc [expr round($fast_opt * 10000) / 100] puts stderr "Error: Fast counter received $is_pc% of the CPU time." puts stderr " Should receive $opt_pc%." set failed 1 } if {$failed} { exit -1 } else { puts "Test succeeded" }