Explorar o código

Added test for rtcReceiveMessage()

Paul-Louis Ageneau %!s(int64=2) %!d(string=hai) anos
pai
achega
93a732561d
Modificáronse 1 ficheiros con 21 adicións e 3 borrados
  1. 21 3
      test/capi_connectivity.cpp

+ 21 - 3
test/capi_connectivity.cpp

@@ -176,6 +176,11 @@ static void deletePeer(Peer *peer) {
 
 int test_capi_connectivity_main() {
 	int attempts;
+	char buffer[BUFFER_SIZE];
+	char buffer2[BUFFER_SIZE];
+	const char *test = "foo";
+	const int testLen = 3;
+	int size = 0;
 
 	rtcInitLogger(RTC_LOG_DEBUG, nullptr);
 
@@ -246,9 +251,6 @@ int test_capi_connectivity_main() {
 		goto error;
 	}
 
-	char buffer[BUFFER_SIZE];
-	char buffer2[BUFFER_SIZE];
-
 	if (rtcGetLocalDescriptionType(peer1->pc, buffer, BUFFER_SIZE) < 0) {
 		fprintf(stderr, "rtcGetLocalDescriptionType failed\n");
 		goto error;
@@ -340,6 +342,22 @@ int test_capi_connectivity_main() {
 		goto error;
 	}
 
+	rtcSetMessageCallback(peer2->dc, NULL);
+	if (rtcSendMessage(peer1->dc, test, testLen) < 0) {
+		fprintf(stderr, "rtcSendMessage failed\n");
+		goto error;
+	}
+	sleep(1);
+	size = 0;
+	if (rtcReceiveMessage(peer2->dc, NULL, &size) < 0 || size != testLen) {
+		fprintf(stderr, "rtcReceiveMessage failed to peek message size\n");
+		goto error;
+	}
+	if (rtcReceiveMessage(peer2->dc, buffer, &size) < 0 || size != testLen) {
+		fprintf(stderr, "rtcReceiveMessage failed to get the message\n");
+		goto error;
+	}
+
 	rtcClose(peer1->dc); // optional
 
 	rtcClosePeerConnection(peer1->pc); // optional