Richard Purdie <[email protected]> writes:
> On Wed, 2020-08-05 at 14:10 -0400, Matthew wrote:
>> [YOCTO #13802]
>>
>> Make the scp failure non-fatal so the ltp tests continue to run and
>> the rest of the logs will be available to see afterwards.
>>
>> Signed-off-by: Mingde (Matthew) Zeng <[email protected]>
>> ---
>> meta/lib/oeqa/core/target/ssh.py | 7 +++++--
>> meta/lib/oeqa/runtime/cases/ltp.py | 2 +-
>> 2 files changed, 6 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/lib/oeqa/core/target/ssh.py
>> b/meta/lib/oeqa/core/target/ssh.py
>> index 090b40a814..aefb576805 100644
>> --- a/meta/lib/oeqa/core/target/ssh.py
>> +++ b/meta/lib/oeqa/core/target/ssh.py
>> @@ -107,13 +107,16 @@ class OESSHTarget(OETarget):
>> scpCmd = self.scp + [localSrc, remotePath]
>> return self._run(scpCmd, ignore_status=False)
>>
>> - def copyFrom(self, remoteSrc, localDst):
>> + def copyFrom(self, remoteSrc, localDst, warn_on_failure=False):
>> """
>> Copy file from target.
>> """
>> remotePath = '%s@%s:%s' % (self.user, self.ip, remoteSrc)
>> scpCmd = self.scp + [remotePath, localDst]
>> - return self._run(scpCmd, ignore_status=False)
>> + (status, output) = self._run(scpCmd, ignore_status=warn_on_failure)
>> + if warn_on_failure and status:
>> + self.logger.warning("Copy returned non-zero exit status
>> %d:\n%s" % (status, output))
>> + return (status, output)
>>
>> def copyDirTo(self, localSrc, remoteDst):
>> """
>> diff --git a/meta/lib/oeqa/runtime/cases/ltp.py
>> b/meta/lib/oeqa/runtime/cases/ltp.py
>> index 6dc5ef22ad..da529ce482 100644
>> --- a/meta/lib/oeqa/runtime/cases/ltp.py
>> +++ b/meta/lib/oeqa/runtime/cases/ltp.py
>> @@ -78,7 +78,7 @@ class LtpTest(LtpTestBase):
>> # copy nice log from DUT
>> dst = os.path.join(self.ltptest_log_dir, "%s" % ltp_group )
>> remote_src = "/opt/ltp/results/%s" % ltp_group
>> - (status, output) = self.target.copyFrom(remote_src, dst)
>> + (status, output) = self.target.copyFrom(remote_src, dst, True)
>> msg = 'File could not be copied. Output: %s' % output
>> self.assertEqual(status, 0, msg=msg)
>
> The idea of this change is so "the ltp tests continue to run" yet if I
> understand that code, a copy failure will throw the assertEqual and
> hence stop the test so we don't get all the other logging information?
When warn_on_failure=True, so is ignore_status. Then 'status and not
ignore_status' evaluates to false, and 'raise AssertionError("Command '%s'
returned non-zero exit ...)' will not run.
>
> Cheers,
>
> Richard
>
>
--
Mingde (Matthew) Zeng
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#141248):
https://lists.openembedded.org/g/openembedded-core/message/141248
Mute This Topic: https://lists.openembedded.org/mt/76013023/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-