On Wed, 2020-08-05 at 14:33 -0400, Mingde (Matthew) Zeng wrote: > 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.
Sure, but status will be non-zero and the code says: (status, output) = self.target.copyFrom(remote_src, dst, True) msg = 'File could not be copied. Output: %s' % output self.assertEqual(status, 0, msg=msg) so self.assertEqual(status, 0, msg=msg) will fail if copyFrom() fails? Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#141249): https://lists.openembedded.org/g/openembedded-core/message/141249 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] -=-=-=-=-=-=-=-=-=-=-=-