summaryrefslogtreecommitdiffstats
path: root/qadevOOo/runner/lib
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2015-10-22 12:39:54 +0200
committerStephan Bergmann <sbergman@redhat.com>2015-10-22 12:53:27 +0200
commitc546fbca07b0085f569d72f21ed0b43e4c49e50c (patch)
treed70ae0ea0d2759bb2bf21dc0f6e9fed7c4c7a375 /qadevOOo/runner/lib
parentA "workaround to CodeWarrior's compiler bug" is probably not needed anymore (diff)
downloadcore-c546fbca07b0085f569d72f21ed0b43e4c49e50c.tar.gz
core-c546fbca07b0085f569d72f21ed0b43e4c49e50c.zip
Print content of arrays and UNO structs
Change-Id: Ib585408c26e14b83e896861c2793ff3229dba7d1
Diffstat (limited to 'qadevOOo/runner/lib')
-rw-r--r--qadevOOo/runner/lib/MultiPropertyTest.java38
1 files changed, 37 insertions, 1 deletions
diff --git a/qadevOOo/runner/lib/MultiPropertyTest.java b/qadevOOo/runner/lib/MultiPropertyTest.java
index 57a82fff86be..ac17634e03fc 100644
--- a/qadevOOo/runner/lib/MultiPropertyTest.java
+++ b/qadevOOo/runner/lib/MultiPropertyTest.java
@@ -28,7 +28,10 @@ import com.sun.star.lang.IllegalArgumentException;
import com.sun.star.lang.WrappedTargetException;
import com.sun.star.uno.UnoRuntime;
+import java.lang.reflect.Array;
+import java.lang.reflect.Field;
import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
import util.ValueChanger;
import util.ValueComparer;
@@ -570,6 +573,39 @@ public class MultiPropertyTest extends MultiMethodTest
*/
protected String toString(Object obj)
{
- return obj == null ? "null" : obj.toString();
+ if (obj == null) {
+ return "null";
+ }
+ StringBuilder s = new StringBuilder(obj.toString());
+ if (obj.getClass().isArray()) {
+ int n = Array.getLength(obj);
+ s.append('[').append(n).append("]{");
+ for (int i = 0; i != n; ++i) {
+ if (i != 0) {
+ s.append(", ");
+ }
+ s.append(toString(Array.get(obj, i)));
+ }
+ s.append('}');
+ } else if (ValueChanger.isStructure(obj)) {
+ s.append('{');
+ Field[] fields = obj.getClass().getFields();
+ boolean first = true;
+ for (int i = 0; i != fields.length; ++i) {
+ if ((fields[i].getModifiers() & Modifier.STATIC) == 0) {
+ if (!first) {
+ s.append(", ");
+ }
+ first = false;
+ try {
+ s.append(toString(fields[i].get(obj)));
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException("unexpected " + e, e);
+ }
+ }
+ }
+ s.append('}');
+ }
+ return s.toString();
}
}