| 607 | } |
| 608 | |
| 609 | static void TC_sal_socket_accept(void) |
| 610 | { |
| 611 | int server_sock = -1; |
| 612 | struct sockaddr_in bind_addr; |
| 613 | int ret; |
| 614 | int test_port = get_available_port(TEST_SERVER_BASE_PORT); |
| 615 | |
| 616 | LOG_I("Starting TC_sal_socket_accept tests..."); |
| 617 | |
| 618 | /* Setup test server */ |
| 619 | LOG_I("Creating server socket..."); |
| 620 | server_sock = create_test_socket(AF_INET, SOCK_STREAM, 0); |
| 621 | if (server_sock < 0) |
| 622 | { |
| 623 | LOG_E("Failed to create server socket"); |
| 624 | return; |
| 625 | } |
| 626 | |
| 627 | memset(&bind_addr, 0, sizeof(bind_addr)); |
| 628 | bind_addr.sin_family = AF_INET; |
| 629 | bind_addr.sin_addr.s_addr = htonl(INADDR_ANY); |
| 630 | bind_addr.sin_port = htons(test_port); |
| 631 | |
| 632 | LOG_I("Binding server socket %d to port %d...", server_sock, test_port); |
| 633 | ret = sal_bind(server_sock, (struct sockaddr *)&bind_addr, sizeof(bind_addr)); |
| 634 | if (ret != 0) |
| 635 | { |
| 636 | LOG_E("Failed to bind server socket %d: %d", server_sock, ret); |
| 637 | close_test_socket(server_sock); |
| 638 | return; |
| 639 | } |
| 640 | |
| 641 | LOG_I("Starting to listen on server socket %d...", server_sock); |
| 642 | ret = sal_listen(server_sock, 5); |
| 643 | if (ret != 0) |
| 644 | { |
| 645 | LOG_E("Failed to listen on server socket %d: %d", server_sock, ret); |
| 646 | close_test_socket(server_sock); |
| 647 | return; |
| 648 | } |
| 649 | |
| 650 | /* Test accept on valid socket with timeout */ |
| 651 | LOG_I("Testing accept with timeout on socket %d...", server_sock); |
| 652 | struct sockaddr_in client_addr; |
| 653 | socklen_t addr_len = sizeof(client_addr); |
| 654 | int accepted_sock = sal_accept(server_sock, (struct sockaddr*)&client_addr, &addr_len); |
| 655 | |
| 656 | if (accepted_sock >= 0) |
| 657 | { |
| 658 | LOG_W("Unexpected connection accepted: %d", accepted_sock); |
| 659 | close_test_socket(accepted_sock); |
| 660 | } |
| 661 | else |
| 662 | { |
| 663 | LOG_I("Accept timed out as expected: %d", accepted_sock); |
| 664 | } |
| 665 | |
| 666 | close_test_socket(server_sock); |
nothing calls this directly
no test coverage detected