This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new b3800fccec test(bacnet): fix pcap download
b3800fccec is described below
commit b3800fccece813b14115481e9534a9f9ada9fbdc
Author: Sebastian Rühl <[email protected]>
AuthorDate: Mon Oct 2 11:59:20 2023 +0200
test(bacnet): fix pcap download
---
.../BACnetParserSerializerTestSuiteGenerator.java | 20 ++++++++++++++++++--
.../ParserSerializerTestsuiteGeneratorSpec.groovy | 19 ++++++++++++++++---
.../src/test/resources/bacnet-stack-services.cap | Bin 14514 -> 0 bytes
3 files changed, 34 insertions(+), 5 deletions(-)
diff --git
a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/BACnetParserSerializerTestSuiteGenerator.java
b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/BACnetParserSerializerTestSuiteGenerator.java
index a6a2f3ce7f..8f9539de60 100644
---
a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/BACnetParserSerializerTestSuiteGenerator.java
+++
b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/BACnetParserSerializerTestSuiteGenerator.java
@@ -18,16 +18,32 @@
*/
package org.apache.plc4x.java.bacnetip;
+import org.apache.commons.io.FileUtils;
import org.apache.plc4x.java.bacnetip.readwrite.BVLC;
import org.apache.plc4x.test.generator.ParserSerializerTestsuiteGenerator;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.nio.file.FileSystems;
import java.nio.file.Path;
public class BACnetParserSerializerTestSuiteGenerator {
- public static void main(String... args) {
- String pcapFile =
Path.of("plc4j/utils/test-generator/src/test/resources/bacnet-stack-services.cap").toAbsolutePath().toString();
+ public static void main(String... args) throws Exception {
+ String pcapFile = DownloadAndCache("bacnet-stack-services.cap");
String xmlTestSuiteFile =
Path.of("protocols/bacnetip/src/test/resources/protocols/bacnet/ParserSerializerTestsuite.xml").toAbsolutePath().toString();
ParserSerializerTestsuiteGenerator.main("-tBACnet/IP", "-pbacnetip",
BVLC.class.getName(), pcapFile, xmlTestSuiteFile);
}
+
+ private static String DownloadAndCache(String file) throws IOException {
+ String tempDirectory = FileUtils.getTempDirectoryPath();
+ File pcapFile = FileSystems.getDefault().getPath(tempDirectory,
RandomPackagesTest.class.getSimpleName(), file).toFile();
+ FileUtils.createParentDirectories(pcapFile);
+ if (!pcapFile.exists()) {
+ URL source = new URL("https://kargs.net/captures/" + file);
+ FileUtils.copyURLToFile(source, pcapFile);
+ }
+ return pcapFile.getAbsolutePath();
+ }
}
diff --git
a/plc4j/utils/test-generator/src/test/groovy/org/apache/plc4x/test/generator/ParserSerializerTestsuiteGeneratorSpec.groovy
b/plc4j/utils/test-generator/src/test/groovy/org/apache/plc4x/test/generator/ParserSerializerTestsuiteGeneratorSpec.groovy
index cb4efb914d..1508e1b175 100644
---
a/plc4j/utils/test-generator/src/test/groovy/org/apache/plc4x/test/generator/ParserSerializerTestsuiteGeneratorSpec.groovy
+++
b/plc4j/utils/test-generator/src/test/groovy/org/apache/plc4x/test/generator/ParserSerializerTestsuiteGeneratorSpec.groovy
@@ -21,6 +21,8 @@ package org.apache.plc4x.test.generator
import org.opentest4j.TestAbortedException
import spock.lang.IgnoreIf
+import java.nio.file.FileSystems
+
import static org.xmlunit.matchers.CompareMatcher.isIdenticalTo
import static spock.util.matcher.HamcrestSupport.*
import spock.lang.Specification
@@ -65,12 +67,11 @@ class ParserSerializerTestsuiteGeneratorSpec extends
Specification {
}
if (!new File('/bin/sh').canExecute()) throw new
TestAbortedException("No bin sh")
def testSuitePath =
Files.createTempFile("parser-serializer-testsuite", ".xml")
- URL pcap =
ParserSerializerTestsuiteGeneratorSpec.getResource("/bacnet-stack-services.cap");
- File pcapFile = new File(pcap.toURI());
+ def pcapFile = DownloadAndCache("bacnet-stack-services.cap")
ParserSerializerTestsuiteGenerator.exitFunc = (it) -> println("exiting
with $it")
when:
- ParserSerializerTestsuiteGenerator.main("-d", "-t TODO: name me",
"-l", DummyMessageRootType.class.name, pcapFile.path, testSuitePath.toString())
+ ParserSerializerTestsuiteGenerator.main("-d", "-t TODO: name me",
"-l", DummyMessageRootType.class.name, pcapFile, testSuitePath.toString())
then:
assert Files.exists(testSuitePath)
@@ -79,4 +80,16 @@ class ParserSerializerTestsuiteGeneratorSpec extends
Specification {
def actual = testSuitePath.toFile().text
that actual,
isIdenticalTo(expected).ignoreComments().ignoreWhitespace()
}
+
+ private String DownloadAndCache(String file) throws IOException {
+ String tempDirectory = FileUtils.getTempDirectoryPath();
+ File pcapFile = FileSystems.getDefault().getPath(tempDirectory,
RandomPackagesTest.class.getSimpleName(), file).toFile();
+ FileUtils.createParentDirectories(pcapFile);
+ if (!pcapFile.exists()) {
+ URL source = new URL("https://kargs.net/captures/" + file);
+ LOGGER.info("Downloading {}", source);
+ FileUtils.copyURLToFile(source, pcapFile);
+ }
+ return pcapFile.getAbsolutePath();
+ }
}
diff --git
a/plc4j/utils/test-generator/src/test/resources/bacnet-stack-services.cap
b/plc4j/utils/test-generator/src/test/resources/bacnet-stack-services.cap
deleted file mode 100644
index 94b9290db0..0000000000
Binary files
a/plc4j/utils/test-generator/src/test/resources/bacnet-stack-services.cap and
/dev/null differ