Просмотр исходного кода

AndroidTestUtilities: ignore exit status of ls

adb used to suffer from a bug where `adb shell` would return 0 irrespective
the exit status of the underlying process that it executed.  This is now
fixed for newer versions of Android (N+).

As a result, attempting to `adb shell ls` a nonexistent file can now result
in a non-zero exit status.  Updating check_device_file_exists to ignore the
exit status of `adb shell` fixes this bug for newer Android devices.
Zack Galbreath 9 лет назад
Родитель
Сommit
9d34e51cdb
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      Modules/AndroidTestUtilities/PushToAndroidDevice.cmake

+ 3 - 1
Modules/AndroidTestUtilities/PushToAndroidDevice.cmake

@@ -39,7 +39,9 @@ function(android_push_test_files_to_device)
   # if(file_exists) will return true.
   macro(check_device_file_exists device_file file_exists)
     set(${file_exists} "")
-    execute_adb_command(shell ls ${device_file})
+    execute_process(
+      COMMAND ${adb_executable} shell ls ${device_file}
+      OUTPUT_VARIABLE out_var ERROR_VARIABLE out_var)
     if(NOT out_var) # when a directory exists but is empty the output is empty
       set(${file_exists} "YES")
     else()