Updates to seL4Test from seL4 10.1.x to 11.0.x

External

  • List valid platforms if invalid platform is provided in build configuration.
  • Add IPCRIGHTS tests for master and mcs to test new grantreply access right:
    • IPCRIGHTS0001, “seL4_Send needs write”
    • IPCRIGHTS0002, “seL4_Recv needs read”
    • IPCRIGHTS0003, “seL4_Send with caps needs grant”
    • IPCRIGHTS0004, “seL4_Call needs grant or grant-reply”
    • IPCRIGHTS0005, “seL4_Reply grant depends of the grant of previous seL4_Recv”
  • add test UNKNOWN_SYSCALL_001, “Test seL4_VMEnter in a non-vm thread” to check cannot enter VM in no-vm thread on x86.
  • Added tests for maximum ASID pools usage:
    • VSPACE0003, “Test create multiple ASID pools”
    • VSPACE0004, “Test running out of ASID pools”
    • VSPACE0005, “Test overassigning ASID pool”
    • VSPACE0006, “Test touching all available ASID pools”
  • Add griddle support to sel4test via easy-settings.cmake file.
  • Re-enable serial_server tests on RISC-V with addition of userlevel serial driver.
  • Change timeout time for PREEMPT_REVOKE to make test more robust.
  • Added tests to check IRQ routing:
    • SMPIRQ0001, “Test multicore irqs”
  • Enable TLS tests for RISC-V as they are now supported.
  • Change RISC-V bad instruction value to 0xffffffff in fault tests. This change was motivated by some simulators not trapping 0x00000000 or 0x0000 as invalid instructions.
  • Enable timer tests on RISC-V.
  • Disable flaky SCHED0000 on RISCV.
  • Update vspace test to support 40 bit PAs
  • add NUM_NODES to override KernelMaxNumNodes. This allows users to pass NUM_NODES on the command line to an init-build invocation and override the default of 4 cores when SMP=ON. Example: ../init-build.sh -DPLATFORM=imx8mq-evk -DAARCH32=1 -DSMP=1 -DNUM_NODES=2
  • Disable device mem tests for spike.
  • Change frame tests to not try and steal timer device frame from runtime and instead request device frames more reliably.
  • set Sel4testHaveTimer and Sel4testHaveCache options to advanced if Sel4testAllowSettingsOverride is not set. Otherwise any changes to these settings will get overridden.
  • Set SEL4_CONFIG_DEFAULT_ADVANCED=On. This will cause most CMake config options to be hidden apart from ones expected to be changed.
  • Add MCS option for configuring KernelIsMCS. -DMCS=ON will enable MCS configurations and -DMCS=OFF will use mainline configurations.
  • Remove Remap and use Map instead in mapping tests due to kernel API change.
  • RISCV: Disable huge page test for Ariane
  • MULTICORE0003: Extend to test different VSpaces. On x86 the kernel was only performing TLB cross-core invalidation if the VSpace that was being unmapped was running on the current core. This means that if a core unmaps a page from a different VSpace running on a different core then the cross-core invalidation wouldn’t happen. We extend MULTICORE0003 to test unmapping from different VSpaces as well as the same VSpace. We also now repeat the test a few times for if a kernel timer IRQ is received during any of them leading to a false success.

Internal

  • Correctly initialize clocks for exynos5422 serial driver
  • Improve test SCHED0011: compare timestamps in nanoseconds not microseconds to improve accuracy. Use period value instead as wait time instead of assuming 1s.
  • Switch to new libelf and libcpio API
  • Style source files.
  • Use seL4runtime.
  • Refactor build scripts to keep up to date with build system changes.
  • Refactor object allocation to use libsel4rpc to dynamically allocate additional resources instead of trying to preallocate everything.
  • Remove autoconf.h and global Configuration library usage.
  • Add memory barriers in SCHED0004 to prevent spurious failures.
  • Use custom IRQ handler allocation function in IRQ allocation so that some tests may borrow the caps.
  • Rename CONFIG_KERNEL_RT to CONFIG_KERNEL_MCS
  • MULTICORE0003: Reduce wait time to limit timer IRQ. This makes the test more reliable.