mirror of
https://github.com/juanfont/headscale.git
synced 2026-04-01 15:03:23 +02:00
integration: scale remaining hardcoded timeouts and replace pingAllHelper
Apply CI-aware scaling to all remaining hardcoded timeouts: - requireAllClientsOfflineStaged: scale the three internal stage timeouts (15s/20s/60s) with ScaledTimeout. - validateReloginComplete: scale requireAllClientsOnline (120s) and requireAllClientsNetInfoAndDERP (3min) calls. - WaitForTailscaleSyncPerUser callers in acl_test.go (3 sites, 60s). - WaitForRunning callers in tags_test.go (10 sites): switch to PeerSyncTimeout() to match convention. - WaitForRunning/WaitForPeers direct callers in route_test.go. - requireAllClientsOnline callers in general_test.go and auth_key_test.go. Replace pingAllHelper with assertPingAll/assertPingAllWithCollect: - Wraps pings in EventuallyWithT so transient docker exec timeouts are retried instead of immediately failing the test. - Timeout scales with the ping matrix size (2s per ping budget for 2 full sweeps) so large tests get proportionally more time. - Uses CollectT correctly, fixing the broken EventuallyWithT usage in TestEphemeral where the old t.Errorf bypassed CollectT. - Follows the established assert*/assertWithCollect naming. Updates #3125
This commit is contained in:
@@ -2430,7 +2430,7 @@ func TestAutoApproveMultiNetwork(t *testing.T) {
|
||||
|
||||
// Wait for the node to be fully running before getting its ID
|
||||
// This is especially important for webauth flow where login is asynchronous
|
||||
err = routerUsernet1.WaitForRunning(30 * time.Second)
|
||||
err = routerUsernet1.WaitForRunning(integrationutil.ScaledTimeout(30 * time.Second))
|
||||
require.NoError(t, err)
|
||||
|
||||
// Wait for bidirectional peer synchronization.
|
||||
@@ -2439,12 +2439,12 @@ func TestAutoApproveMultiNetwork(t *testing.T) {
|
||||
// tunnels may not be established despite peers appearing in netmaps.
|
||||
|
||||
// Router waits for all existing clients
|
||||
err = routerUsernet1.WaitForPeers(len(allClients), 60*time.Second, 1*time.Second)
|
||||
err = routerUsernet1.WaitForPeers(len(allClients), integrationutil.PeerSyncTimeout(), integrationutil.PeerSyncRetryInterval())
|
||||
require.NoError(t, err, "router failed to see all peers")
|
||||
|
||||
// All clients wait for the router (they should see 6 peers including the router)
|
||||
for _, existingClient := range allClients {
|
||||
err = existingClient.WaitForPeers(len(allClients), 60*time.Second, 1*time.Second)
|
||||
err = existingClient.WaitForPeers(len(allClients), integrationutil.PeerSyncTimeout(), integrationutil.PeerSyncRetryInterval())
|
||||
require.NoErrorf(t, err, "client %s failed to see all peers including router", existingClient.Hostname())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user