#
# \brief  Noux environment for building the Genode/NOVA demo scenario on Genode
# \author Christian Prochaska
# \date   2012-11-26
#

if {[is_qemu_available]} {
	puts "\nAuto test running on Qemu is not recommended.\n"
	exit 0
}
if {[have_spec pistachio]} {
	puts "Pistachio is unsupported."
	exit 0
}

assert_spec 32bit

set verbose_mode      "no"

set platform_pkgs     ""
set platform_cmds     {
                         make core &&
                         exit 234
} 

# default tool_chain timeout, overwritten by platform if required
set tool_chain_timeout  400
set noux_boot_timeout   100

if {[have_spec arm]} {
	set platform_base_dir "base-hw"
	set noux_boot_timeout   350
	set tool_chain_timeout  500

	if {[have_spec platform_panda]}   {
		set platform "hw_panda"
		set tool_chain_timeout  1000
	}
	if {[have_spec platform_arndale]} {
		set platform "hw_arndale"
	}
	if {[have_spec platform_pbxa9]}   { set platform "hw_pbxa9" }

	if {![info exists platform]} {
		puts "\n Run script is not supported on this platform. \n"
		exit 0
	}
}

if {[have_spec x86]} {
	set platform          "nova_x86_32"
	set platform_base_dir "base-nova"
}

source ${genode_dir}/ports/run/noux_tool_chain.inc

append qemu_args " -m 768 "

# wait until Noux started
run_genode_until {\[init -\> noux\].*--- noux started ---} $noux_boot_timeout
set serial_id $spawn_id

# start the measurement
set time_start [ clock seconds ]
run_genode_until {child /bin/bash exited with exit value 234} $tool_chain_timeout $serial_id

set time_end [ clock seconds ]

# cleanup created tars
foreach pkg $noux_pkgs { exec rm -f bin/$pkg.tar }
exec rm -f bin/genode.tar

# print infos about run
set git_info "unknown"
catch { set git_info [exec git --git-dir=$genode_dir/.git describe ] }

puts "Testing \" [ clock format $time_start -format "%Y-%m-%d %H:%M:%S"], commit: ($git_info)\" in : "
puts "Testing \"all\" in printf.wv:"
puts "! PERF: runtime [expr $time_end - $time_start ] seconds ok"

puts "Test succeeded"
