You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2021/01/12 13:05:39 UTC
[ignite-3] branch gg-13618-asm updated: Minor.
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch gg-13618-asm
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/gg-13618-asm by this push:
new 1acbbb6 Minor.
1acbbb6 is described below
commit 1acbbb6f88ddb25692b41f6bbc56880bbfb39929
Author: Andrew Mashenkov <an...@gmail.com>
AuthorDate: Tue Jan 12 16:05:11 2021 +0300
Minor.
---
modules/commons/pom.xml | 15 +++++++++
.../presto/bytecode/DumpBytecodeVisitor.java | 8 +++--
.../facebook/presto/bytecode/MethodDefinition.java | 2 +-
.../expression/BytecodeExpressionAssertions.java | 37 ++++++++++++++++++++--
.../expression/TestArrayBytecodeExpressions.java | 6 ++--
5 files changed, 60 insertions(+), 8 deletions(-)
diff --git a/modules/commons/pom.xml b/modules/commons/pom.xml
index 21fba2c..967420c 100644
--- a/modules/commons/pom.xml
+++ b/modules/commons/pom.xml
@@ -96,4 +96,19 @@
<version>${javax.annotation.api.version}</version>
</dependency>
</dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>src/main/java/com/facebook/presto/bytecode/ClassInfo.java</exclude>
+ <exclude>src/main/java/com/facebook/presto/bytecode/ClassInfoLoader.java</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git a/modules/commons/src/main/java/com/facebook/presto/bytecode/DumpBytecodeVisitor.java b/modules/commons/src/main/java/com/facebook/presto/bytecode/DumpBytecodeVisitor.java
index 7e07883..ab0417b 100644
--- a/modules/commons/src/main/java/com/facebook/presto/bytecode/DumpBytecodeVisitor.java
+++ b/modules/commons/src/main/java/com/facebook/presto/bytecode/DumpBytecodeVisitor.java
@@ -601,13 +601,17 @@ public class DumpBytecodeVisitor
public void print()
{
- printLine(parts.stream().map(Object::toString).collect(Collectors.joining(separator)));
+ printLine(parts.stream().map(this::toCharSequence).collect(Collectors.joining(separator)));
+ }
+
+ private CharSequence toCharSequence(Object p) {
+ return p instanceof CharSequence ? (CharSequence)p : p.toString();
}
@Override
public String toString()
{
- return parts.stream().map(Object::toString).collect(Collectors.joining(separator));
+ return parts.stream().map(this::toCharSequence).collect(Collectors.joining(separator));
}
}
}
diff --git a/modules/commons/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java b/modules/commons/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java
index c5eae33..0297d9b 100644
--- a/modules/commons/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java
+++ b/modules/commons/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java
@@ -228,7 +228,7 @@ public class MethodDefinition {
public String toSourceString() {
StringBuilder sb = new StringBuilder();
- sb.append(access.stream().map(Access::toString).collect(Collectors.joining(", ")))
+ sb.append(access.stream().map(Access::toString).collect(Collectors.joining(" ")))
.append(' ');
sb.append(returnType.getJavaClassName()).append(' ');
sb.append(name).append('(');
diff --git a/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/BytecodeExpressionAssertions.java b/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/BytecodeExpressionAssertions.java
index 4b45edc..8aa0b03 100644
--- a/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/BytecodeExpressionAssertions.java
+++ b/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/BytecodeExpressionAssertions.java
@@ -18,6 +18,8 @@ import com.facebook.presto.bytecode.ClassDefinition;
import com.facebook.presto.bytecode.MethodDefinition;
import com.facebook.presto.bytecode.ParameterizedType;
import com.facebook.presto.bytecode.Scope;
+import java.lang.reflect.Array;
+import java.util.Objects;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Function;
@@ -31,6 +33,7 @@ import static com.facebook.presto.bytecode.BytecodeUtils.makeClassName;
import static com.facebook.presto.bytecode.ClassGenerator.classGenerator;
import static com.facebook.presto.bytecode.ParameterizedType.type;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
public final class BytecodeExpressionAssertions {
private BytecodeExpressionAssertions() {
@@ -76,7 +79,7 @@ public final class BytecodeExpressionAssertions {
public static void assertBytecodeNode(BytecodeNode node, ParameterizedType returnType, Object expected,
Optional<ClassLoader> parentClassLoader)
throws Exception {
- assertEquals(execute(context -> node, returnType, parentClassLoader), expected);
+ assertValueEquals(execute(context -> node, returnType, parentClassLoader), expected);
}
public static void assertBytecodeNode(Function<Scope, BytecodeNode> nodeGenerator, ParameterizedType returnType,
@@ -88,7 +91,7 @@ public final class BytecodeExpressionAssertions {
public static void assertBytecodeNode(Function<Scope, BytecodeNode> nodeGenerator, ParameterizedType returnType,
Object expected, Optional<ClassLoader> parentClassLoader)
throws Exception {
- assertEquals(execute(nodeGenerator, returnType, parentClassLoader), expected);
+ assertValueEquals(execute(nodeGenerator, returnType, parentClassLoader), expected);
}
public static Object execute(Function<Scope, BytecodeNode> nodeGenerator, ParameterizedType returnType,
@@ -115,4 +118,34 @@ public final class BytecodeExpressionAssertions {
.getMethod("test")
.invoke(null);
}
+
+ /**
+ * returns not equal reason or null if equal
+ **/
+ private static void assertValueEquals(Object actual, Object expected) {
+ if (expected == null || !expected.getClass().isArray()) {
+ assertEquals(actual, expected);
+
+ return;
+ }
+
+ if (null == expected)
+ fail("expected a null array, but not null found");
+
+ if (null == actual) {
+ fail("expected not null array, but null found");
+ }
+
+ int expectedLength = Array.getLength(expected);
+ if (expectedLength != Array.getLength(actual)) {
+ fail("array lengths are not the same");
+ }
+ for (int i = 0; i < expectedLength; i++) {
+ Object _actual = Array.get(actual, i);
+ Object _expected = Array.get(expected, i);
+
+ if (!Objects.equals(_expected, _actual))
+ fail("(values at index " + i + " are not the same)");
+ }
+ }
}
diff --git a/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/TestArrayBytecodeExpressions.java b/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/TestArrayBytecodeExpressions.java
index 93631f7..d469dde 100644
--- a/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/TestArrayBytecodeExpressions.java
+++ b/modules/commons/src/test/java/com/facebook/presto/bytecode/expression/TestArrayBytecodeExpressions.java
@@ -44,12 +44,12 @@ import static com.facebook.presto.bytecode.expression.BytecodeExpressions.invoke
import static com.facebook.presto.bytecode.expression.BytecodeExpressions.newArray;
public class TestArrayBytecodeExpressions {
- private final DynamicClassLoader classLoader = new DynamicClassLoader(TestArrayBytecodeExpressions.class.getClassLoader());
+ private static final DynamicClassLoader classLoader = new DynamicClassLoader(TestArrayBytecodeExpressions.class.getClassLoader());
private static final ClassDefinition classDefinition = new ClassDefinition(a(PUBLIC, FINAL), "DummyClass", type(Object.class));
- private final Map<Class<?>, MethodDefinition> typeMethodMap = new HashMap<>();
+ private static final Map<Class<?>, MethodDefinition> typeMethodMap = new HashMap<>();
@BeforeAll
- public void setUp() {
+ public static void setUp() {
for (Class<?> aClass : List.of(boolean[].class, char[].class, float[].class, double[].class, byte[].class, short[].class, int[].class, long[].class, String[].class)) {
MethodDefinition methodDefinition = defineSetAndGetMethod(aClass);
typeMethodMap.put(aClass, methodDefinition);