Skip to content

Commit a0408f0

Browse files
committed
test: add tests for ContainerCreateTimeout configurability
- Add ValidateContainerCreateTimeout unit tests covering: * Default timeout when not configured (240s) * Valid configured timeout values * Minimum timeout enforcement (30s) * Zero and negative value handling * Large timeout values * Different timeouts per runtime handler Fixes: #9151 Signed-off-by: Snir Schreiber <[email protected]>
1 parent b932a5b commit a0408f0

File tree

1 file changed

+104
-0
lines changed

1 file changed

+104
-0
lines changed

pkg/config/config_test.go

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1780,4 +1780,108 @@ var _ = t.Describe("Config", func() {
17801780
Expect(ok).To(BeTrue())
17811781
})
17821782
})
1783+
1784+
t.Describe("ValidateContainerCreateTimeout", func() {
1785+
It("should set default timeout when not configured", func() {
1786+
// Given
1787+
handler := &config.RuntimeHandler{}
1788+
1789+
// When
1790+
err := handler.ValidateContainerCreateTimeout("test-runtime")
1791+
1792+
// Then
1793+
Expect(err).ToNot(HaveOccurred())
1794+
Expect(handler.ContainerCreateTimeout).To(Equal(int64(240)))
1795+
})
1796+
1797+
It("should use configured timeout when valid", func() {
1798+
// Given
1799+
handler := &config.RuntimeHandler{
1800+
ContainerCreateTimeout: 600, // 10 minutes
1801+
}
1802+
1803+
// When
1804+
err := handler.ValidateContainerCreateTimeout("test-runtime")
1805+
1806+
// Then
1807+
Expect(err).ToNot(HaveOccurred())
1808+
Expect(handler.ContainerCreateTimeout).To(Equal(int64(600)))
1809+
})
1810+
1811+
It("should set minimum timeout when below minimum", func() {
1812+
// Given
1813+
handler := &config.RuntimeHandler{
1814+
ContainerCreateTimeout: 15, // Below minimum of 30
1815+
}
1816+
1817+
// When
1818+
err := handler.ValidateContainerCreateTimeout("test-runtime")
1819+
1820+
// Then
1821+
Expect(err).ToNot(HaveOccurred())
1822+
Expect(handler.ContainerCreateTimeout).To(Equal(int64(30)))
1823+
})
1824+
1825+
It("should allow minimum timeout", func() {
1826+
// Given
1827+
handler := &config.RuntimeHandler{
1828+
ContainerCreateTimeout: 30, // Exactly minimum
1829+
}
1830+
1831+
// When
1832+
err := handler.ValidateContainerCreateTimeout("test-runtime")
1833+
1834+
// Then
1835+
Expect(err).ToNot(HaveOccurred())
1836+
Expect(handler.ContainerCreateTimeout).To(Equal(int64(30)))
1837+
})
1838+
1839+
It("should handle zero timeout by setting default", func() {
1840+
// Given
1841+
handler := &config.RuntimeHandler{
1842+
ContainerCreateTimeout: 0,
1843+
}
1844+
1845+
// When
1846+
err := handler.ValidateContainerCreateTimeout("test-runtime")
1847+
1848+
// Then
1849+
Expect(err).ToNot(HaveOccurred())
1850+
Expect(handler.ContainerCreateTimeout).To(Equal(int64(240)))
1851+
})
1852+
1853+
It("should handle negative timeout by setting minimum", func() {
1854+
// Given
1855+
handler := &config.RuntimeHandler{
1856+
ContainerCreateTimeout: -10,
1857+
}
1858+
1859+
// When
1860+
err := handler.ValidateContainerCreateTimeout("test-runtime")
1861+
1862+
// Then
1863+
Expect(err).ToNot(HaveOccurred())
1864+
Expect(handler.ContainerCreateTimeout).To(Equal(int64(30)))
1865+
})
1866+
1867+
It("should set different timeouts for different runtime handlers", func() {
1868+
// Given
1869+
sut.Runtimes[config.DefaultRuntime] = &config.RuntimeHandler{
1870+
RuntimePath: validFilePath,
1871+
ContainerCreateTimeout: 300, // 5 minutes for OCI runtime
1872+
}
1873+
sut.Runtimes["kata"] = &config.RuntimeHandler{
1874+
RuntimePath: validFilePath,
1875+
ContainerCreateTimeout: 600, // 10 minutes for VM runtime
1876+
}
1877+
1878+
// When
1879+
err := sut.ValidateRuntimes()
1880+
1881+
// Then
1882+
Expect(err).ToNot(HaveOccurred())
1883+
Expect(sut.Runtimes[config.DefaultRuntime].ContainerCreateTimeout).To(Equal(int64(300)))
1884+
Expect(sut.Runtimes["kata"].ContainerCreateTimeout).To(Equal(int64(600)))
1885+
})
1886+
})
17831887
})

0 commit comments

Comments
 (0)