Skip to content

Commit

Permalink
Allowing users to switch to KituraNIO
Browse files Browse the repository at this point in the history
  • Loading branch information
Pushkar N Kulkarni committed Aug 29, 2018
1 parent b0b1eec commit bc8952a
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 10 deletions.
11 changes: 11 additions & 0 deletions .travis.yml
Expand Up @@ -34,6 +34,10 @@ matrix:
dist: trusty
sudo: required
env: SWIFT_SNAPSHOT=swift-4.2-DEVELOPMENT-SNAPSHOT-2018-06-19-a
- os: linux
dist: trusty
sudo: required
env: SWIFT_SNAPSHOT=swift-4.2-DEVELOPMENT-SNAPSHOT-2018-06-19-a KITURA_NIO=1
- os: osx
osx_image: xcode9.2
sudo: required
Expand All @@ -46,6 +50,13 @@ matrix:
osx_image: xcode10
sudo: required
env: SWIFT_SNAPSHOT=4.2
- os: osx
osx_image: xcode10
sudo: required
env: SWIFT_SNAPSHOT=4.2 KITURA_NIO=1

before_install:
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update && brew install libressl ; fi

script:
- ./build.sh
11 changes: 10 additions & 1 deletion Package.swift
Expand Up @@ -18,6 +18,15 @@
**/

import PackageDescription
import Foundation

var kituraNetPackage: Package.Dependency

if ProcessInfo.processInfo.environment["KITURA_NIO"] != nil {
kituraNetPackage = .package(url: "https://github.com/IBM-Swift/Kitura-NIO.git", from: "1.0.0")
} else {
kituraNetPackage = .package(url: "https://github.com/IBM-Swift/Kitura-net.git", from: "2.1.0")
}

let package = Package(
name: "Kitura",
Expand All @@ -29,7 +38,7 @@ let package = Package(
)
],
dependencies: [
.package(url: "https://github.com/IBM-Swift/Kitura-net.git", from: "2.1.0"),
kituraNetPackage,
.package(url: "https://github.com/IBM-Swift/Kitura-TemplateEngine.git", from: "2.0.0"),
.package(url: "https://github.com/IBM-Swift/KituraContracts.git", from: "1.0.0"),
.package(url: "https://github.com/IBM-Swift/TypeDecoder.git", from: "1.1.0")
Expand Down
40 changes: 32 additions & 8 deletions Tests/KituraTests/TestServer.swift
Expand Up @@ -33,6 +33,7 @@ class TestServer: KituraTest {

let httpPort = 8080
let fastCgiPort = 9000
let useNIO = ProcessInfo.processInfo.environment["KITURA_NIO"] != nil

override func setUp() {
super.setUp()
Expand All @@ -42,7 +43,7 @@ class TestServer: KituraTest {
private func setupServerAndExpectations(expectStart: Bool, expectStop: Bool, expectFail: Bool, httpPort: Int?=nil, fastCgiPort: Int?=nil) {
let router = Router()
let httpServer = Kitura.addHTTPServer(onPort: httpPort ?? self.httpPort, with: router)
let fastCgiServer = Kitura.addFastCGIServer(onPort: fastCgiPort ?? self.fastCgiPort, with: router)
let fastCgiServer = useNIO ? FastCGIServer() : Kitura.addFastCGIServer(onPort: fastCgiPort ?? self.fastCgiPort, with: router)

if expectStart {
let httpStarted = expectation(description: "HTTPServer started()")
Expand All @@ -51,15 +52,24 @@ class TestServer: KituraTest {
httpServer.started {
httpStarted.fulfill()
}
fastCgiServer.started {

if useNIO {
fastCgiStarted.fulfill()
} else {
fastCgiServer.started {
fastCgiStarted.fulfill()
}
}

} else {
httpServer.started {
XCTFail("httpServer.started should not have been called")
}
fastCgiServer.started {
XCTFail("fastCgiServer.started should not have been called")

if !useNIO {
fastCgiServer.started {
XCTFail("fastCgiServer.started should not have been called")
}
}
}

Expand All @@ -70,8 +80,13 @@ class TestServer: KituraTest {
httpServer.stopped {
httpStopped.fulfill()
}
fastCgiServer.stopped {

if useNIO {
fastCgiStopped.fulfill()
} else {
fastCgiServer.stopped {
fastCgiStopped.fulfill()
}
}
}

Expand All @@ -82,15 +97,24 @@ class TestServer: KituraTest {
httpServer.failed { error in
httpFailed.fulfill()
}
fastCgiServer.failed { error in

if useNIO {
fastCgiFailed.fulfill()
} else {
fastCgiServer.failed { error in
fastCgiFailed.fulfill()
}
}

} else {
httpServer.failed { error in
XCTFail("\(error)")
}
fastCgiServer.failed { error in
XCTFail("\(error)")

if !useNIO {
fastCgiServer.failed { error in
XCTFail("\(error)")
}
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion build.sh
Expand Up @@ -4,7 +4,7 @@ set -o verbose

if [ -n "${DOCKER_IMAGE}" ]; then
docker pull ${DOCKER_IMAGE}
docker run --env SWIFT_SNAPSHOT -v ${TRAVIS_BUILD_DIR}:${TRAVIS_BUILD_DIR} ${DOCKER_IMAGE} /bin/bash -c "apt-get update && apt-get install -y git sudo lsb-release wget libxml2 && cd $TRAVIS_BUILD_DIR && ./build.sh"
docker run --env SWIFT_SNAPSHOT --env KITURA_NIO -v ${TRAVIS_BUILD_DIR}:${TRAVIS_BUILD_DIR} ${DOCKER_IMAGE} /bin/bash -c "apt-get update && apt-get install -y git sudo lsb-release wget libxml2 && cd $TRAVIS_BUILD_DIR && ./build.sh"
else
git clone https://github.com/IBM-Swift/Package-Builder.git
./Package-Builder/build-package.sh -projectDir $(pwd)
Expand Down

0 comments on commit bc8952a

Please sign in to comment.