[Tracking Issue] Implement Integraion Tests
As per #56 , we are porting the OCI validation tests into rust. This is the tracking issue for the same. The folder /youki_integration_test contains the currently implemented tests which are lifecyle, creation and huge_tlb
Here is the documentation for developing the integration tests: https://youki-dev.github.io/youki/developer/e2e/rust_oci_test.html
Please only work at one test at a time, and wait for its PR to get merged before opening another one. It helps us to have an easier way for reviewing the PRs
[NOTE] As mentioned in #3285, cgroup v1 is no longer maintained. Therefore, unless there is a specific reason to continue working on cgroup v1, new cgroup-related test work should focus on cgroup v2.
Default
List of all test, as per https://github.com/opencontainers/runtime-tools/tree/master/validation :
- config_updates_without_affect
- create(@sivchari )
- Original test code in Go: https://github.com/opencontainers/runtime-tools/blob/master/validation/create/create.go
- default
- Original test code in Go: https://github.com/opencontainers/runtime-tools/blob/master/validation/default/default.go
- https://github.com/opencontainers/runtime-tools/blob/master/cmd/runtimetest/main.go
- Please port the following test
- validateDefaultDevices
- validateDefaultSymlinks (@karthik20066002 )
- validateDefaultFS
- delete (@sou1118 ) https://github.com/youki-dev/youki/pull/3082
- delete_only_create_resources
- delete_resources
- hooks
- hooks_stdin
- hostname(@chermehdi)
- kill (@YamasouA https://github.com/youki-dev/youki/pull/2996)
- kill_no_effect(@oneplus1000 https://github.com/youki-dev/youki/pull/3332)
- killsig (@YamasouA https://github.com/youki-dev/youki/pull/3612)
- linux_cgroups_blkio(#537)
- linux_cgroups_cpus(#462)
-
linux_cgroups_devices ( @sat0ken ) - linux_cgroups_hugetlb
- linux_cgroups_memory(#473)
- linux_cgroups_network(#516)
- linux_cgroups_pids(#391)
-
linux_cgroups_relative_blkio -
linux_cgroups_relative_cpus// Please take over from https://github.com/youki-dev/youki/pull/2898 -
linux_cgroups_relative_devices (@sat0ken ) -
linux_cgroups_relative_hugetlb(@kmpzr) -
linux_cgroups_relative_memory(@omprakaash) - linux_cgroups_relative_network (@moz-sec https://github.com/youki-dev/youki/pull/2986 )
-
linux_cgroups_relative_pids(@kmpzr) - linux_devices https://github.com/containers/youki/pull/2708 by @omprakaash
- linux_masked_paths (@nayuta-ai https://github.com/youki-dev/youki/pull/2950)
- linux_mount_label @Gekko0114
- linux_ns_itype(#389)
- linux_ns_nopath(@cody-herbst )
- linux_ns_path(@cody-herbst )
- linux_ns_path_type(@cody-herbst )
- linux_process_apparmor_profile(@HukuKaich0u)
- linux_readonly_paths (#582 )
- linux_rootfs_propagation (@saku3 https://github.com/youki-dev/youki/pull/3024 )
- linux_seccomp https://github.com/containers/youki/pull/2531 by @xiaoyang-sde
- linux_sysctl https://github.com/containers/youki/pull/2527 by @xiaoyang-sde
- linux_uid_mappings (@moz-sec https://github.com/youki-dev/youki/pull/3161)
- misc_props(@YamasouA https://github.com/youki-dev/youki/pull/3250)
- mounts(@saku3 )
- pidfile(#379)
- poststart ( @fspv https://github.com/youki-dev/youki/pull/3292)
- poststart_fail (@fspv https://github.com/youki-dev/youki/pull/3313)
- poststop (@donkomura https://github.com/youki-dev/youki/pull/3395)
- poststop_fail(@fspv https://github.com/youki-dev/youki/pull/3407)
- prestart (@fspv https://github.com/youki-dev/youki/pull/3406
- prestart_fail (@fspv https://github.com/youki-dev/youki/pull/3406
- process ( @sat0ken https://github.com/youki-dev/youki/pull/2968 )
- process_capabilities (@aayush0325 https://github.com/youki-dev/youki/pull/3696 )
- process_capabilities_fail (@kazmsk https://github.com/youki-dev/youki/pull/3010)
- process_oom_score_adj ( @saku3 https://github.com/youki-dev/youki/pull/2987 )
- process_rlimits ( @sat0ken https://github.com/youki-dev/youki/pull/2977)
- process_rlimits_fail ( @ntkm61027 https://github.com/youki-dev/youki/pull/3051)
- process_user ( @sat0ken https://github.com/youki-dev/youki/pull/2978)
- root_readonly_true ( @sat0ken https://github.com/youki-dev/youki/pull/2976)
- start
- state (@ITSMERNB https://github.com/youki-dev/youki/pull/3697)
Extensions
This contains tests are not in https://github.com/opencontainers/runtime-tools/tree/master/validation , or need are not satisfactory enough.
- cgroups v1
- cgroups v2
Out of these, currently only huge_tlb is ported completely. lifecycle and create tests are implemented but need much improvements, and lifecycle tests should be split into individuals as per listed above. Please read the README of youki_integration_test to get idea for how one should go about implementing the tests, and what utils etc are available.
Source: youki-dev/youki