Closed ignasi35 closed 7 years ago
ping @huntc, @markusjura, @TimMoore, @jroper (apologies for the ping
I don't have permissions to add reviewers to this PR).
The test run failed [info] org.scalatest.exceptions.TestFailedException: Timeout awaiting [lagom-service-impl] to start.
because 10sec is a timeout too small for starting that service in a sandbox/Travis env.
While this test deploys and runs a lagom service it's different from lagom-java-service
which is focused on asserting the bundle is loaded, listed in conduct info
and the install script is generated.
I removed the verifyConductInfo
part and now it's clear this and lagom-java-service
are different.
Will do lagom-scala-service-execution
on a separate PR.
Will do lagom-scala-service-execution on a separate PR.
The moment I add another similar test (implementing it in scala is irrelevant) will introduce opportunities for a refactor. I'm considering a similar approach to https://github.com/lagom/lagom/blob/master/dev/sbt-scripted-tools/src/main/scala/com/lightbend/lagom/sbt/scripted/ScriptedTools.scala that creates a library of tools for all scripted tests in Lagom.
@huntc @markusjura after removing the sleep 5000
the test failed in Travis (not on my local). Apparently, conduct info
reported the bundle as started to verifyIsStarted
succeeded but the next statement (assertRequest
) failed because of an HTTP response 503.
Should we investigate that?
Snippet from https://travis-ci.org/typesafehub/sbt-conductr/builds/211309258 :
[info]
[info] Your system is deployed. Running "conduct info" to observe the cluster.
[info] ID NAME #REP #STR #RUN
[info] bdfa43d-e5f3504 conductr-haproxy 1 0 1
[info] 3349b6b eslite 1 0 1
[info] 1acac1d cassandra 1 0 0
[info] c5d7847 lagom-service-impl 1 0 0
[info]
[info] [success] Total time: 70 s, completed Mar 15, 2017 11:39:59 AM <--- indicates completion of `install`
[info] [success] Total time: 21 s, completed Mar 15, 2017 11:40:20 AM <--- indicates completion of `verifyIsStarted lagom-service-impl` meaning conduct info reports "1 0 1".
[info] java.io.IOException: Server returned HTTP response code: 503 for URL: http://192.168.10.1:9000/foo
[info] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[info] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[info] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[info] at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
[info] at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1926)
[info] at sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1921)
[info] at java.security.AccessController.doPrivileged(Native Method)
[info] at sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1920)
[info] at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1490)
[info] at sun.net.www.protocol.http.HttpURLConnection.access$200(HttpURLConnection.java:91)
[info] at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1466)
[info] at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1464)
[info] at java.security.AccessController.doPrivileged(Native Method)
[info] at java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:782)
[info] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1463)
[info] at DevModeBuild$.makeRequest(Build.scala:32)
[info] at DevModeBuild$$anonfun$waitForRequestToContain$1.apply(Build.scala:18)
[info] at DevModeBuild$$anonfun$waitForRequestToContain$1.apply(Build.scala:18)
[info] at DevModeBuild$.waitFor(Build.scala:40)
[info] at DevModeBuild$.waitForRequestToContain(Build.scala:21)
[info] at $50f1629bcd31fa50dd34$$anonfun$$sbtdef$1$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(/tmp/sbt_d90f367f/lagom-java-service-execution/build.sbt:52)
[info] at $50f1629bcd31fa50dd34$$anonfun$$sbtdef$1$$anonfun$apply$2$$anonfun$apply$1.apply(/tmp/sbt_d90f367f/lagom-java-service-execution/build.sbt:46)
[info] at $50f1629bcd31fa50dd34$$anonfun$$sbtdef$1$$anonfun$apply$2$$anonfun$apply$1.apply(/tmp/sbt_d90f367f/lagom-java-service-execution/build.sbt:46)
[info] at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
[info] at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
[info] at sbt.std.Transform$$anon$4.work(System.scala:63)
[info] at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
[info] at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
[info] at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
[info] at sbt.Execute.work(Execute.scala:237)
[info] at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
[info] at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
[info] at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
[info] at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
[info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[info] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[info] at java.lang.Thread.run(Thread.java:745)
[info] Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://192.168.10.1:9000/foo
[info] at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1876)
[info] at sun.net.www.protocol.http.HttpURLConnection.access$200(HttpURLConnection.java:91)
[info] at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1466)
[info] at sun.net.www.protocol.http.HttpURLConnection$9.run(HttpURLConnection.java:1464)
[info] at java.security.AccessController.doPrivileged(Native Method)
[info] at java.security.AccessController.doPrivilegedWithCombiner(AccessController.java:782)
[info] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1463)
[info] at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
[info] at DevModeBuild$.makeRequest(Build.scala:31)
[info] at DevModeBuild$$anonfun$waitForRequestToContain$1.apply(Build.scala:18)
[info] at DevModeBuild$$anonfun$waitForRequestToContain$1.apply(Build.scala:18)
[info] at DevModeBuild$.waitFor(Build.scala:40)
[info] at DevModeBuild$.waitForRequestToContain(Build.scala:21)
[info] at $50f1629bcd31fa50dd34$$anonfun$$sbtdef$1$$anonfun$apply$2$$anonfun$apply$1.apply$mcV$sp(/tmp/sbt_d90f367f/lagom-java-service-execution/build.sbt:52)
[info] at $50f1629bcd31fa50dd34$$anonfun$$sbtdef$1$$anonfun$apply$2$$anonfun$apply$1.apply(/tmp/sbt_d90f367f/lagom-java-service-execution/build.sbt:46)
[info] at $50f1629bcd31fa50dd34$$anonfun$$sbtdef$1$$anonfun$apply$2$$anonfun$apply$1.apply(/tmp/sbt_d90f367f/lagom-java-service-execution/build.sbt:46)
[info] at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
[info] at sbt.std.Transform$$anon$3$$anonfun$apply$2.apply(System.scala:44)
[info] at sbt.std.Transform$$anon$4.work(System.scala:63)
[info] at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
[info] at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:228)
[info] at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)
[info] at sbt.Execute.work(Execute.scala:237)
[info] at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
[info] at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:228)
[info] at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)
[info] at sbt.CompletionService$$anon$2.call(CompletionService.scala:28)
[info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[info] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[info] at java.lang.Thread.run(Thread.java:745)
[info] [error] (lagom-java-service-execution/*:assertRequest) java.io.IOException: Server returned HTTP response code: 503 for URL: http://192.168.10.1:9000/foo
[info] [error] Total time: 0 s, completed Mar 15, 2017 11:40:20 AM
[error] x lagom-conductr-bundle / lagom-java-service-execution
[error] {line 12} Command failed: assertRequest failed
IMHO, this is mergeable.
@ignasi35 Let's leave the sleep in there. We also wait 1 second in this test: https://github.com/typesafehub/sbt-conductr/blob/master/src/sbt-test/sbt-conductr/conduct-end-to-end/test#L40-L41
So please change the sleep to 1 second as well.
Fixes #231
Introduces a
scripted
test that deploys a LagomJava service, awaits until it's reported as started byconduct info
and then await's until there's a successful HTTP request via the sandbox service gateway.