##############################################################################
# unittest configuration
#
# [unittest_name]
# file = <name>.flat		# Name of the flat file to be used.
# smp  = <num>			# Number of processors the VM will use
#				# during this test. Use $MAX_SMP to use
#				# the maximum the host supports. Defaults
#				# to one.
# extra_params = -append <params...>	# Additional parameters used.
# arch = arm|arm64			# Select one if the test case is
#					# specific to only one.
# groups = <group_name1> <group_name2> ...	# Used to identify test cases
#						# with run_tests -g ...
#						# Specify group_name=nodefault
#						# to have test not run by
#						# default
# accel = kvm|tcg		# Optionally specify if test must run with
#				# kvm or tcg. If not specified, then kvm will
#				# be used when available.
# timeout = <duration>		# Optionally specify a timeout.
# check = <path>=<value> # check a file for a particular value before running
#                        # a test. The check line can contain multiple files
#                        # to check separated by a space but each check
#                        # parameter needs to be of the form <path>=<value>
##############################################################################

#
# Test that the configured number of processors (smp = <num>), and
# that the configured amount of memory (-m <MB>) are correctly setup
# by the framework.
#
[selftest-setup]
file = selftest.flat
smp = 2
extra_params = -m 256 -append 'setup smp=2 mem=256'
groups = selftest

# Test vector setup and exception handling (kernel mode).
[selftest-vectors-kernel]
file = selftest.flat
extra_params = -append 'vectors-kernel'
groups = selftest

# Test vector setup and exception handling (user mode).
[selftest-vectors-user]
file = selftest.flat
extra_params = -append 'vectors-user'
groups = selftest

# Test SMP support
[selftest-smp]
file = selftest.flat
smp = $MAX_SMP
extra_params = -append 'smp'
groups = selftest

# Test PCI emulation
[pci-test]
file = pci-test.flat
groups = pci

# Test PMU support
[pmu-cycle-counter]
file = pmu.flat
groups = pmu
extra_params = -append 'cycle-counter 0'

[pmu-event-introspection]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-event-introspection'

[pmu-event-counter-config]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-event-counter-config'

[pmu-basic-event-count]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-basic-event-count'

[pmu-mem-access]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-mem-access'

[pmu-mem-access-reliability]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-mem-access-reliability'

[pmu-sw-incr]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-sw-incr'

[pmu-chained-counters]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-chained-counters'

[pmu-chained-sw-incr]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-chained-sw-incr'

[pmu-chain-promotion]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-chain-promotion'

[pmu-overflow-interrupt]
file = pmu.flat
groups = pmu
arch = arm64
extra_params = -append 'pmu-overflow-interrupt'

# Test PMU support (TCG) with -icount IPC=1
#[pmu-tcg-icount-1]
#file = pmu.flat
#extra_params = -icount 0 -append 'cycle-counter 1'
#groups = pmu
#accel = tcg

# Test PMU support (TCG) with -icount IPC=256
#[pmu-tcg-icount-256]
#file = pmu.flat
#extra_params = -icount 8 -append 'cycle-counter 256'
#groups = pmu
#accel = tcg

# Test GIC emulation
[gicv2-ipi]
file = gic.flat
smp = $((($MAX_SMP < 8)?$MAX_SMP:8))
extra_params = -machine gic-version=2 -append 'ipi'
groups = gic

[gicv2-mmio]
file = gic.flat
smp = $((($MAX_SMP < 8)?$MAX_SMP:8))
extra_params = -machine gic-version=2 -append 'mmio'
groups = gic

[gicv2-mmio-up]
file = gic.flat
smp = 1
extra_params = -machine gic-version=2 -append 'mmio'
groups = gic

[gicv2-mmio-3p]
file = gic.flat
smp = $((($MAX_SMP < 3)?$MAX_SMP:3))
extra_params = -machine gic-version=2 -append 'mmio'
groups = gic

[gicv3-ipi]
file = gic.flat
smp = $MAX_SMP
extra_params = -machine gic-version=3 -append 'ipi'
groups = gic

[gicv2-active]
file = gic.flat
smp = $((($MAX_SMP < 8)?$MAX_SMP:8))
extra_params = -machine gic-version=2 -append 'active'
groups = gic

[gicv3-active]
file = gic.flat
smp = $MAX_SMP
extra_params = -machine gic-version=3 -append 'active'
groups = gic

[its-introspection]
file = gic.flat
smp = $MAX_SMP
extra_params = -machine gic-version=3 -append 'its-introspection'
groups = its
arch = arm64

[its-trigger]
file = gic.flat
smp = $MAX_SMP
extra_params = -machine gic-version=3 -append 'its-trigger'
groups = its
arch = arm64

[its-migration]
file = gic.flat
smp = $MAX_SMP
extra_params = -machine gic-version=3 -append 'its-migration'
groups = its migration
arch = arm64

[its-pending-migration]
file = gic.flat
smp = $MAX_SMP
extra_params = -machine gic-version=3 -append 'its-pending-migration'
groups = its migration
arch = arm64

[its-migrate-unmapped-collection]
file = gic.flat
smp = $MAX_SMP
extra_params = -machine gic-version=3 -append 'its-migrate-unmapped-collection'
groups = its migration
arch = arm64

# Test PSCI emulation
[psci]
file = psci.flat
smp = $MAX_SMP
groups = psci

# Timer tests
[timer]
file = timer.flat
groups = timer
timeout = 10s
arch = arm64

# Exit tests
[micro-bench]
file = micro-bench.flat
smp = 2
groups = nodefault micro-bench
accel = kvm
arch = arm64

# Cache emulation tests
[cache]
file = cache.flat
arch = arm64
groups = cache

# Debug tests
[debug-bp]
file = debug.flat
arch = arm64
extra_params = -append 'bp'
groups = debug

[debug-bp-migration]
file = debug.flat
arch = arm64
extra_params = -append 'bp-migration'
groups = debug migration

[debug-wp]
file = debug.flat
arch = arm64
extra_params = -append 'wp'
groups = debug

[debug-wp-migration]
file = debug.flat
arch = arm64
extra_params = -append 'wp-migration'
groups = debug migration

[debug-sstep]
file = debug.flat
arch = arm64
extra_params = -append 'ss'
groups = debug

[debug-sstep-migration]
file = debug.flat
arch = arm64
extra_params = -append 'ss-migration'
groups = debug migration
