~pwlars/lava-test/ltp

« back to all changes in this revision

Viewing changes to abrek/test_definitions/ltp.py

  • Committer: Paul Larson
  • Date: 2010-09-15 03:39:24 UTC
  • Revision ID: paul.larson@canonical.com-20100915033924-5hh1pvoy8vblsbxb
Add a test definition for ltp

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import re
 
2
 
 
3
import abrek.testdef
 
4
 
 
5
VERSION="20100831"
 
6
URL='http://downloads.sourceforge.net/project/ltp/LTP Source/ltp-%s/ltp-full-%s.bz2' % (VERSION, VERSION)
 
7
#URL="http://downloads.sourceforge.net/project/ltp/LTP Source/ltp-20100831/ltp-full-20100831.bz2"
 
8
MD5="6982c72429a62f3917c13b2d529ad1ce"
 
9
DEPS = ['bzip2', 'flex', 'bison', 'make']
 
10
 
 
11
SCRIPT = """
 
12
tar -xjf ltp-full-20100831.bz2
 
13
mkdir build
 
14
cd ltp-full-20100831
 
15
./configure --prefix=$(readlink -f ../build)
 
16
make all
 
17
SKIP_IDCHECK=1 make install
 
18
"""
 
19
 
 
20
INSTALLSTEPS = ["echo '%s' > installltp.sh" % SCRIPT,
 
21
                'chmod +x installltp.sh',
 
22
                './installltp.sh']
 
23
RUNSTEPS = ['cd build && sudo ./runltp -f syscalls -p -q']
 
24
PATTERN = "^(?P<test_case_id>\S+)    (?P<subid>\d+)  (?P<result>\w+)  :  (?P<message>\S+)"
 
25
FIXUPS = {"TBROK":"fail",
 
26
          "TCONF":"skip",
 
27
          "TFAIL":"fail",
 
28
          "TINFO":"unknown",
 
29
          "TPASS":"pass",
 
30
          "TWARN":"unknown"}
 
31
 
 
32
 
 
33
class LTPParser(abrek.testdef.AbrekTestParser):
 
34
    def parse(self):
 
35
        filename = "testoutput.log"
 
36
        pat = re.compile(self.pattern)
 
37
        with open(filename, 'r') as fd:
 
38
            for line in fd.readlines():
 
39
                match = pat.search(line)
 
40
                if match:
 
41
                    results = match.groupdict()
 
42
                    results['test_case_id'] += "." + results.pop('subid')
 
43
                    self.results['test_results'].append(results)
 
44
        if self.fixupdict:
 
45
            self.fixresults(self.fixupdict)
 
46
        if self.appendall:
 
47
            self.appendtoall(self.appendall)
 
48
 
 
49
 
 
50
ltpinst = abrek.testdef.AbrekTestInstaller(INSTALLSTEPS, deps=DEPS, url=URL,
 
51
                                           md5=MD5)
 
52
ltprun = abrek.testdef.AbrekTestRunner(RUNSTEPS)
 
53
ltpparser = LTPParser(PATTERN, fixupdict = FIXUPS)
 
54
testobj = abrek.testdef.AbrekTest(testname="ltp", version=VERSION,
 
55
                                  installer=ltpinst, runner=ltprun,
 
56
                                  parser=ltpparser)