Browse Source

Merge branch 'master' into gencode-to-generics

Tim Burks 7 years ago
parent
commit
8f9397425a

+ 9 - 0
Examples/Echo/PackageManager/Makefile

@@ -3,6 +3,15 @@ all:
 	swift build -c release --product Echo
 	cp .build/release/Echo .
 
+test:	all
+	Echo serve & /bin/echo $$! > echo.pid
+	Echo get > test.out
+	Echo expand >> test.out
+	Echo collect >> test.out
+	Echo update >> test.out
+	kill -9 `cat echo.pid`
+	diff test.out test.gold
+	
 project:
 	swift package generate-xcodeproj
 

+ 17 - 13
Examples/Echo/PackageManager/Sources/main.swift

@@ -61,7 +61,7 @@ Group {
     let sem = DispatchSemaphore(value: 0)
     let echoProvider = EchoProvider()
     if ssl {
-      print("Starting secure server")
+      print("starting secure server")
       let certificateURL = URL(fileURLWithPath: "ssl.crt")
       let keyURL = URL(fileURLWithPath: "ssl.key")
       if let echoServer = Echo_EchoServer(address: address + ":" + port,
@@ -71,7 +71,7 @@ Group {
         echoServer.start()
       }
     } else {
-      print("Starting insecure server")
+      print("starting insecure server")
       let echoServer = Echo_EchoServer(address: address + ":" + port,
                                        provider: echoProvider)
       echoServer.start()
@@ -86,7 +86,7 @@ Group {
     let service = buildEchoService(ssl, address, port, message)
     var requestMessage = Echo_EchoRequest()
     requestMessage.text = message
-    print("Sending: " + requestMessage.text)
+    print("get sending: " + requestMessage.text)
     let responseMessage = try service.get(requestMessage)
     print("get received: " + responseMessage.text)
   }
@@ -96,57 +96,61 @@ Group {
     let service = buildEchoService(ssl, address, port, message)
     var requestMessage = Echo_EchoRequest()
     requestMessage.text = message
-    print("Sending: " + requestMessage.text)
+    print("expand sending: " + requestMessage.text)
+    let sem = DispatchSemaphore(value: 0)
     let expandCall = try service.expand(requestMessage) { result in
       print("expand completed with result \(result)")
+      sem.signal()
     }
     var running = true
     while running {
       do {
         let responseMessage = try expandCall.receive()
-        print("Received: \(responseMessage.text)")
+        print("expand received: \(responseMessage.text)")
       } catch ClientError.endOfStream {
-        print("expand closed")
         running = false
       }
     }
+    _ = sem.wait(timeout: DispatchTime.distantFuture)
   }
 
   $0.command("collect", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a client-streaming collect().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
+    let sem = DispatchSemaphore(value: 0)
     let collectCall = try service.collect { result in
       print("collect completed with result \(result)")
+      sem.signal()
     }
     let parts = message.components(separatedBy: " ")
     for part in parts {
       var requestMessage = Echo_EchoRequest()
       requestMessage.text = part
-      print("Sending: " + part)
+      print("collect sending: " + part)
       try collectCall.send(requestMessage) { error in print(error) }
       sleep(1)
     }
     let responseMessage = try collectCall.closeAndReceive()
-    print("Received: \(responseMessage.text)")
+    print("collect received: \(responseMessage.text)")
+    _ = sem.wait(timeout: DispatchTime.distantFuture)
   }
 
   $0.command("update", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a bidirectional-streaming update().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
+    let sem = DispatchSemaphore(value: 0)
     let updateCall = try service.update { result in
       print("update completed with result \(result)")
+      sem.signal()
     }
 
-    let sem = DispatchSemaphore(value: 0)
     DispatchQueue.global().async {
       var running = true
       while running {
         do {
           let responseMessage = try updateCall.receive()
-          print("Received: \(responseMessage.text)")
+          print("update received: \(responseMessage.text)")
         } catch ClientError.endOfStream {
-          print("update closed")
-          sem.signal()
           running = false
         } catch (let error) {
           print("error: \(error)")
@@ -157,7 +161,7 @@ Group {
     for part in parts {
       var requestMessage = Echo_EchoRequest()
       requestMessage.text = part
-      print("Sending: " + requestMessage.text)
+      print("update sending: " + requestMessage.text)
       try updateCall.send(requestMessage) { error in print(error) }
       sleep(1)
     }

+ 29 - 0
Examples/Echo/PackageManager/test.gold

@@ -0,0 +1,29 @@
+get sending: Testing 1 2 3
+get received: Swift echo get: Testing 1 2 3
+expand sending: Testing 1 2 3
+expand received: Swift echo expand (0): Testing
+expand received: Swift echo expand (1): 1
+expand received: Swift echo expand (2): 2
+expand received: Swift echo expand (3): 3
+expand completed with result status ok: OK
+
+
+collect sending: Testing
+collect sending: 1
+collect sending: 2
+collect sending: 3
+collect received: Swift echo collect: Testing 1 2 3
+collect completed with result status ok: OK
+
+
+update sending: Testing
+update received: Swift echo update (1): Testing
+update sending: 1
+update received: Swift echo update (2): 1
+update sending: 2
+update received: Swift echo update (3): 2
+update sending: 3
+update received: Swift echo update (4): 3
+update completed with result status ok: OK
+
+

+ 17 - 13
Examples/Echo2/Sources/main.swift

@@ -61,7 +61,7 @@ Group {
     let sem = DispatchSemaphore(value: 0)
     let echoProvider = EchoProvider()
     if ssl {
-      print("Starting secure server")
+      print("starting secure server")
       let certificateURL = URL(fileURLWithPath: "ssl.crt")
       let keyURL = URL(fileURLWithPath: "ssl.key")
       if let echoServer = Echo_EchoServer(address: address + ":" + port,
@@ -71,7 +71,7 @@ Group {
         echoServer.start()
       }
     } else {
-      print("Starting insecure server")
+      print("starting insecure server")
       let echoServer = Echo_EchoServer(address: address + ":" + port,
                                        provider: echoProvider)
       echoServer.start()
@@ -86,7 +86,7 @@ Group {
     let service = buildEchoService(ssl, address, port, message)
     var requestMessage = Echo_EchoRequest()
     requestMessage.text = message
-    print("Sending: " + requestMessage.text)
+    print("get sending: " + requestMessage.text)
     let responseMessage = try service.get(requestMessage)
     print("get received: " + responseMessage.text)
   }
@@ -96,57 +96,61 @@ Group {
     let service = buildEchoService(ssl, address, port, message)
     var requestMessage = Echo_EchoRequest()
     requestMessage.text = message
-    print("Sending: " + requestMessage.text)
+    print("expand sending: " + requestMessage.text)
+    let sem = DispatchSemaphore(value: 0)
     let expandCall = try service.expand(requestMessage) { result in
       print("expand completed with result \(result)")
+      sem.signal()
     }
     var running = true
     while running {
       do {
         let responseMessage = try expandCall.receive()
-        print("Received: \(responseMessage.text)")
+        print("expand received: \(responseMessage.text)")
       } catch Echo_EchoClientError.endOfStream {
-        print("expand closed")
         running = false
       }
     }
+    _ = sem.wait(timeout: DispatchTime.distantFuture)
   }
 
   $0.command("collect", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a client-streaming collect().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
+    let sem = DispatchSemaphore(value: 0)
     let collectCall = try service.collect { result in
       print("collect completed with result \(result)")
+      sem.signal()
     }
     let parts = message.components(separatedBy: " ")
     for part in parts {
       var requestMessage = Echo_EchoRequest()
       requestMessage.text = part
-      print("Sending: " + part)
+      print("collect sending: " + part)
       try collectCall.send(requestMessage) { error in print(error) }
       sleep(1)
     }
     let responseMessage = try collectCall.closeAndReceive()
-    print("Received: \(responseMessage.text)")
+    print("collect received: \(responseMessage.text)")
+    _ = sem.wait(timeout: DispatchTime.distantFuture)
   }
 
   $0.command("update", sslFlag, addressOption("localhost"), portOption, messageOption,
              description: "Perform a bidirectional-streaming update().") { ssl, address, port, message in
     let service = buildEchoService(ssl, address, port, message)
+    let sem = DispatchSemaphore(value: 0)
     let updateCall = try service.update { result in
       print("update completed with result \(result)")
+      sem.signal()
     }
 
-    let sem = DispatchSemaphore(value: 0)
     DispatchQueue.global().async {
       var running = true
       while running {
         do {
           let responseMessage = try updateCall.receive()
-          print("Received: \(responseMessage.text)")
+          print("update received: \(responseMessage.text)")
         } catch Echo_EchoClientError.endOfStream {
-          print("update closed")
-          sem.signal()
           running = false
         } catch (let error) {
           print("error: \(error)")
@@ -157,7 +161,7 @@ Group {
     for part in parts {
       var requestMessage = Echo_EchoRequest()
       requestMessage.text = part
-      print("Sending: " + requestMessage.text)
+      print("update sending: " + requestMessage.text)
       try updateCall.send(requestMessage) { error in print(error) }
       sleep(1)
     }

+ 1 - 1
Makefile

@@ -8,7 +8,7 @@ all:
 test:
 	swift build -v $(CFLAGS)
 	swift test -v $(CFLAGS)
-	cd Examples/Echo/PackageManager; make
+	cd Examples/Echo/PackageManager; make test
 	cd Examples/Simple/PackageManager; make
 
 clean: