History log of /seL4-test-master/projects/sel4test/apps/sel4test-driver/src/main.c
Revision Date Author Comments
# 7b1f1fcb 01-Oct-2020 Curtis Millar <curtis.millar@data61.csiro.au>

Set exit callback for sel4runtime for driver

To prevent the tests exiting with a fault, we set an exit callback to
suspend the current thread when the driver exits.

Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>


# ffefb10d 09-Sep-2020 Curtis Millar <curtis.millar@data61.csiro.au>

Catch and handle failure to allocate IRQ

If an IRQ handler cannot be allocated for a driver, the failure should
be treated as an error rather than silently dropped.

Partially fix for #25

Signed-off-by: Curtis Millar <curtis.millar@data61.csiro.au>


# d6d8f604 21-Aug-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

mcs: Rename CONFIG_KERNEL_RT to CONFIG_KERNEL_MCS

This is to be consistent with the name defined in the kernel.


# a4c4d740 29-Jul-2019 Damon Lee <Damon.Lee@data61.csiro.au>

sel4test-driver: Remove sel4platsupport timer

Instead of using the sel4platsupport timer interfaces, we manage the
ltimer interface and the notification caps directly. The IRQ interface
was not used here as there are some tests who need to interact with the
IRQ handler caps.


# fa39bf06 30-Jul-2019 Damon Lee <Damon.Lee@data61.csiro.au>

sel4test-driver: Overwrite irq_register_fn

This commit provides a custom implementation of the IRQ interface's IRQ
register function. We need this custom implementation as we need to
record the IRQ handlers that were allocated for the timer. The original
implementation would allocate the IRQ handlers for us and hide them
away.


# 62c5385a 29-Jul-2019 Damon Lee <Damon.Lee@data61.csiro.au>

sel4test-driver: Initialise IO ops

Instead of initialising the individual interfaces, this commit replaces
the calls with a single call to initialise the IO ops interface.


# 48ff3899 29-Jul-2019 Damon Lee <Damon.Lee@data61.csiro.au>

sel4test-driver,tests: Alloc and copy device frame

This commit adds logic to the driver and 'test' to allocate and copy a
device frame across. This is to fix a particular test and allow other
tests in the future to be able to use this device frame in their unit
tests.


# 7263e5a5 18-Jul-2019 Yu Hou <Yu.Hou@data61.csiro.au>

sel4test: explicitly link sel4_autoconf

since the global conf lib is going be removed, we need to explicitly
linke each project with sel4_autoconf and other config libs
this commit also removed a bunch of unused includes as well as
HAVE_AUTOCONF ifdef checking.


# 92fa60fe 12-Jul-2019 Yu Hou <Yu.Hou@data61.csiro.au>

Trivial: style fix

make the style checker happy


# 3d7586eb 19-May-2019 Yu Hou <Yu.Hou@data61.csiro.au>

sel4test: remove autoconf.h from sel4test

this commit removes autoconf.h generation from sel4test and
append '#include <sel4test/gen_config.h>' after each
'#include <autoconf.h>' since autoconf.h is only the for the
kernel config now. This is a temporarily solution, since we
currently don't have a way to tell which header files each file
is trying to include when it includes 'autoconf.h'


# 9c8d9c56 14-Jul-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

trivial: Remove unused headers


# 65bda9be 14-Jul-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

sel4test-driver: Invert allocation of serial objs

Previously we allocated objects for serial devices before initialising
the serial. Workarounds were required to allow these objects to be
allocated twice. We reorder this process and capture the objects
allocated by the serial as it is initialised. This removes the need to
manage the structure of objects allocated which could be different per
serial device.


# a48c88d1 14-Jul-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

sel4test-driver: Remove ioport hack

Historically, ioports ranges couldn't be allocated multiple times and so
this lead to the code in sel4test that kept track of the serial IOPort
range to reallocate. This constraint no longer exists and it is possible
to simply perform multiple calls off of the control cap.


# 1899facd 14-Jul-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Move test_init_data_t compile assert

As the compile time assert doesn't need to be executed at runtime, it
doesn't need to exist in the main function and can be placed under the
struct definition that it refers to.


# 01aeb04a 10-Jul-2019 Kent McLeod <Kent.Mcleod@data61.csiro.au>

run_tests: Add failure case if cannot find tests

If the sel4test-tests ELF doesn't have the required section then we
cannot continue. Also initialise tc_size to 0 as it won't be initialised
by sel4utils_elf_get_section if the section cannot be found.


