You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2019/01/17 14:23:04 UTC

[incubator-plc4x] branch develop updated: - Added a new RequirePcap for general libpcap requiring tests

This is an automated email from the ASF dual-hosted git repository.

cdutz pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git


The following commit(s) were added to refs/heads/develop by this push:
     new 1fca054  - Added a new RequirePcap for general libpcap requiring tests
1fca054 is described below

commit 1fca054b89d62a643d30423fcdd1be7c051105e9
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Jan 17 15:23:01 2019 +0100

    - Added a new RequirePcap for general libpcap requiring tests
---
 plc4j/utils/raw-sockets/pom.xml                          |  7 +++++++
 .../plc4x/java/utils/rawsockets/RawIpSocketTest.java     |  2 ++
 .../java/utils/{RequirePcapNg.java => RequirePcap.java}  |  4 ++--
 ...oOldLibpcapVersion.java => RequirePcapCondition.java} | 16 ++--------------
 .../java/org/apache/plc4x/java/utils/RequirePcapNg.java  |  2 +-
 ...ldLibpcapVersion.java => RequirePcapNgCondition.java} |  2 +-
 6 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/plc4j/utils/raw-sockets/pom.xml b/plc4j/utils/raw-sockets/pom.xml
index fd2bc61..9754ce3 100644
--- a/plc4j/utils/raw-sockets/pom.xml
+++ b/plc4j/utils/raw-sockets/pom.xml
@@ -57,6 +57,13 @@
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
+
+    <dependency>
+      <groupId>org.apache.plc4x</groupId>
+      <artifactId>plc4j-utils-wireshark-utils</artifactId>
+      <version>0.4.0-SNAPSHOT</version>
+      <scope>test</scope>
+    </dependency>
   </dependencies>
 
   <build>
diff --git a/plc4j/utils/raw-sockets/src/test/java/org/apache/plc4x/java/utils/rawsockets/RawIpSocketTest.java b/plc4j/utils/raw-sockets/src/test/java/org/apache/plc4x/java/utils/rawsockets/RawIpSocketTest.java
index fca6d62..7377821 100644
--- a/plc4j/utils/raw-sockets/src/test/java/org/apache/plc4x/java/utils/rawsockets/RawIpSocketTest.java
+++ b/plc4j/utils/raw-sockets/src/test/java/org/apache/plc4x/java/utils/rawsockets/RawIpSocketTest.java
@@ -15,6 +15,7 @@
  */
 package org.apache.plc4x.java.utils.rawsockets;
 
+import org.apache.plc4x.java.utils.RequirePcap;
 import org.junit.Ignore;
 import org.junit.Test;
 import org.pcap4j.core.PcapAddress;
