summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/utils/subprocesstweak.py
blob: 3e43ed547bdc8d4e229c2b61f6633f0c2e27e80a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#
# Copyright OpenEmbedded Contributors
#
# SPDX-License-Identifier: MIT
#
import subprocess

class OETestCalledProcessError(subprocess.CalledProcessError):
    def __str__(self):
        def strify(o):
            if isinstance(o, bytes):
                return o.decode("utf-8", errors="replace")
            else:
                return o

        s = "Command '%s' returned non-zero exit status %d" % (self.cmd, self.returncode)
        if hasattr(self, "output") and self.output:
            s = s + "\nStandard Output: " + strify(self.output)
        if hasattr(self, "stderr") and self.stderr:
            s = s + "\nStandard Error: " + strify(self.stderr)
        return s

def errors_have_output():
    subprocess.CalledProcessError = OETestCalledProcessError