@@ -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