@@ -35,6 +36,7 @@ public class RawIpSocketTest {
 
     @Test
     @Ignore("Need to make tests run in Docker container first as this test requires libpcap or the entrie application to be run as 'root'")
+    @RequirePcap
     public void testPingPacket() throws Exception {
         // TODO: cdutz: jenkins won't allow access on the inet device. Maybe try to fix this on a branch.
         assumeThat(System.getenv("PLC4X_BUILD_ON_JENKINS"), is(not(equalToIgnoringCase("true"))));
diff --git a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNg.java b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcap.java
similarity index 92%
copy from plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNg.java
copy to plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcap.java
index 86a6741..2b68c11 100644
--- a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNg.java
+++ b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcap.java
@@ -28,6 +28,6 @@ import java.lang.annotation.Target;
 
 @Target({ ElementType.TYPE, ElementType.METHOD })
 @Retention(RetentionPolicy.RUNTIME)
-@ExtendWith(DisableOnMissingOrTooOldLibpcapVersion.class)
-public @interface RequirePcapNg {
+@ExtendWith(RequirePcapCondition.class)
+public @interface RequirePcap {
 }
diff --git a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/DisableOnMissingOrTooOldLibpcapVersion.java b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapCondition.java
similarity index 68%
copy from plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/DisableOnMissingOrTooOldLibpcapVersion.java
copy to plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapCondition.java
index 3fcc046..a2d5def 100644
--- a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/DisableOnMissingOrTooOldLibpcapVersion.java
+++ b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapCondition.java
@@ -20,7 +20,6 @@
 package org.apache.plc4x.java.utils;
 
 import org.apache.commons.lang3.SystemUtils;
-import org.apache.maven.artifact.versioning.DefaultArtifactVersion;
 import org.junit.jupiter.api.extension.ConditionEvaluationResult;
 import org.junit.jupiter.api.extension.ExecutionCondition;
 import org.junit.jupiter.api.extension.ExtensionContext;
@@ -29,11 +28,10 @@ import org.pcap4j.core.Pcaps;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-public class DisableOnMissingOrTooOldLibpcapVersion implements ExecutionCondition {
+public class RequirePcapCondition implements ExecutionCondition {
 
     @Override
     public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext extensionContext) {
-
         // Mac: "libpcap version 1.8.1 -- Apple version 79.200.4";
         // Linux: ""
         // Windows: "WinPcap version 4.1.3 (packet.dll version 4.1.0.2980), based on libpcap version 1.0 branch 1_0_rel0b (20091008)"
@@ -43,17 +41,7 @@ public class DisableOnMissingOrTooOldLibpcapVersion implements ExecutionConditio
             Matcher matcher = pattern.matcher(libVersion);
             if (matcher.matches()) {
                 String versionString = matcher.group("version");
-                DefaultArtifactVersion curVersion = new DefaultArtifactVersion(versionString);
-                DefaultArtifactVersion minVersion = new DefaultArtifactVersion("1.1.0");
-                if (curVersion.compareTo(minVersion) >= 0) {
-                    return ConditionEvaluationResult.enabled("Found libpcap version " + versionString);
-                } else {
-                    if (SystemUtils.IS_OS_WINDOWS) {
-                        return ConditionEvaluationResult.disabled("Test disabled due to too old WinPcap version. Please install at least version 1.1.0 to support all features. Please install from here: https://sourceforge.net/projects/winpcap413-176/ as this version supports all needed freatures.");
-                    } else {
-                        return ConditionEvaluationResult.disabled("Test disabled due to too old libpcap version. Please install at least version 1.1.0 to support all features.");
-                    }
-                }
+                return ConditionEvaluationResult.enabled("Found libpcap version " + versionString);
             }
         } catch(Exception e) {
             e.printStackTrace();
diff --git a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNg.java b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNg.java
index 86a6741..eb125d5 100644
--- a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNg.java
+++ b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNg.java
@@ -28,6 +28,6 @@ import java.lang.annotation.Target;
 
 @Target({ ElementType.TYPE, ElementType.METHOD })
 @Retention(RetentionPolicy.RUNTIME)
-@ExtendWith(DisableOnMissingOrTooOldLibpcapVersion.class)
+@ExtendWith(RequirePcapNgCondition.class)
 public @interface RequirePcapNg {
 }
diff --git a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/DisableOnMissingOrTooOldLibpcapVersion.java b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNgCondition.java
similarity index 97%
rename from plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/DisableOnMissingOrTooOldLibpcapVersion.java
rename to plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNgCondition.java
index 3fcc046..3e4cdbc 100644
--- a/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/DisableOnMissingOrTooOldLibpcapVersion.java
+++ b/plc4j/utils/wireshark-utils/src/main/java/org/apache/plc4x/java/utils/RequirePcapNgCondition.java
@@ -29,7 +29,7 @@ import org.pcap4j.core.Pcaps;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-public class DisableOnMissingOrTooOldLibpcapVersion implements ExecutionCondition {
+public class RequirePcapNgCondition implements ExecutionCondition {
 
     @Override
     public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext extensionContext) {