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 = {