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

Reply via email to