Skip to content

Commit 52efdb3

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: cri-o#9151 Signed-off-by: Snir Schreiber <[email protected]>
1 parent 2d2024a commit 52efdb3

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

pkg/config/config_test.go

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

0 commit comments

Comments
 (0)