Fix flaky test DeadObjectWithFinalizeTest

We have another test that does the same which does not flake.

Fixes: b/384870990
Change-Id: I5c37fb32ce4730ce5094ae6f53bdd85b68dcdfd7
diff --git a/src/test/java/com/android/tools/r8/deadcode/DeadObjectWithFinalizeTest.java b/src/test/java/com/android/tools/r8/deadcode/DeadObjectWithFinalizeTest.java
index 81959a6..ab8b929 100644
--- a/src/test/java/com/android/tools/r8/deadcode/DeadObjectWithFinalizeTest.java
+++ b/src/test/java/com/android/tools/r8/deadcode/DeadObjectWithFinalizeTest.java
@@ -6,6 +6,8 @@
 import com.android.tools.r8.TestBase;
 import com.android.tools.r8.TestParameters;
 import com.android.tools.r8.TestParametersCollection;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
@@ -31,21 +33,28 @@
         .setMinApi(parameters)
         .compile()
         .run(parameters.getRuntime(), Main.class)
-        .assertSuccessWithOutputLines("Finalize!");
+        .assertSuccessWithOutputLines("passed fence");
   }
 
   static class Main {
 
-    public static void main(String[] args) {
+    static final CountDownLatch fence = new CountDownLatch(1);
+
+    public static void main(String[] args) throws Exception {
       new Object() {
 
         @Override
         protected void finalize() {
-          System.out.println("Finalize!");
+          fence.countDown();
         }
       };
       Runtime.getRuntime().gc();
       Runtime.getRuntime().runFinalization();
+      if (fence.await(10, TimeUnit.SECONDS)) {
+        System.out.println("passed fence");
+      } else {
+        System.out.println("fence await timed out");
+      }
     }
   }
 }