From befc1e0086bd72eab93aa7b35a215a112ef41070 Mon Sep 17 00:00:00 2001 From: Kyri Petrou Date: Sat, 27 Apr 2024 20:14:12 +1000 Subject: [PATCH 1/4] Add tests to check if the ZIO Runtime is propagated to req execution --- .../scala/zio/http/ServerRuntimeSpec.scala | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 zio-http/jvm/src/test/scala/zio/http/ServerRuntimeSpec.scala diff --git a/zio-http/jvm/src/test/scala/zio/http/ServerRuntimeSpec.scala b/zio-http/jvm/src/test/scala/zio/http/ServerRuntimeSpec.scala new file mode 100644 index 0000000000..ec5240e8e2 --- /dev/null +++ b/zio-http/jvm/src/test/scala/zio/http/ServerRuntimeSpec.scala @@ -0,0 +1,70 @@ +/* + * Copyright 2021 - 2023 Sporta Technologies PVT LTD & the ZIO HTTP contributors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package zio.http + +import zio._ +import zio.test.TestAspect._ +import zio.test._ + +import zio.http.internal.{DynamicServer, HttpRunnableSpec} +import zio.http.netty.NettyConfig + +object ServerRuntimeSpec extends HttpRunnableSpec { + + override val bootstrap: ZLayer[Any, Any, TestEnvironment] = + ZLayer.make[TestEnvironment]( + testEnvironment, + Runtime.enableWorkStealing, + Runtime.setUnhandledErrorLogLevel(LogLevel.Warning), + ) + + override def spec = + suite("ServerRuntimeSpec") { + test("runtime flags are propagated") { + val server = Routes( + Method.GET / "test" -> handler(ZIO.runtimeFlags.map(f => Response.text(f.toString))), + ) + ZIO.runtimeFlags.flatMap { outer => + ZIO + .scoped(serve) + .zipRight(server.deploy.body.run(path = Path.root / "test", method = Method.GET)) + .flatMap(_.asString(Charsets.Utf8)) + .map(b => assertTrue(b == outer.toString)) + } + } + + test("fiber refs are propagated") { + val server = Routes( + Method.GET / "test" -> handler( + ZIO.getFiberRefs.map(f => Response.text(f.get(FiberRef.unhandledErrorLogLevel).get.toString)), + ), + ) + ZIO + .scoped(serve) + .zipRight(server.deploy.body.run(path = Path.root / "test", method = Method.GET)) + .flatMap(_.asString(Charsets.Utf8)) + .map(b => assertTrue(b == "Some(LogLevel(30000,WARN,4))")) + } + } + .provideSomeLayer[DynamicServer & Server.Config & Server & Client](Scope.default) + .provideShared( + DynamicServer.live, + Server.customized, + ZLayer.succeed(Server.Config.default), + ZLayer.succeed(NettyConfig.defaultWithFastShutdown), + Client.default, + ) @@ sequential @@ withLiveClock +} From a9053fa6bbf0317968268ed76a8abac7ae3f76d3 Mon Sep 17 00:00:00 2001 From: Kyri Petrou Date: Sat, 27 Apr 2024 21:20:42 +1000 Subject: [PATCH 2/4] Empty commit From c017357d3d11d81bcaf836156786b03e40393bbe Mon Sep 17 00:00:00 2001 From: Kyri Petrou Date: Tue, 30 Apr 2024 10:31:51 +1000 Subject: [PATCH 3/4] Execute flaky form test sequentially --- zio-http/jvm/src/test/scala/zio/http/FormSpec.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zio-http/jvm/src/test/scala/zio/http/FormSpec.scala b/zio-http/jvm/src/test/scala/zio/http/FormSpec.scala index 5c9c05fa1e..9e1b0117fc 100644 --- a/zio-http/jvm/src/test/scala/zio/http/FormSpec.scala +++ b/zio-http/jvm/src/test/scala/zio/http/FormSpec.scala @@ -311,7 +311,7 @@ object FormSpec extends ZIOHttpSpec { ) } } @@ samples(10), - ) + ) @@ sequential def spec = suite("FormSpec")(urlEncodedSuite, multiFormSuite, multiFormStreamingSuite) From bd8a330569a328315799fd555bb60d0d7ea12786 Mon Sep 17 00:00:00 2001 From: Kyri Petrou Date: Thu, 2 May 2024 08:55:48 +1000 Subject: [PATCH 4/4] empty