summaryrefslogtreecommitdiff
path: root/groot-tests
diff options
context:
space:
mode:
authordoufenghu <[email protected]>2023-12-03 14:22:32 +0800
committerdoufenghu <[email protected]>2023-12-03 14:22:32 +0800
commitffa3ed3dded18d086e72046e89b72b7a0dd60e7f (patch)
tree59a97f1bfa5cb75e28cc1071e35b9a7fc15f4d7e /groot-tests
parent5f21adf326bd9c1db7f1bb9faf65d63643c596b9 (diff)
[feature][docs] add readme.md for groot stream platform
Diffstat (limited to 'groot-tests')
-rw-r--r--groot-tests/pom.xml20
-rw-r--r--groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/EvalExpressionResolverTest.java81
-rw-r--r--groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/CalcCodeConvertorTest.java94
-rw-r--r--groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/EvalCodeGeneratorTest.java34
4 files changed, 20 insertions, 209 deletions
diff --git a/groot-tests/pom.xml b/groot-tests/pom.xml
new file mode 100644
index 0000000..2c39a58
--- /dev/null
+++ b/groot-tests/pom.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>com.geedgenetworks</groupId>
+ <artifactId>groot-stream</artifactId>
+ <version>${revision}</version>
+ </parent>
+
+ <artifactId>groot-tests</artifactId>
+ <name>Groot : Tests </name>
+ <properties>
+ <maven.compiler.source>8</maven.compiler.source>
+ <maven.compiler.target>8</maven.compiler.target>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+</project> \ No newline at end of file
diff --git a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/EvalExpressionResolverTest.java b/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/EvalExpressionResolverTest.java
deleted file mode 100644
index e6b8ff2..0000000
--- a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/EvalExpressionResolverTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-package com.geedgenetworks.core.udf.test;
-
-import com.geedgenetworks.core.expressions.*;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import java.math.BigDecimal;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-class EvalExpressionResolverTest {
-
- private static EvalExpressionResolver resolver;
-
- @BeforeAll
- static void setUp() {
- resolver = new EvalExpressionResolver();
- }
-
- @Test
- void testValueExpression() {
- // constant
- assertEquals(resolver.resolve("'name'"), new ValueExpression.StringConstantExpression("name"));
- assertEquals(resolver.resolve("5"), new ValueExpression.NumberConstantExpression(5));
- assertEquals(resolver.resolve("5L"), new ValueExpression.NumberConstantExpression(5L));
- assertEquals(resolver.resolve("5D"), new ValueExpression.NumberConstantExpression((double) 5L));
- assertEquals(resolver.resolve("5BD"), new ValueExpression.NumberConstantExpression(BigDecimal.valueOf(5)));
- assertEquals(resolver.resolve("TRUE"), new ValueExpression.BooleanConstantExpression(true));
- assertEquals(resolver.resolve("FALSE"), new ValueExpression.BooleanConstantExpression(false));
-
- // variable
- assertEquals(resolver.resolve("common_client_ip"),
- new ValueExpression.FieldRefExpression("common_client_ip"));
- assertEquals(resolver.resolve("common_client_port"),
- new ValueExpression.FieldRefExpression("common_client_port"));
- }
-
- @Test
- void testConditionExpression() {
-
- assertEquals(
- resolver.resolve("common_client_port > common_server_port ? common_c2s_pkt_num : common_s2c_pkt_num"),
- new ValueExpression.TernaryExpression(
- new BooleanExpression.ComparisonExpression(ComparisonOperator.GT,
- new ValueExpression.FieldRefExpression("common_client_port"),
- new ValueExpression.FieldRefExpression("common_server_port")),
- new ValueExpression.FieldRefExpression("common_c2s_pkt_num"),
- new ValueExpression.FieldRefExpression("common_s2c_pkt_num"))
- );
- assertEquals(
- resolver.resolve("common_client_port > common_server_port " +
- "? 'C2S:' + common_c2s_pkt_num : 'S2C:' + common_s2c_pkt_num"),
- new ValueExpression.TernaryExpression(
- new BooleanExpression.ComparisonExpression(ComparisonOperator.GT,
- new ValueExpression.FieldRefExpression("common_client_port"),
- new ValueExpression.FieldRefExpression("common_server_port")),
- new ValueExpression.ArithmeticExpression(ArithmeticOperator.PLUS,
- new ValueExpression.StringConstantExpression("C2S:"),
- new ValueExpression.FieldRefExpression("common_c2s_pkt_num")),
- new ValueExpression.ArithmeticExpression(ArithmeticOperator.PLUS,
- new ValueExpression.StringConstantExpression("S2C:"),
- new ValueExpression.FieldRefExpression("common_s2c_pkt_num")))
- );
- assertEquals(
- resolver.resolve("common_c2s_pkt_num > common_s2c_pkt_num " +
- "& common_c2s_byte_num > common_s2c_byte_num ? common_client_port : common_server_port"),
- new ValueExpression.TernaryExpression(
- new BooleanExpression.PredicateExpression(PredicateOperator.AND,
- new BooleanExpression.ComparisonExpression(ComparisonOperator.GT,
- new ValueExpression.FieldRefExpression("common_c2s_pkt_num"),
- new ValueExpression.FieldRefExpression("common_s2c_pkt_num")),
- new BooleanExpression.ComparisonExpression(ComparisonOperator.GT,
- new ValueExpression.FieldRefExpression("common_c2s_byte_num"),
- new ValueExpression.FieldRefExpression("common_s2c_byte_num"))),
- new ValueExpression.FieldRefExpression("common_client_port"),
- new ValueExpression.FieldRefExpression("common_server_port"))
- );
- }
-
-
-} \ No newline at end of file
diff --git a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/CalcCodeConvertorTest.java b/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/CalcCodeConvertorTest.java
deleted file mode 100644
index fc842e7..0000000
--- a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/CalcCodeConvertorTest.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.geedgenetworks.core.udf.test.codegen;
-
-
-import com.geedgenetworks.core.expressions.InvalidProgramException;
-import com.geedgenetworks.core.expressions.SyntaxErrorException;
-import com.geedgenetworks.core.expressions.codegen.CalcCodeConvertor;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-class CalcCodeConvertorTest {
-
- private static Map<String, Object> origin;
-
- @BeforeAll
- static void setUp() {
- origin = new HashMap<>();
- origin.put("common_schema_type", "RTP");
- origin.put("common_sessions", 1);
- origin.put("common_stream_dir", 3);
- origin.put("common_vsys_id", 24);
-
- origin.put("common_server_ip", "172.17.200.50");
- origin.put("common_server_port", 36682);
- origin.put("common_s2c_byte_num", 7570);
- origin.put("common_s2c_pkt_num", 5);
-
- origin.put("common_client_ip", "172.17.201.16");
- origin.put("common_client_port", 42924);
- origin.put("common_c2s_byte_num", 1834);
- origin.put("common_c2s_pkt_num", 6);
-
- origin.put("common_out_dest_mac", "02:fc:08:dc:92:d7");
- origin.put("common_out_src_mac", "02:fc:08:dc:91:c3");
- }
-
- @Test
- void testValueExpression() throws Exception {
- // constant
- assertEquals(CalcCodeConvertor.convert("'name'").eval(origin), "name");
- assertEquals(CalcCodeConvertor.convert("5").eval(origin), 5);
- assertEquals(CalcCodeConvertor.convert("5L").eval(origin), 5L);
- assertEquals(CalcCodeConvertor.convert("5D").eval(origin), (double) 5L);
- assertEquals(CalcCodeConvertor.convert("5BD").eval(origin), BigDecimal.valueOf(5));
- assertEquals(CalcCodeConvertor.convert("TRUE").eval(origin), true);
- assertEquals(CalcCodeConvertor.convert("FALSE").eval(origin), false);
-
- // variable
- assertEquals(CalcCodeConvertor.convert("common_client_ip").eval(origin),
- origin.get("common_client_ip"));
- assertEquals(CalcCodeConvertor.convert("common_client_port").eval(origin),
- origin.get("common_client_port"));
- }
-
- @Test
- void testConditionExpression() throws Exception {
- int commonClientPort = (int) origin.get("common_client_port");
- int commonServerPort = (int) origin.get("common_server_port");
- int commonC2sPktNum = (int) origin.get("common_c2s_pkt_num");
- int commonS2cPktNum = (int) origin.get("common_s2c_pkt_num");
- int commonC2sByteNum = (int) origin.get("common_c2s_byte_num");
- int commonS2cByteNum = (int) origin.get("common_s2c_byte_num");
- assertEquals(
- CalcCodeConvertor.convert("common_client_port > common_server_port " +
- "? common_c2s_pkt_num : common_s2c_pkt_num").eval(origin),
- commonClientPort > commonServerPort ? commonC2sPktNum : commonS2cPktNum);
- assertEquals(
- CalcCodeConvertor.convert("common_client_port > common_server_port " +
- "? 'C2S:' + common_c2s_pkt_num : 'S2C:' + common_s2c_pkt_num").eval(origin),
- commonClientPort > commonServerPort ? "C2S:" + commonC2sPktNum : "S2C:" + commonS2cPktNum);
- assertEquals(
- CalcCodeConvertor.convert("common_c2s_pkt_num > common_s2c_pkt_num " +
- "& common_c2s_byte_num > common_s2c_byte_num ? common_client_port : common_server_port").eval(origin),
- commonC2sPktNum > commonS2cPktNum
- && commonC2sByteNum > commonS2cByteNum ? commonClientPort : commonServerPort
- );
- }
-
- @Test
- void testError() {
- assertThrows(SyntaxErrorException.class,
- () -> CalcCodeConvertor.convert("common_c2s_pkt_num > common_s2c_pkt_num"));
- assertThrows(SyntaxErrorException.class,
- () -> CalcCodeConvertor.convert("2 = 3"));
- assertThrows(InvalidProgramException.class,
- () -> CalcCodeConvertor.convert("common_client_ip - 10"));
- }
-} \ No newline at end of file
diff --git a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/EvalCodeGeneratorTest.java b/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/EvalCodeGeneratorTest.java
deleted file mode 100644
index 6a0d4d2..0000000
--- a/groot-tests/src/test/java/com/geedgenetworks/core/udf/expressions/codegen/EvalCodeGeneratorTest.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.geedgenetworks.core.udf.test.codegen;
-
-
-import com.geedgenetworks.core.expressions.EvalExpressionResolver;
-import com.geedgenetworks.core.expressions.Expression;
-import com.geedgenetworks.core.expressions.codegen.CodeGeneratorContext;
-import com.geedgenetworks.core.expressions.codegen.EvalCodeGenerator;
-import org.apache.commons.lang3.StringUtils;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-class EvalCodeGeneratorTest {
-
- private static EvalExpressionResolver resolver;
-
- @BeforeAll
- static void setUp() {
- resolver = new EvalExpressionResolver();
- }
-
- @Test
- void testCodeGen() {
- Expression expression = resolver.resolve("common_client_port > common_server_port " +
- " ? 'C2S:' + common_c2s_pkt_num : 'S2C:' + common_s2c_pkt_num");
- CodeGeneratorContext context = new CodeGeneratorContext();
- expression.accept(new EvalCodeGenerator(context));
- String memberCode = context.reuseMemberCode();
- assertTrue(StringUtils.contains(memberCode, "C2S:"));
- assertTrue(StringUtils.contains(memberCode, "S2C:"));
- }
-
-}