diff --git a/pom.xml b/pom.xml
index a772dd8..4d0a06e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -154,6 +154,9 @@
brief
false
+
+
@@ -265,6 +268,10 @@
META-INF/*.DSA
META-INF/*.RSA
META-INF/MANIFEST.MF
+
+ module-info.class
+ META-INF/versions/*/module-info.class
diff --git a/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/CollisionAvoidanceTest.scala b/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/CollisionAvoidanceTest.scala
index 69aec79..9e10960 100644
--- a/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/CollisionAvoidanceTest.scala
+++ b/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/CollisionAvoidanceTest.scala
@@ -135,6 +135,7 @@ class CollisionAvoidanceTest extends AnyFunSuite with Matchers {
case ProcedureOutcome.Passed => (true, "")
case ProcedureOutcome.Failed(why) => (false, why)
case ProcedureOutcome.Skipped(why) => (false, why)
+ case ProcedureOutcome.Excluded(why) => (false, why)
}
test("a DUT that backs off as it should passes, at both settings, which are restored") {
diff --git a/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/EventRulesTest.scala b/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/EventRulesTest.scala
index 651daf2..7f52100 100644
--- a/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/EventRulesTest.scala
+++ b/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/EventRulesTest.scala
@@ -110,11 +110,12 @@ class EventRulesTest extends AnyFunSuite with Matchers {
List(Revisions.v3_1r1.elements("8.14.2m").asInstanceOf[io.stepfunc.dnp3c.conformance.api.TestProcedure])
an[ConfigurationException] should be thrownBy Revisions.v3_1r1.validate(Options.from(base), test)
Revisions.v3_1r1.validate(
- Options.from(base + (TimeSyncOptions.timeToUnsynchronizedMs.id -> "0") +
- (
- io.stepfunc.dnp3c.conformance.api.options.AnalogInputOptions.valueReturnDeadband.id -> "10",
- io.stepfunc.dnp3c.conformance.api.options.ClassOptions.class1.binaryInputs.id -> "0",
- io.stepfunc.dnp3c.conformance.api.options.ClassOptions.class2.binaryInputs.id -> "1, 2")),
+ Options.from(base ++ Map(
+ TimeSyncOptions.timeToUnsynchronizedMs.id -> "0",
+ io.stepfunc.dnp3c.conformance.api.options.AnalogInputOptions.valueReturnDeadband.id -> "10",
+ io.stepfunc.dnp3c.conformance.api.options.ClassOptions.class1.binaryInputs.id -> "0",
+ io.stepfunc.dnp3c.conformance.api.options.ClassOptions.class2.binaryInputs.id -> "1, 2"
+ )),
test
) should
equal(2)
diff --git a/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/UnsolicitedNetworkTest.scala b/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/UnsolicitedNetworkTest.scala
index ecb4f76..780b902 100644
--- a/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/UnsolicitedNetworkTest.scala
+++ b/src/test/scala/io/stepfunc/dnp3c/conformance/v31r1/UnsolicitedNetworkTest.scala
@@ -87,12 +87,13 @@ class UnsolicitedNetworkTest extends AnyFunSuite with Matchers {
case c: UdpConnection =>
val overUdp = setup.mode != NetworkMode.Tcp && (solicited || !tcpOpen || udpAfterTcp)
overUdp &&
- (if (solicited) setup.udpResponses match {
- case UdpDestination.Fixed(p) if !dataTo20000 => port(c) == p
- case _ if dataTo20000 => port(c) == 20000
- case UdpDestination.OriginatingPort => true
- }
- else port(c) == destination(isNull))
+ (if (!solicited) port(c) == destination(isNull)
+ else if (dataTo20000) port(c) == 20000
+ else
+ setup.udpResponses match {
+ case UdpDestination.Fixed(p) => port(c) == p
+ case UdpDestination.OriginatingPort => true
+ })
}
override def connect(c: Connection, keep: Boolean): InetSocketAddress = {