source: trunk/QA/error_note.py @ 1921

Last change on this file since 1921 was 195, checked in by lindanl, 11 years ago

QA directory and scripts

File size: 2.4 KB
Line 
1import libxml2
2from subprocess import *
3import os
4import shutil
5import fnmatch                 
6import xml.parsers.expat
7from string import *
8
9parabix_home = "/home/lindanl/workspace/Parabix"
10xmlconf_home = "/home/lindanl/home/xmlconf"
11output_home = "/home/lindanl/home/xmlwf_all/parabix"
12output_files = output_home+"/Files"
13output_messages = output_home+"/Messages"
14
15
16subdir_prefix = ''
17unsolved = []
18file_type = ''
19All_files = []
20
21def load(filename):
22    xml_conf = libxml2.createFileParserCtxt(filename)
23    xml_conf.replaceEntities(1)
24    xml_conf.parseDocument()
25    doc = xml_conf.doc()
26    return doc
27
28def start_element(name, attrs):
29        global subdir_prefix
30        if name == 'TESTCASES':
31                for a in attrs:
32                        if a == 'xml:base':
33                                subdir_prefix = '/'+attrs[a]
34                               
35        elif name == 'TEST':
36                for a in attrs:
37                        if a == 'TYPE':
38                                if attrs[a] == file_type:
39                                        for a in attrs:
40                                                if a == 'URI':
41                                                        addr = attrs[a].split('/')
42                                                        filename = addr[len(addr)-1]
43                                                        subdir = attrs[a][:attrs[a].find(filename)]
44                                                        do_file(subdir, filename)
45                               
46def parser(xml_file):
47        p = xml.parsers.expat.ParserCreate()
48        p.StartElementHandler = start_element
49        p.Parse(xml_file, 1)
50               
51def do_file(subdir,filename):
52        messagedir = output_messages + subdir_prefix + subdir
53        #outputdir = output_files + subdir_prefix + subdir
54        #out_f = open(output_files + subdir_prefix + subdir+ filename, 'r')
55        mes_f = open(output_messages + subdir_prefix + subdir+ filename, 'r')
56       
57        file_name = xmlconf_home +subdir_prefix+ subdir + filename
58        All_files.append(file_name)
59        if file_type == 'valid':
60                if len(mes_f.read()) != 0:
61                        unsolved.append(file_name + "\n")
62       
63        elif len(mes_f.read()) == 0:
64                unsolved.append(file_name + "\n")
65               
66        #out_f.close()
67        mes_f.close()
68       
69               
70if __name__ == "__main__":
71        wf_f = open("wf_unsolved","w")
72        valid_f = open("valid_unsolved","w")
73        invalid_f = open("invalid_unsolved","w")
74        error_f = open("error_unsolved","w")
75        doc = load('xmlconf.xml')
76        file_type = 'not-wf'
77        parser(str(doc))
78        for e in unsolved:
79                wf_f.write(e)
80        wf_f.close()
81        file_type = 'valid'
82        unsolved = []
83        parser(str(doc))
84        for e in unsolved:
85                valid_f.write(e)
86        valid_f.close()
87        file_type = 'invalid'
88        unsolved = []
89        parser(str(doc))
90        for e in unsolved:
91                invalid_f.write(e)
92        invalid_f.close()
93        file_type = 'error'
94        unsolved = []
95        parser(str(doc))
96        for e in unsolved:
97                error_f.write(e)
98        error_f.close()
99        print len(All_files)
100       
101       
102       
103       
104       
105       
106       
107       
108       
109       
110       
111       
112       
113       
114       
115       
116       
Note: See TracBrowser for help on using the repository browser.