This is an automated email from the ASF dual-hosted git repository. shuber pushed a commit to branch unomi-1.5.x in repository https://gitbox.apache.org/repos/asf/unomi.git
commit 9e18dd4e42ada9a463e6af11cdd22ce7147cdd93 Author: sergehuber <[email protected]> AuthorDate: Sun Jul 12 10:10:57 2020 +0200 Fix compilation issue in Windows (cherry picked from commit 1f0b9f86bc37701adb9e939015db759ec1b0131f) --- .../conditions/PropertyConditionEvaluatorTest.java | 26 ++++++++++++---------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java b/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java index dff90fb..05ac126 100644 --- a/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java +++ b/plugins/baseplugin/src/test/java/org/apache/unomi/plugins/baseplugin/conditions/PropertyConditionEvaluatorTest.java @@ -44,10 +44,10 @@ public class PropertyConditionEvaluatorTest { public static final Date SESSION_LAST_EVENT_DATE = new Date(); public static final int THREAD_POOL_SIZE = 300; public static final int WORKER_COUNT = 500000; - private static PropertyConditionEvaluator propertyConditionEvaluator = new PropertyConditionEvaluator(); - private static Event mockEvent = generateMockEvent(); - private static Profile mockProfile = generateMockProfile(); - private static Session mockSession = generateMockSession(); + private static final PropertyConditionEvaluator propertyConditionEvaluator = new PropertyConditionEvaluator(); + private static final Event mockEvent = generateMockEvent(); + private static final Profile mockProfile = generateMockProfile(); + private static final Session mockSession = generateMockSession(); @Test public void testHardcodedEvaluator() { @@ -117,30 +117,32 @@ public class PropertyConditionEvaluatorTest { if (vulnFile.exists()) { vulnFile.delete(); } + String vulnFileCanonicalPath = vulnFile.getCanonicalPath(); + vulnFileCanonicalPath = vulnFileCanonicalPath.replace("\\", "\\\\"); // this is required for Windows support try { - propertyConditionEvaluator.getOGNLPropertyValue(mockEvent, "@java.lang.Runtime@getRuntime().exec('touch " + vulnFile.getCanonicalPath() + "')"); + propertyConditionEvaluator.getOGNLPropertyValue(mockEvent, "@java.lang.Runtime@getRuntime().exec('touch " + vulnFileCanonicalPath + "')"); } catch (RuntimeException | MethodFailedException re) { // we ignore these exceptions as they are expected. } - assertFalse("Vulnerability successfully executed ! File created at " + vulnFile.getCanonicalPath(), vulnFile.exists()); + assertFalse("Vulnerability successfully executed ! File created at " + vulnFileCanonicalPath, vulnFile.exists()); try { - propertyConditionEvaluator.getOGNLPropertyValue(mockEvent, "(#cmd='touch " + vulnFile.getCanonicalPath() + "').(#cmds={'bash','-c',#cmd}).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start())"); + propertyConditionEvaluator.getOGNLPropertyValue(mockEvent, "(#cmd='touch " + vulnFileCanonicalPath + "').(#cmds={'bash','-c',#cmd}).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start())"); } catch (RuntimeException | MethodFailedException re) { // we ignore these exceptions as they are expected. } vulnFile = new File("target/vuln-file.txt"); - assertFalse("Vulnerability successfully executed ! File created at " + vulnFile.getCanonicalPath(), vulnFile.exists()); + assertFalse("Vulnerability successfully executed ! File created at " + vulnFileCanonicalPath, vulnFile.exists()); try { - propertyConditionEvaluator.getOGNLPropertyValue(mockEvent, "(#cmd='touch " + vulnFile.getCanonicalPath() + "').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start())"); + propertyConditionEvaluator.getOGNLPropertyValue(mockEvent, "(#cmd='touch " + vulnFileCanonicalPath + "').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start())"); } catch (RuntimeException | MethodFailedException re) { // we ignore these exceptions as they are expected. } vulnFile = new File("target/vuln-file.txt"); - assertFalse("Vulnerability successfully executed ! File created at " + vulnFile.getCanonicalPath(), vulnFile.exists()); + assertFalse("Vulnerability successfully executed ! File created at " + vulnFileCanonicalPath, vulnFile.exists()); } private void runHardcodedTest(int workerCount, ExecutorService executorService) throws InterruptedException { - List<Callable<Object>> todo = new ArrayList<Callable<Object>>(workerCount); + List<Callable<Object>> todo = new ArrayList<>(workerCount); long startTime = System.currentTimeMillis(); for (int i = 0; i < workerCount; i++) { todo.add(new HardcodedWorker()); @@ -151,7 +153,7 @@ public class PropertyConditionEvaluatorTest { } private void runOGNLTest(int workerCount, ExecutorService executorService) throws InterruptedException { - List<Callable<Object>> todo = new ArrayList<Callable<Object>>(workerCount); + List<Callable<Object>> todo = new ArrayList<>(workerCount); long startTime = System.currentTimeMillis(); for (int i = 0; i < workerCount; i++) { todo.add(new OGNLWorker());
