Fix testInternalError that caused Jenkins hang for a long time

pull/10278/head
Muxi Yan 8 years ago
parent 5c8a47e86d
commit 1cef41f7da
  1. 29
      src/objective-c/tests/CronetUnitTests/CronetUnitTests.m

@ -34,6 +34,7 @@
#import <XCTest/XCTest.h>
#import <netinet/in.h>
#import <sys/socket.h>
#import <sys/fcntl.h>
#import <Cronet/Cronet.h>
#import <grpc/grpc.h>
@ -187,6 +188,19 @@ unsigned int parse_h2_length(const char *field) {
grpc_metadata_array_init(&request_metadata_recv);
grpc_call_details_init(&call_details);
int sl = socket(AF_INET, SOCK_STREAM, 0);
GPR_ASSERT(sl >= 0);
// Make an TCP endpoint to accept the connection
struct sockaddr_in s_addr;
memset(&s_addr, 0, sizeof(s_addr));
s_addr.sin_family = AF_INET;
s_addr.sin_addr.s_addr = htonl(INADDR_ANY);
s_addr.sin_port = htons(port);
GPR_ASSERT(-1 != fcntl(sl, F_SETFL, fcntl(sl, F_GETFL, 0) | O_NONBLOCK));
GPR_ASSERT(0 == bind(sl, (struct sockaddr *)&s_addr, sizeof(s_addr)));
GPR_ASSERT(0 == listen(sl, 5));
memset(ops, 0, sizeof(ops));
op = ops;
op->op = GRPC_OP_SEND_INITIAL_METADATA;
@ -226,17 +240,10 @@ unsigned int parse_h2_length(const char *field) {
dispatch_async(
dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
int sl = socket(AF_INET, SOCK_STREAM, 0);
GPR_ASSERT(sl >= 0);
// Make and TCP endpoint to accept the connection
struct sockaddr_in s_addr;
memset(&s_addr, 0, sizeof(s_addr));
s_addr.sin_family = AF_INET;
s_addr.sin_addr.s_addr = htonl(INADDR_ANY);
s_addr.sin_port = htons(port);
GPR_ASSERT(0 == bind(sl, (struct sockaddr *)&s_addr, sizeof(s_addr)));
GPR_ASSERT(0 == listen(sl, 5));
fd_set fs;
FD_ZERO(&fs);
FD_SET(sl, &fs);
select(sl + 1, &fs, NULL, NULL, NULL);
int s = accept(sl, NULL, NULL);
GPR_ASSERT(s >= 0);

Loading…
Cancel
Save