diff --git a/libcxx/utils/libcxx/test/executor.py b/libcxx/utils/libcxx/test/executor.py --- a/libcxx/utils/libcxx/test/executor.py +++ b/libcxx/utils/libcxx/test/executor.py @@ -158,10 +158,18 @@ srcs.extend(file_deps) dsts.extend(dev_paths) self.copy_in(srcs, dsts) + + # When testing executables that were cross-compiled on Windows for + # Linux, we may need to explicitly set the execution permission to + # avoid the 'Permission denied' error: + chmod_cmd = ['chmod', '+x', target_exe_path] + # TODO(jroelofs): capture the copy_in and delete_remote commands, # and conjugate them with '&&'s around the first tuple element # returned here: - return self._execute_command_remote(cmd, target_cwd, env) + return self._execute_command_remote(chmod_cmd + ['&&'] + cmd, + target_cwd, + env) finally: if target_cwd: self.delete_remote(target_cwd)