solenv/gbuild/JunitTest.mk | 7 +- solenv/gbuild/platform/unxgcc_gdbforjunit.sh | 35 +++++++--- unotest/source/java/org/openoffice/test/OfficeConnection.java | 15 ++++ 3 files changed, 45 insertions(+), 12 deletions(-)
New commits: commit a1b57be652ac532ebddb3e3e53dddc35ae420f31 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Fri Nov 25 05:27:15 2011 +0100 empty java stacktrace for soffice crashers, they are not interesting anyway diff --git a/unotest/source/java/org/openoffice/test/OfficeConnection.java b/unotest/source/java/org/openoffice/test/OfficeConnection.java index 54a412d..8f99076 100644 --- a/unotest/source/java/org/openoffice/test/OfficeConnection.java +++ b/unotest/source/java/org/openoffice/test/OfficeConnection.java @@ -48,7 +48,13 @@ import static org.junit.Assert.*; org.openoffice.test.arg.... system properties. */ + public final class OfficeConnection { + private final class PostprocessFailedException extends java.lang.RuntimeException { + PostprocessFailedException() { + super("This likely means that soffice crashed during the test."); + } + }; /** Start up an OOo instance. */ public void setUp() throws Exception { @@ -159,7 +165,14 @@ public final class OfficeConnection { Forward pperrForward = new Forward(postprocess.getErrorStream(), System.err); pperrForward.start(); postprocess.waitFor(); - assertEquals(0, postprocess.exitValue()); + if(postprocess.exitValue() != 0) + { + // no ugly long java stacktrace needed here + PostprocessFailedException e = new PostprocessFailedException(); + StackTraceElement[] newStackTrace = new StackTraceElement[0]; + e.setStackTrace(newStackTrace); + throw e; + } } } catch(IOException e) {} commit 1cec66388eac81af2197da4fbf8fd2b00c56c7a5 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Fri Nov 25 05:25:16 2011 +0100 dont choke without gdb diff --git a/solenv/gbuild/platform/unxgcc_gdbforjunit.sh b/solenv/gbuild/platform/unxgcc_gdbforjunit.sh index ced0444..8520849 100755 --- a/solenv/gbuild/platform/unxgcc_gdbforjunit.sh +++ b/solenv/gbuild/platform/unxgcc_gdbforjunit.sh @@ -34,18 +34,33 @@ OFFICEFILE=${1} WORKDIR=${2} -if test -e ${WORKDIR}/core +if test -n "`which gdb`" then - STORELOCATION=`mktemp --tmpdir=${WORKDIR} core.XXXX` - echo "Found a core dump at ${WORKDIR}, moving it to ${STORELOCATION}" - mv ${WORKDIR}/core ${STORELOCATION} - echo "Stacktrace:" - GDBCOMMANDFILE=`mktemp` - echo "bt" > ${GDBCOMMANDFILE} - gdb -x $GDBCOMMANDFILE --batch ${OFFICEFILE}.bin ${STORELOCATION} - rm ${GDBCOMMANDFILE} - exit 1 + if test -e ${WORKDIR}/core + then + STORELOCATION=`mktemp --tmpdir=${WORKDIR} core.XXXX` + echo + echo "It seems like soffice.bin crashed during the test excution!" + echo "Found a core dump at ${WORKDIR}, moving it to ${STORELOCATION}" + mv ${WORKDIR}/core ${STORELOCATION} + echo "Stacktrace:" + GDBCOMMANDFILE=`mktemp` + echo "bt" > ${GDBCOMMANDFILE} + gdb -x $GDBCOMMANDFILE --batch ${OFFICEFILE}.bin ${STORELOCATION} + rm ${GDBCOMMANDFILE} + echo + exit 1 + else + echo + echo "No core dump at ${WORKDIR}, to create core dumps (and stack traces)" + echo "for crashed soffice instances, enable core dumps with:" + echo + echo " ulimit -c unlimited" + echo + exit 0 + fi else + echo "You need gdb in you path to general stacktraces." exit 0 fi commit 279473f1ed6cd3bb6f6d2b8b9c75529b91836e39 Author: Bjoern Michaelsen <bjoern.michael...@canonical.com> Date: Fri Nov 25 05:24:23 2011 +0100 cut out noise in junit stacktrace for output, but keep them in log diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk index 10df1da..dab548a 100644 --- a/solenv/gbuild/JunitTest.mk +++ b/solenv/gbuild/JunitTest.mk @@ -54,7 +54,12 @@ $(call gb_JunitTest_get_target,%) : '-Dorg.openoffice.test.arg.debugcommand=$(gb_JunitTest_DEBUGCOMMAND)') \ $(DEFS) \ org.junit.runner.JUnitCore \ - $(CLASSES) 2>&1 > $@.log || (cat $@.log && false)) && \ + $(CLASSES) 2>&1 > $@.log || \ + (grep -v -e 'at org.junit.' \ + -e 'at com.sun.star.lib.uno.' \ + -e 'at java.lang.reflect.' \ + -e 'at sun.reflect.' $@.log \ + && echo "see full error log at $@.log" && false)) && \ rm -rf $(call gb_JunitTest_get_userdir,$*)) $(CLEAN_CMD) _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits