Browse Source

Add functional testing of the Echo example to the top-level "make test".

Tim Burks 8 years ago
parent
commit
5f5c121670

+ 9 - 0
Examples/Echo/PackageManager/Makefile

@@ -3,6 +3,15 @@ all:
 	swift build -c release
 	swift build -c release
 	cp .build/release/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:
 project:
 	swift package generate-xcodeproj
 	swift package generate-xcodeproj
 
 

+ 9 - 9
Examples/Echo/PackageManager/Sources/main.swift

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

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

@@ -0,0 +1,22 @@
+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 closed
+collect sending: Testing
+collect sending: 1
+collect sending: 2
+collect sending: 3
+collect received: Swift echo collect: Testing 1 2 3
+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 closed

+ 9 - 9
Examples/Echo2/Sources/main.swift

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

+ 1 - 1
Makefile

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