1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
from tqdm import tqdm
import re
def processlog(filename: str) -> set:
with open(filename, "r", encoding='utf-8') as f:
data = f.readlines()
set1 = set()
for line in tqdm(data):
result = re.match('^.*((FAIL|UNRESOLVED): .*.c) .*$',line) #使用正则表达式筛选每一行的数据,自行查找正则表达式
if result:
t = (result.group(1)) #group(1)将正则表达式的(/d.*/d)提取出来
set1.add(t)
return set1
def writeset(filename: str, set1: set) -> None:
if len(set1)!=0:
with open(filename, "a", encoding='utf-8') as f1:
for t in tqdm(set1):
f1.write(t+'\n')
newlib64=processlog("10_build (ubuntu-24.04, newlib, rv64gc-lp64d, gcc).txt")
newlib32=processlog("25_build (ubuntu-24.04, newlib, rv32gc-ilp32d, gcc).txt")
linux64=processlog("24_build (ubuntu-24.04, linux, rv64gc-lp64d, gcc).txt")
linux32=processlog("15_build (ubuntu-24.04, linux, rv32gc-ilp32d, gcc).txt")
# common should be 4 intersection
commonerror=set.intersection(newlib64, newlib32, linux64, linux32)
writeset("res/common.log",commonerror)
# rv32
rv32=set.intersection(newlib32, linux32)
rv32=rv32-commonerror
writeset("res/rv32.log",rv32)
# rv64
rv64=set.intersection(newlib64, linux64)
rv64=rv64-commonerror
writeset("res/rv64.log",rv64)
# glibc
glibc=set.intersection(linux32, linux64)
glibc=glibc-commonerror
writeset("res/glibc.log",glibc)
# newlib
newlib=set.intersection(newlib64, newlib32)
newlib=newlib-commonerror
writeset("res/newlib.log",newlib)
# everything out of it
writeset("res/glibc.rv32.log",linux32-rv32-glibc-commonerror)
writeset("res/glibc.rv64.log",linux64-rv64-glibc-commonerror)
writeset("res/newlib.rv32.log",newlib32-rv32-newlib-commonerror)
writeset("res/newlib.rv64.log",newlib64-rv64-newlib-commonerror)
|