# 6a456cd0 30-Jan-2019 James Ye <james.ye@data61.csiro.au>

sel4test: transition to new libcpio API


# dfda9da8 29-Jan-2019 James Ye <james.ye@data61.csiro.au>

sel4test-driver: switch to new libelf API


# 783f2dbe 30-Oct-2018 Kent McLeod <Kent.Mcleod@data61.csiro.au>

apps: Fixup platsupport header files


# 7fb9c6a5 29-Oct-2018 Kent McLeod <Kent.Mcleod@data61.csiro.au>

sel4test-driver: Remove empty plat_init functions

Make plat_init a weak symbol and remove all platform files that are
empty.


# 5ba89960 28-Aug-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4test: s/test_ge/test_gt and s/test_le/test_lt


# 562f4fe1 28-Aug-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4test-driver: test that there are > 0 tests

Not >= 0 tests! This checks that the regex actually matches something.


# 2e799ba3 31-Jul-2018 Kent McLeod <Kent.Mcleod@data61.csiro.au>

sel4test-driver: Correctly assert num regions


# dbd96aa8 25-Apr-2018 Adrian Danis <Adrian.Danis@data61.csiro.au>

Avoid duplicate IO port allocations


# 015284f0 03-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

trivial: revert whitespace additions


# acebcdd4 03-Apr-2018 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-1271: uncomment qsort

it works now


# f536997e 28-Nov-2017 Hesham Almatary <hesham.almatary@data61.csiro.au>

Rebase and comment non-relevant RISC-V code/test


# 3f6f2889 07-Dec-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Always create reply object for RT

It's needed if we are going to use api_recv


# 59f6588d 05-Dec-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Use time_manager in sel4test-driver

The sel4test driver wrapper around ltimer did not handle ETIME, which
can happen from tests in successful and error cases. Instead of fixing
the logic here, use local_time_manager from libplatsupport with a single timeout to
handle the ltimer.


# cd331d3f 30-Nov-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Count last test when halting on test failure


# 3f7ea2f0 30-Nov-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Add missing new line.


# cd9a4941 22-Nov-2017 Hesham Almatary <hesham.almatary@data61.csiro.au>

Trivial: Add missing timer guard for simulation targets


# 25630ea2 07-Sep-2017 Hesham Almatary <hesham.almatary@data61.csiro.au>

SELFOUR-1056/sel4test: Add backend support for timer server and wait for tests

SELFOUR-1056/sel4test: move timer interrupt tests for sel4test-test to sel4test-driver

* Add time-related helper files.
* Move code in sel4test/tests/interrupts to sel4test-driver/src/tests/timer.c
* Add a new function to do sel4test-driver tests before sel4test-test tests


# b0034966 10-Oct-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

sel4test-driver: Make different environment types clearer

Changes the 'env' in sel4test-driver to be called driver_env so that it is not confused
with the environment 'env' in the basic tests. To handle this type change we also
explicitly declare implementations that could take an arbitrary environment to take a
'uintptr_t' type that is cast to the known (and hopefully correct) environment type.


# d07b2383 27-Sep-2017 Claudia Tu <claudia.tu@unsw.edu.au>

SELFOUR-1130 Refactor tests to use new DEFINE_TEST

These changes turn tests on and off with the new `enabled` argument in
DEFINE_TEST instead of using #ifdefs.


# 7ffc4e0b 28-Sep-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

trivial: use testcase_t


# 8a4a7ee0 28-Sep-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

minor refactor of test extraction

- remove duplicated code by adding collate_tests function which also
means now all test types will check the .enabled field.
- null terminate testname strings to avoid nasty strcmp failure
- don't calculate seen_tests, just use all_tests which is the max number
of tests we have
- calculate location of sel4test-tests in sel4test_run_tests rather than
use test_init_data to pass the values around. test_init_data is only for
data shared between sel4test-tests and the driver.


# 84fc5084 25-Sep-2017 Claudia Tu <claudia.tu@unsw.edu.au>

SELFOUR-1083 extract test cases from sel4test-tests using elf magic instead of bash script

Add README to describe how to declare tests


# ccdc1cd8 13-Sep-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

driver/support: major refactor to improve split between support and driver

- remove functions that libsel4testsupport doesn't need, put into driver
- rewrite as part of the move, to make sure correct XML tags are always
output and output buffering works.
- update with changes to libsel4test


# eace83b1 31-Aug-2017 Claudia Tu <claudia.tu@unsw.edu.au>

SELFOUR-1075 move test types from seL4_libs to testtypes.c in sel4test


