Your IP : 172.28.240.42


Current Path : /usr/share/apport/testsuite/
Upload File :
Current File : //usr/share/apport/testsuite/test_crash_digger.pyc

ó
ˆ5„Oc@sudZddlZddlZddlZddlZddlZddlZdejfd„ƒYZej	ƒdS(sTest crash-diggeriÿÿÿÿNtTcBsYeZd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d„Z
RS(	cCs^tjƒ|_tjj|jdƒ}t|dƒjdtjj|jdƒƒtjj|jdƒ|_tj	|jƒtj	tjj|jdƒƒtj	tjj|jdƒƒtjj|jdƒ|_
tjj|jd	ƒ|_t|jdƒjd
|j
ƒtj|jdƒtjj|jdƒ|_
|tjd
<dtjd<dS(s9Set up dummy config dir, crashdb.conf, and apport-retracescrashdb.conftws‚default = 'memory'
databases = { 'memory': {
    'impl': 'memory', 'distro': 'Testux', 'dummy_data': '1',
    'dupdb_url': '%s'}
}tdupdbtconfigs
Testux 1.0s
Testux 2.2sapport-retrace.logsapport-retraces#!/bin/sh
echo "$@" >> %siítlocktAPPORT_CRASHDB_CONFt.t
PYTHONPATHN(ttempfiletmkdtemptworkdirtostpathtjointopentwritet
config_dirtmkdirtapport_retrace_logtapport_retracetchmodt	lock_filetenviron(tselftcrashdb_conf((s0/usr/share/apport/testsuite/test_crash_digger.pytsetUps 
cCstj|jƒdS(N(tshutiltrmtreeR
(R((s0/usr/share/apport/testsuite/test_crash_digger.pyttearDown-scCsMtjdd|jg|dtjdtjƒ}|jƒ\}}||fS(sYCall crash-digger with given arguments.

        Return a pair (stdout, stderr).
        scrash-diggers--apport-retracetstdouttstderr(t
subprocesstPopenRtPIPEtcommunicate(Rtargststoutterr((s0/usr/share/apport/testsuite/test_crash_digger.pytcall0s
c	Cs²|jd|jdddtjj|jdƒd|jgƒ\}}|j|dd|ƒ|jd	|kƒ|jd
|kƒ|jd|kƒ|jd|kƒ|jd
|kƒ|j	d|kƒ|j	d|kdƒ|j	d|kdƒt
|jƒjƒ}|jt
|jƒƒdƒ|j	d|kƒ|jd|kƒ|jd|kƒ|j	tjj|jƒƒ|j	tjjtjj|jddƒƒƒdS(sCrash retracings-cs-as	/dev/zeros-dsdup.dbs-vltsno error messages:
s0Available releases: ['Testux 1.0', 'Testux 2.2']sretracing #0sretracing #1sretracing #2sEcrash is release FooLinux Pi/2 which does not have a config availablesfailed with statuss#3s!dupcheck crashes are not retraceds#4isdup.db -v 0
sdup.db -v 1
sdup.db -v 2
RtsigN(R'RRRR
R
RtassertEqualt
assertTruetassertFalseRRtreadtlent
splitlinestexiststisdir(RR%R&tretrace_log((s0/usr/share/apport/testsuite/test_crash_digger.pyttest_crashes;s$-c	Cstj|j|jdƒt|jdƒjd|jƒtj|jdƒ|jd|jdddtj	j
|jd	ƒd
|jgƒ\}}|j
d|kƒ|j
d|kƒ|j
d
|kƒ|j
d|kƒ|j
d|kƒ|jd|kdƒ|j
d|kƒ|jd|kƒ|j
d|kƒ|jd|kdƒ|jd|kdƒt|jƒjƒ}|jt|jƒƒdƒ|jd|kƒ|j
d|kƒ|jd|kƒ|j
tj	j|jƒƒtj|jd|jƒ|jd|jdddtj	j
|jd	ƒd
|jgƒ\}}|j|dƒ|j|dƒtj|jƒ|jd|jdddtj	j
|jd	ƒd
|jgƒ\}}|j
d|kƒ|j|dd|ƒ|jtj	j|jƒƒdS(s1Crash retracing if apport-retrace fails on bug #1s.bakRs…#!/bin/sh
echo "$@" >> %s
while [ -n "$2" ]; do shift; done
if [ "$1" = 1 ]; then
    echo "cannot frobnicate bug" >&2
    exit 1
fi
iís-cs-as	/dev/zeros-dsdup.dbs-vlt	Tracebacks SystemError: retracing #1 faileds0Available releases: ['Testux 1.0', 'Testux 2.2']sretracing #0sretracing #1sretracing #2s should not continue after errorssEcrash is release FooLinux Pi/2 which does not have a config availables#0 failed with statuss#1 failed with status: 1s#3s!dupcheck crashes are not retraceds#4isdup.db -v 0
sdup.db -v 1
sdup.db -v 2
R(sno error messages:
N(RtrenameRRRRRR'RRR
R
RR+R,R-R*R.R/R0tunlink(RR%R&R2((s0/usr/share/apport/testsuite/test_crash_digger.pyttest_crashes_errorSsD---c	CsOtj|j|jdƒt|jdƒjd|jƒtj|jdƒ|jd|jdddtj	j
|jd	ƒd
|jgƒ\}}|j
d|kƒ|j
d|kƒ|j
d
|kƒ|jd|kdƒ|j
d|kƒt|jƒjƒ}|j
d|kƒ|jd|kƒ|jtj	j|jƒƒdS(s;Crash retracing if apport-retrace reports a transient errors.bakRs‹#!/bin/sh
echo "$@" >> %s
while [ -n "$2" ]; do shift; done
if [ "$1" = 1 ]; then
    echo "cannot frobnicate crash db" >&2
    exit 99
fi
iís-cs-as	/dev/zeros-dsdup.dbs-vls0Available releases: ['Testux 1.0', 'Testux 2.2']sretracing #0sretracing #1sretracing #2s should not continue after errorss!transient error reported; haltingsdup.db -v 1
sdup.db -v 2
N(RR5RRRRRR'RRR
R
RR+R,R-R0(RR%R&R2((s0/usr/share/apport/testsuite/test_crash_digger.pyttest_crashes_transient_error‰s-cCsô|jdddtjj|jdƒd|jgƒ\}}|j|dd|ƒ|jd|kd	ƒ|jd
|kd	ƒ|jd|kƒ|jd|kƒ|jd
|kƒ|jtjj	|j
ƒƒ|jtjj	|jƒƒdS(sDuplicate checkings-as	/dev/zeros-dsdup.dbs-vDlR(sno error messages:
s#1ssignal crashes are not retraceds#2schecking #3 for duplicateschecking #4 for duplicates+Report is a duplicate of #3 (not fixed yet)N(R'RRR
R
RR*R,R+R0R(RR%R&((s0/usr/share/apport/testsuite/test_crash_digger.pyt
test_dupcheck§s-c	CsŒt|jdƒjdƒ|jd|jdddtjj|jdƒd|j	gƒ\}}|j
|d	d
|ƒ|jd|kƒdS(
s/apport-retrace's stderr is redirected to stdoutRs%#!/bin/sh
echo ApportRetraceError >&2s-cs-as	/dev/zeros-dsdup.dbs-vlR(sno error messages:
tApportRetraceErrorN(RRRR'RRRR
R
RR*R+(RR%R&((s0/usr/share/apport/testsuite/test_crash_digger.pyttest_stderr_redirectionµs-c
Cs¹|jd|jdddtjj|jdƒd|jdtjj|jdƒg
ƒ\}}|j|d	d
|ƒ|jd|kƒ|jtjj	tjj|jddƒƒƒd
S(sDuplicate database publishings-cs-as	/dev/zeros-dsdup.dbs-vls--publish-dbRR(sno error messages:
sretracing #0R)N(
R'RRRR
R
RR*R+R1(RR%R&((s0/usr/share/apport/testsuite/test_crash_digger.pyttest_publish_db¿s'(t__name__t
__module__RRR'R3R7R8R9R;R<(((s0/usr/share/apport/testsuite/test_crash_digger.pyRs					6			
(
t__doc__tunittestRRRRtos.pathtTestCaseRtmain(((s0/usr/share/apport/testsuite/test_crash_digger.pyt<module>sH»