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