# 37d1996e 22-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

MCS: Use api_wait where possible

api_wait is the equivalent of a seL4_Recv on the master kernel,
and seL4_Wait on the mcs kernel. Use this whereever a reply object is
not required.


# 911887bc 21-Aug-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

MCS: add sched_ctrl caps to driver and tests

- add simple functions in tests for getting sched ctrl
- copy sched ctrl caps between driver and test process


# 29601194 15-Aug-2017 Claudia Tu <claudia.tu@unsw.edu.au>

SELFOUR-1065 pass init data by shared mem not ipc


# eadc0ac9 10-Aug-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Clarify whose registers are being printed out on fault


# aa5887a8 27-Jul-2017 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Move timer_objects helper code to seL4_libs


# bb173222 20-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Use ltimer interface in sel4test

- remove all plat specific timer code
- new timers don't need any code added to sel4test!
- also remove plat_copy_serial caps as it is empty for all cases


# e0eb8e3c 13-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix whitespace

- remove trailing whitespace
- remove double blank lines
- remove blank lines at end of file


# 536d7df7 09-Jul-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Use sel4utils_[thread|process]_config builder functions

Far more portable for changing API


# b5ac337a 04-Jun-2017 Anna Lyons <Anna.Lyons@data61.csiro.au>

Fix licenses


# cc36f1ce 27-Apr-2017 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Refactor copy_cap_to_process to libsel4utils

Move this function to libsel4utils


# c5c72ebf 27-Apr-2017 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Move dev init caps functions to libsel4platsupport

init_timer_caps and init_serial_caps is functionality that is often used
in other applications so this has been moved to libsel4platsupport to
reduce bitrot.


# 6c731e7b 27-Apr-2017 Kent McLeod <Kent.Mcleod@data61.csiro.au>

Split serial_utspace_alloc_at_fn into arch

x86 doesn't currently require utspace alloc for serial device, so on x86
this function tries to access struct elements that will no longer exist
in the source.


# 5acbee8a 04-Apr-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Use CONFIG_ definitions instead of legacy definitions


# bc5649e9 14-Feb-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Use bootinfo platsupport


# 47d89d0f 26-Jan-2017 Adrian Danis <Adrian.Danis@data61.csiro.au>

Avoid multiple initializations of the C library

When spawning helper processes we perform a clone of the current vspace
and then begin running this cloned process from the `_start` entry point.
As the cloned data sections have already been initialized by the C library
this means we effectively initialize the C library again. This can be
especially confusing to any init constructors or other routines that
you expect to run once.

The goal of spawning the helper process is to get it to run a desired
function in the new process. This is controlled by adding additional
arguments to the new process, and having `main` jump to it. Instead
of doing this, this change makes it so that we start directly running
at the desired function, instead of going through `_start` and `main`.
Since we do not pass these extra arguments this change also cleans up
`main` and `helper_thread`


# aebaafa2 27-Nov-2016 Kofi Doku Atuah <kofidoku.atuah@data61.csiro.au>

Clean up seL4test backend

* Clean up the structure of seL4test.
* Make TK1 use the same device as both the
event-timer and wall-clock timer.


# 81eecb58 18-Jul-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

SELFOUR-114: use new fault API


# 0645f36f 16-Nov-2016 amrzar <azarrabi@nicta.com.au>

smp: some tests for multicore
This will update the env to include number of available cores
- Test suspending and resuming a thread on diffrent core
- Test thread is runnable on all available cores
- Test core stalling is behaving properly
- Test TLB invalidated cross cores
- Test FPU remain valid across core migration


# b298a703 06-Nov-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

SELFOUR-328: add clocktimer for pc99, omap3 & imx6


# 6e165bfb 09-Oct-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

64-bit compatible printing


# cb60a923 06-Oct-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

Add missing include and fix KBuild fail


# 0fe04258 05-Oct-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

sel4test: fix arm serial broken in 35944e1e613f380


# 35944e1e 05-Oct-2016 Anna Lyons <Anna.Lyons@data61.csiro.au>

User device untyped and s/PIT/HPET for x86

This commit changes the way sel4test-driver passes
device memory to sel4test-tests: instead of copying the frame
caps it copies untypeds, to be compataible with how seL4_libs
has changed after device untyped. sel4test-tests now gives
the relevant untyped to its allocator so seL4_libs can
initialise the relevant devices.

Additionally, this commit changes to use the HPET and IOAPIC
instead of the legacy PIT/PIC on x86, allowing us much greater
timer accuracy in tests and faster tests in general.


