@@ -642,6 +642,51 @@ static void test_wolfSSH_CTX_UsePrivateKey_buffer_pem(void)
642642}
643643
644644
645+ static void test_wolfSSH_CTX_SetWindowPacketSize (void )
646+ {
647+ WOLFSSH_CTX * ctx = NULL ;
648+
649+ /* NULL ctx must be rejected. */
650+ AssertIntEQ (WS_BAD_ARGUMENT ,
651+ wolfSSH_CTX_SetWindowPacketSize (NULL , 0 , 0 ));
652+
653+ ctx = wolfSSH_CTX_new (WOLFSSH_ENDPOINT_SERVER , NULL );
654+ AssertNotNull (ctx );
655+
656+ /* Both zero: should default without error. */
657+ AssertIntEQ (WS_SUCCESS ,
658+ wolfSSH_CTX_SetWindowPacketSize (ctx , 0 , 0 ));
659+
660+ /* windowSz exactly at upper bound: must succeed and be stored. */
661+ AssertIntEQ (WS_SUCCESS ,
662+ wolfSSH_CTX_SetWindowPacketSize (ctx , WINDOW_SZ_UPPER_BOUND , 0 ));
663+ AssertIntEQ (WINDOW_SZ_UPPER_BOUND , (int )ctx -> windowSz );
664+
665+ /* windowSz one above upper bound: must fail. */
666+ AssertIntEQ (WS_BAD_ARGUMENT ,
667+ wolfSSH_CTX_SetWindowPacketSize (ctx ,
668+ WINDOW_SZ_UPPER_BOUND + 1 , 0 ));
669+
670+ /* maxPacketSz exactly at transport limit: must succeed and be stored. */
671+ AssertIntEQ (WS_SUCCESS ,
672+ wolfSSH_CTX_SetWindowPacketSize (ctx , 0 , MAX_PACKET_SZ ));
673+ AssertIntEQ (MAX_PACKET_SZ , (int )ctx -> maxPacketSz );
674+
675+ /* maxPacketSz one above transport limit: must fail. */
676+ AssertIntEQ (WS_BAD_ARGUMENT ,
677+ wolfSSH_CTX_SetWindowPacketSize (ctx , 0 , MAX_PACKET_SZ + 1 ));
678+
679+ /* Both valid non-zero values: must succeed and be stored. */
680+ AssertIntEQ (WS_SUCCESS ,
681+ wolfSSH_CTX_SetWindowPacketSize (ctx ,
682+ DEFAULT_WINDOW_SZ , DEFAULT_MAX_PACKET_SZ ));
683+ AssertIntEQ (DEFAULT_WINDOW_SZ , (int )ctx -> windowSz );
684+ AssertIntEQ (DEFAULT_MAX_PACKET_SZ , (int )ctx -> maxPacketSz );
685+
686+ wolfSSH_CTX_free (ctx );
687+ }
688+
689+
645690static void test_wolfSSH_CertMan (void )
646691{
647692#ifdef WOLFSSH_CERTMAN
@@ -2277,6 +2322,7 @@ int wolfSSH_ApiTest(int argc, char** argv)
22772322 test_wolfSSH_CTX_UsePrivateKey_buffer ();
22782323 test_wolfSSH_CTX_UseCert_buffer ();
22792324 test_wolfSSH_CTX_UsePrivateKey_buffer_pem ();
2325+ test_wolfSSH_CTX_SetWindowPacketSize ();
22802326 test_wolfSSH_CertMan ();
22812327 test_wolfSSH_ReadKey ();
22822328 test_wolfSSH_ReadKey_badPad ();
0 commit comments