This is an automated email from the ASF dual-hosted git repository.
philippus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko-http.git
The following commit(s) were added to refs/heads/main by this push:
new 0745382f8 Update http-compatibility-tests (#986)
0745382f8 is described below
commit 0745382f864d9d843ca21d9cc5af7abf82d5850a
Author: Philippus Baalman <[email protected]>
AuthorDate: Mon Mar 30 15:06:08 2026 +0200
Update http-compatibility-tests (#986)
* Remove checks that do not compile with pekko-http 1.0.0
* Enable http-compatibility-tests project
* Fix typo
---
build.sbt | 19 ++++----
.../scala/example/HostConnectionPoolCompat.scala | 51 ----------------------
.../server/directives/CompatFormField.scala | 8 +---
.../scaladsl/HostConnectionPoolCompatSpec.scala | 48 --------------------
.../server/directives/CompatFormFieldSpec.scala | 12 +----
5 files changed, 11 insertions(+), 127 deletions(-)
diff --git a/build.sbt b/build.sbt
index 7152fa5c6..eb89f47f8 100644
--- a/build.sbt
+++ b/build.sbt
@@ -44,8 +44,10 @@ inThisBuild(Def.settings(
concurrentRestrictions in Global += Tags.limit(Tags.Test, 1),
onLoad in Global := {
sLog.value.info(
- s"Building Pekko HTTP ${version.value} against Pekko
${PekkoCoreDependency.version} on Scala ${(httpCore /
- scalaVersion).value}")
+ s"Building Pekko HTTP ${version.value} against Pekko
${PekkoCoreDependency.version} on Scala ${
+ (httpCore /
+ scalaVersion).value
+ }")
(onLoad in Global).value
},
projectInfoVersion := (if (isSnapshot.value) "snapshot" else version.value),
@@ -71,7 +73,7 @@ lazy val userProjects: Seq[ProjectReference] =
List[ProjectReference](
lazy val aggregatedProjects: Seq[ProjectReference] = userProjects ++
List[ProjectReference](
httpTests,
docs,
- // compatibilityTests,
+ compatibilityTests,
httpJmhBench,
billOfMaterials)
lazy val root = Project(
@@ -82,9 +84,8 @@ lazy val root = Project(
.settings(
name := "pekko-http-root",
// Unidoc doesn't like macro definitions
- // compatibilityTests temporarily disabled
- unidocProjectExcludes := Seq(parsing, docs, httpTests, httpJmhBench,
httpScalafix, httpScalafixRules,
- httpScalafixTestInput, httpScalafixTestOutput, httpScalafixTests),
+ unidocProjectExcludes := Seq(parsing, compatibilityTests, docs, httpTests,
httpJmhBench, httpScalafix,
+ httpScalafixRules, httpScalafixTestInput, httpScalafixTestOutput,
httpScalafixTests),
// Support applying macros in unidoc:
scalaMacroSupport,
Compile / headerCreate / unmanagedSources := (baseDirectory.value /
"project").**("*.scala").get)
@@ -434,14 +435,13 @@ lazy val docs = project("docs")
ValidatePR / additionalTasks += Compile / paradox)
.settings(ParadoxSupport.paradoxWithCustomDirectives)
-/*
lazy val compatibilityTests = Project("http-compatibility-tests",
file("http-compatibility-tests"))
- .enablePlugins(NoPublish, NoScala3)
+ .enablePlugins(NoPublish)
.disablePlugins(MimaPlugin)
.addPekkoModuleDependency("pekko-stream", "provided",
PekkoCoreDependency.default)
.settings(
libraryDependencies ++= Seq(
- "org.apache.pekko" %% "pekko-http" % MiMa.latest101Version % "provided",
+ "org.apache.pekko" %% "pekko-http" % "1.0.0" % "provided"
),
(Test / dependencyClasspath) := {
// HACK: We'd like to use `dependsOn(http % "test->compile")` to upgrade
the explicit dependency above to the
@@ -450,7 +450,6 @@ lazy val compatibilityTests =
Project("http-compatibility-tests", file("http-com
(httpTests / Test / fullClasspath).value
}
)
- */
lazy val billOfMaterials = Project("bill-of-materials",
file("bill-of-materials"))
.enablePlugins(BillOfMaterialsPlugin)
diff --git
a/http-compatibility-tests/src/main/scala/example/HostConnectionPoolCompat.scala
b/http-compatibility-tests/src/main/scala/example/HostConnectionPoolCompat.scala
deleted file mode 100644
index abb4cffbd..000000000
---
a/http-compatibility-tests/src/main/scala/example/HostConnectionPoolCompat.scala
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * license agreements; and to You under the Apache License, version 2.0:
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * This file is part of the Apache Pekko project, which was derived from Akka.
- */
-
-/*
- * Copyright (C) 2020-2022 Lightbend Inc. <https://www.lightbend.com>
- */
-
-package example
-
-import org.apache.pekko.http.scaladsl.Http.HostConnectionPool
-
-object HostConnectionPoolCompat {
- def access(hcp: HostConnectionPool): Unit = {
- val theSetup = hcp.setup
- hcp.shutdown()
-
- hcp match {
- // This still works because case class matching does not require an
unapply method
- case HostConnectionPool(setup) => require(setup == theSetup)
- }
-
- require(hcp.productArity == 1)
- require(hcp.productElement(0) == hcp.setup)
- require(hcp.canEqual(hcp))
- require(hcp.equals(hcp))
-
- // Companion object is still there, even if had no good public use
- HostConnectionPool
-
- // This one didn't compile even before (private[http] constructor)
- // new HostConnectionPool(hcp.setup)(null)
-
- // This line compiles but only by giving null as the PoolGateway parameter
which was private before
- // This would crash now
- // HostConnectionPool(hcp.setup)(null)
-
- // These lines compile but require nulling out the gateway parameter
- // They would crash now.
- // hcp.copy(setup = hcp.setup)(null)
- // hcp.copy()(null)
-
- // This compiles but crashes now but is unlikely user code
- // val Some(setup) = HostConnectionPool.unapply(hcp)
- }
-}
diff --git
a/http-compatibility-tests/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormField.scala
b/http-compatibility-tests/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormField.scala
index 71f14f531..fea4688c1 100644
---
a/http-compatibility-tests/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormField.scala
+++
b/http-compatibility-tests/src/main/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormField.scala
@@ -19,15 +19,9 @@ import Directives._
object CompatFormField {
def oneParameter: Directive1[Int] =
formField("num".as[Int])
+
def oneParameterRoute: Route =
oneParameter { num =>
complete(num.toString)
}
-
- def twoParameters: Directive[(String, Int)] =
- formFields(("name", "age".as[Int]))
- def twoParametersRoute: Route =
- twoParameters { (name, age) =>
- complete(s"$name $age")
- }
}
diff --git
a/http-compatibility-tests/src/test/scala/org/apache/pekko/http/scaladsl/HostConnectionPoolCompatSpec.scala
b/http-compatibility-tests/src/test/scala/org/apache/pekko/http/scaladsl/HostConnectionPoolCompatSpec.scala
deleted file mode 100644
index 8e91ead0e..000000000
---
a/http-compatibility-tests/src/test/scala/org/apache/pekko/http/scaladsl/HostConnectionPoolCompatSpec.scala
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * license agreements; and to You under the Apache License, version 2.0:
- *
- * https://www.apache.org/licenses/LICENSE-2.0
- *
- * This file is part of the Apache Pekko project, which was derived from Akka.
- */
-
-/*
- * Copyright (C) 2020-2022 Lightbend Inc. <https://www.lightbend.com>
- */
-
-package org.apache.pekko.http.scaladsl
-
-import org.apache.pekko
-import pekko.http.impl.util.PekkoSpecWithMaterializer
-import pekko.stream.scaladsl.{ Keep, Sink, Source }
-import example.HostConnectionPoolCompat
-
-class HostConnectionPoolCompatSpec extends PekkoSpecWithMaterializer {
- "HostConnectionPool" should {
- "be compatible" in {
- val hcp0 =
- Source.empty
- .viaMat(Http().cachedHostConnectionPool("localhost",
8080))(Keep.right)
- .to(Sink.ignore)
- .run()
-
- val hcp1 =
- Source.empty
- .viaMat(Http().cachedHostConnectionPool("localhost",
8080))(Keep.right)
- .to(Sink.ignore)
- .run()
-
- val hcpOther =
- Source.empty
- .viaMat(Http().newHostConnectionPool("localhost", 8080))(Keep.right)
- .to(Sink.ignore)
- .run()
-
- hcp0 shouldEqual hcp1
- (hcp0 should not).equal(hcpOther)
-
- HostConnectionPoolCompat.access(hcp0)
- }
- }
-}
diff --git
a/http-compatibility-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormFieldSpec.scala
b/http-compatibility-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormFieldSpec.scala
index 0d6f107f8..29dae4430 100644
---
a/http-compatibility-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormFieldSpec.scala
+++
b/http-compatibility-tests/src/test/scala/org/apache/pekko/http/scaladsl/server/directives/CompatFormFieldSpec.scala
@@ -30,18 +30,8 @@ class CompatFormFieldSpec extends RoutingSpec {
responseAs[String] shouldEqual "12"
}
}
- "for two parameters" in {
- val req = Post("/", FormData("name" -> "Aloisia", "age" -> "12"))
- req ~> CompatFormField.twoParameters(echoComplete2) ~> check {
- responseAs[String] shouldEqual "Aloisia 12"
- }
-
- req ~> CompatFormField.twoParametersRoute ~> check {
- responseAs[String] shouldEqual "Aloisia 12"
- }
- }
} else
- "ignore incompatiblity in 2.13" in succeed
+ "ignore incompatibility in 2.13" in succeed
"FormFieldDirectives" should {
"be compatible" should {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]