adb: fix race condition in test_non_interactive_sigint. am: e76b9f3dde am: a06580956e
am: af9613732f

Change-Id: I3ea0261629ef747c41eca9f6af30b871d2182d59
diff --git a/adb/test_device.py b/adb/test_device.py
index 4c5563f..ac7cf3b 100644
--- a/adb/test_device.py
+++ b/adb/test_device.py
@@ -484,8 +484,12 @@
         self.device.shell(proc_query)
         os.kill(sleep_proc.pid, signal.SIGINT)
         sleep_proc.communicate()
-        self.assertEqual(1, self.device.shell_nocheck(proc_query)[0],
-                         'subprocess failed to terminate')
+
+        # It can take some time for the process to receive the signal and die.
+        end_time = time.time() + 3
+        while self.device.shell_nocheck(proc_query)[0] != 1:
+            self.assertFalse(time.time() > end_time,
+                             'subprocess failed to terminate in time')
 
     def test_non_interactive_stdin(self):
         """Tests that non-interactive shells send stdin."""