Fix failure in --no-dex2oat invocation of 425-invokesuper.

We had two issues:
- dexmerger is broken and sometimes produces invalid dex files,
  thus the test was always failing. b/18051191.
- The reason only no-dex2oat caught it is because it doesn't prebuild,
  and our scripts just do not report an error when the prebuild failed.

I also gave up trying to emit the dex2oat error output in the console.
I clearly don't speak bash.

Change-Id: I34c40902855452ea0f3e0d4733e4149c87236cfe
diff --git a/test/425-invoke-super/expected.txt b/test/425-invoke-super/expected.txt
index e69de29..f7f6ae4 100644
--- a/test/425-invoke-super/expected.txt
+++ b/test/425-invoke-super/expected.txt
@@ -0,0 +1 @@
+Test started
diff --git a/test/425-invoke-super/src/Main.java b/test/425-invoke-super/src/Main.java
index 1fb62d0..f3166fd 100644
--- a/test/425-invoke-super/src/Main.java
+++ b/test/425-invoke-super/src/Main.java
@@ -39,6 +39,8 @@
   }
 
   public static void main(String[] args) throws Exception {
+    // Workaround for b/18051191.
+    System.out.println("Test started");
     assertEquals(1, new B().$opt$bar());
     assertEquals(1, new C().$opt$bar());
     assertEquals(1, new D().$opt$bar());
diff --git a/test/run-test b/test/run-test
index b43668d..843714b 100755
--- a/test/run-test
+++ b/test/run-test
@@ -501,6 +501,8 @@
 fi
 
 good="no"
+good_build="yes"
+good_run="yes"
 if [ "$dev_mode" = "yes" ]; then
     "./${build}" 2>&1
     build_exit="$?"
@@ -548,7 +550,15 @@
     if [ "$build_exit" = '0' ]; then
         echo "${test_dir}: running..." 1>&2
         "./${run}" $run_args "$@" >"$output" 2>&1
+        run_exit="$?"
+        if [ "$run_exit" != "0" ]; then
+            echo "run exit status: $run_exit" 1>&2
+            good_run="no"
+        else
+            good_run="yes"
+        fi
     else
+        good_build="no"
         cp "$build_output" "$output"
         echo "Failed to build in tmpdir=${tmp_dir} from oldwd=${oldwd} and cwd=`pwd`" >> "$output"
         echo "Non-canonical tmpdir was ${noncanonical_tmp_dir}" >> "$output"
@@ -561,9 +571,11 @@
     fi
     ./$check_cmd "$expected" "$output"
     if [ "$?" = "0" ]; then
-        # output == expected
-        good="yes"
-        echo "${test_dir}: succeeded!" 1>&2
+        if [ "$good_build" = "no" -o "$good_run" = "yes" ]; then
+          # output == expected
+          good="yes"
+          echo "${test_dir}: succeeded!" 1>&2
+        fi
     fi
 fi