Richard Purdie <richard.pur...@linuxfoundation.org> 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 <matthew.z...@windriver.com>
>> ---
>>  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: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to