1
1
#!/bin/python
2
+ from enum import Enum
2
3
import os
4
+ import cicd_config
5
+
6
+
7
+ class LogState (Enum ):
8
+ start = 0
9
+ end = 1
3
10
4
11
5
12
class VcsTest (object ):
6
13
def __init__ (self ):
7
- pass
14
+ self .dut = ''
15
+ self .lint = []
16
+ self .warn = []
17
+ self .err = []
8
18
9
19
def clear (self ):
10
- cmd = 'cd lib/vcs/run && make clean && '
11
- cmd += 'rm temp.fp getReg* novas* verdi* -rf'
20
+ self .dut = ''
21
+ self .lint = []
22
+ self .warn = []
23
+ self .err = []
24
+ self .clear_dir ()
25
+
26
+ def clear_dir (self ):
27
+ cmd = 'cd ' + cicd_config .VCS_RUN_DIR
28
+ cmd += ' && make clean'
29
+ cmd += ' && rm temp.fp getReg* novas* verdi* -rf'
12
30
os .system (cmd )
13
- cmd = 'find lib/vcs/cpu/* | grep -v ysyx_210000.v | xargs rm -rf'
31
+ cmd = 'find ' + cicd_config .VCS_CPU_DIR + '/*'
32
+ cmd += ' grep -v ysyx_210000.v | xargs rm -rf'
14
33
os .system (cmd )
15
34
16
35
def intg_soc (self ):
17
36
pass
18
37
19
38
def comp (self ):
20
- pass
39
+ cmd = 'cd ' + cicd_config .VCS_RUN_DIR
40
+ cmd += ' && make comp'
41
+ os .system (cmd )
42
+
43
+ log_state = [LogState .end , LogState .end , LogState .end ]
44
+ # NOTE: receive comp log
45
+ with open (cicd_config .VCS_RUN_DIR + '/compile.log' ,
46
+ 'r' ,
47
+ encoding = 'utf-8' ) as fp :
48
+ for line in fp :
49
+ if line [0 :4 ] == 'Lint' :
50
+ log_state [0 ] = LogState .start
51
+ elif line [0 :7 ] == 'Warning' :
52
+ log_state [1 ] = LogState .start
53
+ elif line [0 :5 ] == 'Error' :
54
+ log_state [2 ] = LogState .start
55
+ elif line == '\n ' :
56
+ log_state = [LogState .end , LogState .end , LogState .end ]
57
+
58
+ if log_state [0 ] == LogState .start :
59
+ self .lint .append (line )
60
+ elif log_state [1 ] == LogState .start :
61
+ self .warn .append (line )
62
+ elif log_state [2 ] == LogState .start :
63
+ self .err .append (line )
21
64
22
65
def run (self ):
23
66
pass
@@ -29,6 +72,9 @@ def run(self):
29
72
def main ():
30
73
print ('[vcs test]' )
31
74
vcstest .clear ()
75
+ vcstest .intg_soc ()
76
+ vcstest .comp ()
77
+ vcstest .run ()
32
78
33
79
34
80
if __name__ == '__main__' :
0 commit comments