Skip to content

Replace PropagationPolicy and DeleteAllOf in controller tests - #479

Merged
felix-kaestner merged 2 commits into
mainfrom
fix/flaky-test
Aug 4, 2026
Merged

Replace PropagationPolicy and DeleteAllOf in controller tests#479
felix-kaestner merged 2 commits into
mainfrom
fix/flaky-test

Conversation

@felix-kaestner

Copy link
Copy Markdown
Contributor

Remove client.PropagationPolicy(metav1.DeletePropagationForeground) and k8sClient.DeleteAllOf from all controller test suites. These do not work reliably in envtest, causing flaky test failures.

Replace with scoped cleanup using client.IgnoreNotFound(Delete) and ensure device is always deleted last (after provider verification) so that controllers can finalize child resources properly.

Also fix cross-test interference in the VRF test by checking specific provider state instead of global emptiness.

Remove client.PropagationPolicy(metav1.DeletePropagationForeground)
and k8sClient.DeleteAllOf from all controller test suites. These do
not work reliably in envtest, causing flaky test failures.

Replace with scoped cleanup using client.IgnoreNotFound(Delete) and
ensure device is always deleted last (after provider verification)
so that controllers can finalize child resources properly.

Also fix cross-test interference in the VRF test by checking
specific provider state instead of global emptiness.

Signed-off-by: Felix Kästner <felix.kaestner@sap.com>
The test was binding to a hardcoded port (16900) which caused
'address already in use' errors when the previous subtest's server
hadn't fully released the port. Use net.ListenPacket on port 0 to
get a free port for each subtest.

Extract serve method that accepts a net.PacketConn so tests can
pass in a pre-bound listener.

Signed-off-by: Felix Kästner <felix.kaestner@sap.com>
@github-actions

github-actions Bot commented Aug 3, 2026

Copy link
Copy Markdown

Merging this branch will decrease overall coverage

Impacted Packages Coverage Δ 🤖
github.com/ironcore-dev/network-operator/internal/controller/cisco/nx 65.05% (-0.18%) 👎
github.com/ironcore-dev/network-operator/internal/controller/core 61.59% (-0.06%) 👎
github.com/ironcore-dev/network-operator/internal/tftp 74.63% (-6.33%) 👎

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/ironcore-dev/network-operator/internal/tftp/server.go 74.63% (-6.33%) 67 (+4) 50 (-1) 17 (+5) 👎

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

Changed unit test files

  • github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/bordergateway_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/system_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/cisco/nx/vpcdomain_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/acl_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/banner_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/bgp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/bgp_peer_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/certificate_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/device_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/dhcprelay_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/dns_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/ethernetsegment_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/evpninstance_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/interface_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/isis_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/lldp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/managementaccess_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/ntp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/nve_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/ospf_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/pim_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/prefixset_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/routingpolicy_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/snmp_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/syslog_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/user_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/vlan_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/controller/core/vrf_controller_test.go
  • github.com/ironcore-dev/network-operator/internal/tftp/server_test.go

@felix-kaestner
felix-kaestner marked this pull request as ready for review August 3, 2026 16:51
@felix-kaestner
felix-kaestner merged commit 3b83479 into main Aug 4, 2026
24 checks passed
@felix-kaestner
felix-kaestner deleted the fix/flaky-test branch August 4, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants