FEX/unittests/gvisor-tests/Known_Failures
Ryan Houdek e8aaadb2d0 gvisor: Disable timerfd test
Somewhere between kernel 5.15 and 6.0 this syscall's behaviour has
changed.
The unit test expects -ESPIPE result but new kernels will return 0
(noop_llseek in the source).

The new solidrun board is our first CI machine to be running kernel 6.1
so this needs to be merged before that CI machine can be enabled.
2023-04-15 15:23:58 -07:00

228 lines
7.0 KiB
Plaintext

# these fail on x86 CI
proc_pid_oomscore_test
# The behaviour of this is different between x86 and ARM
# SIGSEGV kills a thread successfully on ARM but not on x86
time_test
# these are disabled
# never terminates (even though we use timeout)
kill_test
# erratic test results
xattr_test
mlock_test
# These used to crash and fail its test, now hang
#mremap_test
# these are flaky on x86
stat_times_test
# Spins forever
ptrace_test
# The behaviour of this test changes depending on if running inside the test harness or not
# Works outside of the test harness but fails inside of it
pause_test
# This takes advantage of CLONE_VM in a way that breaks FEX's TLS usage
# Need to workaround this somehow
aio_test
# The Solidrun CI board isn't running a kernel with namespaces enabled
# gvisor doesn't error check correctly in this case and returns hard failure instead of correctly exiting
proc_pid_uid_gid_map_test
# This test is expecting the kernel to update the timeout variable but by default the kernel keeps time outs "sticky"
# See personality flag STICKY_TIMEOUTS
select_test
# This test uses syscalls that a userspace process doesn't have access to
syslog_test
# This very specifically is testing bad pointers passed in to the kernel to test EFAULT
access_test
sigprocmask_test
# Relies on some utility executables to be installed
exec_test
# This relies on splice behaviour that doesn't work even on x86 host
eventfd_test
# Relies on tricky behaviour
# MMapDeathTest.TruncateAfterCOWBreak : Needs to capture SIGBUS. Test fails, handwritten test works
# MMapTest.ProtNoneDeath : Needs to capture SIGBUS. Test fails, handwritten test works
# MMapTest.NoProtExecDeath : Needs to support SIGSEGV from memory mapped without PROT_EXEC but WITH READ + WRITE
# NoExceedLimitData : Requires brk to respect RLIMIT_DATA
mmap_test
# Fails even on host x86 device
# Expects the tmp folder to be empty and cleaned up between CI runs by a system process
# Does tests that removes user priveleges to touch those files
open_create_test
# Fails even on host x86 device
# Expects the /tmp folder to be cleaned up between INDIVIDUAL tests
# OpenTest.OTrunc creates /tmp/truncd
# OpenTest.OTruncAndReadOnlyDir attempts to create the same directory just afterwards
# Neither clean up after themselves
open_test
# This test doesn't correctly check to see if seccomp is enabled
# Attempts using regardless of enabled or not
seccomp_test
# Relies on ptrace to execute very simple binaries
exec_binary_test
# Relies on ptrace to send the parent process a signal
prctl_test
# Doesn't event pass on real x86 host
# GetrusageTest.IgnoreSIGCHLD is expecting memory usage to be zero, but it isn't
getrusage_test
# Doesn't even pass on real x86 host
sendfile_test
# Does a couple of things we don't support currently
# ForkTest.SigAltStack : Fork should inherit altstack
# ForkTest.Affinity : Affinity masks should be inherited
# CloneTest.NonCanonicalTLS : Non-Canonical TLS addresses should be rejecte with -EPERM
fork_test
# Requires accurate exit status from vfork
# Which we currently don't achieve
vfork_test
# Doesn't even pass on real x86 host
# ProcSelfFd.GetdentsDuplicates : Expects fcntl F_DUPFD, 1024 to work. Returns -1
# ProcSelfFdInfo.GetdentsDuplicates : Same as above
# ProcSelfAuxv.EntryPresence expects AT_SYSINFO_EHDR to exist. We don't support VDSO atm
# ProcPidCmdline.SubprocessForkSameCmdline expects to read parent pid's /proc/{pid}/cmdline and get executable name. Expecting a match.
# ProcPidExe.Subprocess : Same as above
# ProcPidEnviron.MatchesEnviron Doesn't expect us injecting environment variables in to its container space
proc_test
# Doesn't even pass on real x86 host
# Takes a long time to run as well
pty_test
# This syscall isn't implemented on ARM64
mempolicy_test
# Relies on namespaces to exist on the host (and user accessible) and isn't guaranteed by our CI
prctl_setuid_test
# This does 32-bit syscalls from a 64-bit process. Which we don't support yet
32bit_test
# We are lying to the guest application about true affinity. Missing some edges here
affinity_test
# Doesn't even pass on real x86 host
# Uses some private sandbox socket system?
# Seems like it needs some environment variables set that is google specific
connect_external_test
# Tests a bunch of different exception exits and we don't support them all
exceptions_test
# These search for folders in /
# Might need to rbind some folders to make it happy
# This currently passes on x86-64 hosts
# This fails on AArch64 because getdents isn't emulated
getdents_test
# Doesn't even pass on real x86 host
# Needs some helper executable to work
sigaltstack_test
# Sets up an alarm to fire every 500ms
# Sets up rcx and r11 to a known good value
# sets a boolean in memory and spins until the signal handler sets another boolean
# Stores the resulting values to a memory address
# Then checks to ensure the signal handler picked up the correct context values
# Seems like FEX currently doesn't?
sigiret_test
# Doesn't even pass on real x86 host
# This relies on splice behaviour that doesn't work even on x86 host
# Hangs after failing
splice_test
# Relies on ptrace to run
wait_test
sysret_test
# Has race conditions in the code and takes a long time to run
tcp_socket_test
# Doesn't even pass on real x86 host
socket_bind_to_device_test
socket_netlink_route_test
socket_bind_to_device_distribution_test
socket_bind_to_device_sequence_test
socket_inet_loopback_nogotsan_test
socket_ipv4_udp_unbound_loopback_nogotsan_test
socket_ipv4_udp_unbound_loopback_test
# This takes forever even on x86 host
socket_inet_loopback_test
socket_ip_tcp_generic_loopback_test
socket_stress_test
alarm_test
itimer_test
futex_test
fcntl_test
# these take a long time
ppoll_test
flock_test
pipe_test
epoll_test
concurrency_test
# This requires partial read support in the kernel
# Tries reading a page's worth of bytes from an FD across a page with no permissions
# Expecting a partial read to succeed
# Arm64 devices don't have this
partial_bad_buffer_test
# Depending on board can work or not, depending on kernel configuration
# IPv6 maybe?
socket_ipv6_udp_unbound_external_networking_test
# This test is flaky
proc_net_test
rtsignal_test
sigstop_test
stat_test
# Flaky
udp_socket_test
# This test checks for the header layout from `/proc/net/udp` which has changed slightly with newer kernels
proc_net_udp_test
# This test is broken since kernel commit: 36e2c7421f02
# Upstream gvisor has the offending tests removed
inotify_test
# Needs testing
semaphore_test
# This test does an unsafe timer test. (NoTimeout subtest specifically).
# Sets a timer for 100ms then starts a pselect with unlimited timeout.
# If the timer fires before the pselect starts then pselect will hang forever.
# Since we are running these tests on a fully loaded system, we tend to context switch,
# causing the chance of a hang to occur quite frequently.
pselect_test
# Somewhere between kernel versions 5.15 and 6.0, timerfd lseek behaviour has changed.
# On older kernels it would return -ESPIPE, on new kernels it returns 0.
# This test expects -ESPIPE behaviour.
timerfd_test