build { core init drivers/timer test/vmm_utils }

create_boot_directory

install_config {
<config>
	<parent-provides>
		<service name="ROM"/>
		<service name="RAM"/>
		<service name="IRQ"/>
		<service name="IO_MEM"/>
		<service name="IO_PORT"/>
		<service name="PD"/>
		<service name="RM"/>
		<service name="CPU"/>
		<service name="LOG"/>
	</parent-provides>
	<default-route>
		<any-service><parent/><any-child/></any-service>
	</default-route>
	<start name="timer">
		<resource name="RAM" quantum="1M"/>
		<provides><service name="Timer"/></provides>
	</start>
	<start name="test-vmm_utils">
		<resource name="RAM" quantum="1G"/>
	</start>
</config>
}

build_boot_image { core ld.lib.so init timer test-vmm_utils }

append qemu_args " -m 512 "
append qemu_args " -cpu phenom "
append qemu_args " -nographic "

run_genode_until {.*VMM: vcpu_s_1 _vcpu_startup called.*\n} 30
run_genode_until {.*VMM: vcpu_s_2 _vcpu_startup called.*\n} 10 [output_spawn_id]
run_genode_until {.*VMM: vcpu_o_1 _vcpu_startup called.*\n} 10 [output_spawn_id]
run_genode_until {.*VMM: vcpu_o_2 _vcpu_startup called.*\n} 10 [output_spawn_id]

puts "Test succeeded"