# df4f57eb 26-Sep-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

NULL terminate test names

strncpy will not add a null terminator if there was not one in the n
bytes that it copied. This adds an explicit null terminator to ensure
strings do not continue into random data


# b2001d10 23-Sep-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Only allocate serial frame caps once

The simple implementation, due to changes in the kernel API, is not
able to allocate/return the same device frame cap multiple times.
This change uses the copy of the cap that we already cache for sending
to test instances for instantiating our platsupport serial interface


# 24cfd07b 22-Sep-2016 Adrian Danis <Adrian.Danis@data61.csiro.au>

Avoid printing before serial is initialized

This moves a call to simple_print till after the serial has been
initialized. Whilst this does not cause a problem in debug builds
where we are printing from the kernel serial device, this causes
release builds to fail


# 4e62765f 18-Feb-2016 Adrian Danis <Adrian.Danis@nicta.com.au>

Print out simple information on startup


# 72f0e9d5 14-Jun-2016 Kofi Doku Atuah <kofi.dokuatuah@nicta.com.au>

ARM, x86: Allow serial printing from tests

Define the simple_get_IOPort_cap() and simple_get_frame_cap() backend
for non-root tasks to return the correct cap for the serial IO Ports on
x86 snd the correct cap for the serial frames on ARM, by ensuring that
sel4test-driver actually copies them into the sel4test-test process
during init.


# d838039f 31-May-2016 Yanyan Shen <yanyan.shen@nicta.com.au>

arm: move copy iospace caps code to arch directory


# 2825d6ea 26-May-2016 Yanyan Shen <yanyan.shen@nicta.com.au>

arm: add test cases for IOSpace caps.


# f80d4693 19-Apr-2016 Anna Lyons <Anna.Lyons@nicta.com.au>

Update to latest seL4_libs

remove simple-stable references and update to use arch_simple
in sel4test-test update simple implementation.


# d5ed070f 29-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Support x64 tests

This fixes various tests that were not compatible with x64. The real
changes are to tests that create/map/recycle frames and these have
been rewritten to be clearer and support both 32 and 64bit.

Other tests have minor changes for type compatibility and reserving
additional amounts of memory needed for the changes.


# 8d1b7921 29-Nov-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Remove some redundant variable juggling.


# ec247016 29-Nov-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Remove unnecessary argument to seL4_Recv.

The kernel manual documents this parameter as ignored if `NULL` and we don't
need its value.


# 31b94485 23-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Port most tests to be compatible with x64


# cf3dce28 23-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Some trivial whitespace fixes


# f23030a7 23-Nov-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Remove an unused extern declaration and comment.

This comment and declaration appear to be related to how test cases used to be
notified to sel4test. This is no longer how this mechanism works and this
comment is unnecessarily confusing to people trying to understand the code.


# b146967c 23-Nov-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Fix: Remove UNUSED from variables that are actually used.


# b31e7531 22-Nov-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Add test for making an ASID pool


# 0b58d4d4 23-Nov-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

sel4test-driver: fix args to sel4utils_run_on_stack


# 81f2a1d1 19-Nov-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

update for s/Wait/Recv


# edd59c09 18-Nov-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

use ZF_LOGF instead of assert in sel4test apps, replace LOG_ERROR with ZF_LOG* as appropriate


# d73123e4 18-Nov-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

Add arch specific directories to sel4test apps and remove #ifdefs


# d658c6e1 22-Oct-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

sel4test-driver: dump registers on test fault


# d46a433a 02-Oct-2015 Anna Lyons <Anna.Lyons@nicta.com.au>

reserve the stack in the vspace of sel4test-tests


# 38b0e1b0 13-May-2015 Adrian Danis <Adrian.Danis@nicta.com.au>

Set thread names


# c9497249 06-Feb-2015 Matthew Fernandez <matthew.fernandez@nicta.com.au>

Adjust stack switching for libutils and libsel4utils changes.


# 0cf310a0 20-Oct-2014 Matthew Fernandez <matthew.fernandez@nicta.com.au>

trivial: Remove unused variable.

Found by Goanna.


# eb6037e4 11-Sep-2014 Adrian Danis <Adrian.Danis@nicta.com.au>

Fixes for vspace API change


# 77a0046b 28-Aug-2014 Adrian Danis <Adrian.Danis@nicta.com.au>

Support new muslc, loading processes via system V stack frame and use of standard _start entry point


# 7f1809de 21-Jul-2014 TrustworthySystems <gatekeeper@sel4.systems>

Release snapshot