2828// in all files in ./tests - if there's a match it marks that test as converted.
2929func main () {
3030 verbose := len (os .Args ) == 2 && os .Args [1 ] == "-v"
31- body , err := ioutil .ReadFile ("./sytest.list" )
32- if err != nil {
33- panic (err )
34- }
35- testLines := strings .Split (string (body ), "\n " )
36- filenameToTestName := make (map [string ][]string )
37- testNameToFilename := make (map [string ]string )
38- for _ , line := range testLines {
39- name , filename := extract (line )
40- if name == "" || filename == "" {
41- continue
42- }
43- name = "sytest: " + strings .TrimSpace (name )
44- filenameToTestName [filename ] = append (filenameToTestName [filename ], name )
45- testNameToFilename [name ] = strings .TrimSpace (filename )
46- }
31+
32+ filenameToTestName , testNameToFilename := getList ()
33+
4734 total := len (testNameToFilename )
4835
4936 convertedTests := make (map [string ]bool )
@@ -100,6 +87,60 @@ func main() {
10087 fmt .Printf ("\n TOTAL: %d/%d tests converted\n " , numComplementTests , total )
10188}
10289
90+ // filenameToTestName and testNameToFilename
91+ // will filter ignored tests
92+ func getList () (map [string ][]string , map [string ]string ) {
93+ var ignoredTests = make (map [string ]bool )
94+ var ignoredPaths []string
95+ ignoredBody , err := ioutil .ReadFile ("./sytest.ignored.list" )
96+ if err != nil {
97+ // ignore error, set body to nothing
98+ ignoredBody = []byte {}
99+ }
100+ ignoredLines := strings .Split (string (ignoredBody ), "\n " )
101+ for _ , ignoredLine := range ignoredLines {
102+ ignoredLine = strings .TrimSpace (ignoredLine )
103+
104+ if len (ignoredLine ) == 0 || ignoredLine [0 ] == '#' {
105+ continue
106+ }
107+
108+ if ignoredLine [0 ] == '!' {
109+ ignoredPaths = append (ignoredPaths , ignoredLine [1 :])
110+ }
111+
112+ ignoredTests [ignoredLine ] = true
113+ }
114+
115+ body , err := ioutil .ReadFile ("./sytest.list" )
116+ if err != nil {
117+ panic (err )
118+ }
119+ testLines := strings .Split (string (body ), "\n " )
120+ filenameToTestName := make (map [string ][]string )
121+ testNameToFilename := make (map [string ]string )
122+ lines:
123+ for _ , line := range testLines {
124+ name , filename := extract (line )
125+ if name == "" || filename == "" {
126+ continue
127+ }
128+ if _ , ok := ignoredTests [name ]; ok {
129+ continue
130+ }
131+ for _ , path := range ignoredPaths {
132+ if strings .Contains (filename , path ) {
133+ continue lines
134+ }
135+ }
136+ name = "sytest: " + strings .TrimSpace (name )
137+ filenameToTestName [filename ] = append (filenameToTestName [filename ], name )
138+ testNameToFilename [name ] = strings .TrimSpace (filename )
139+ }
140+
141+ return filenameToTestName , testNameToFilename
142+ }
143+
103144func sorted (in map [string ][]string ) []string {
104145 out := make ([]string , len (in ))
105146 i := 0
@@ -115,7 +156,7 @@ func sorted(in map[string][]string) []string {
115156// ./tests/31sync/16room-summary.pl:test "Room summary counts change when membership changes",
116157func extract (line string ) (string , string ) {
117158 line = strings .TrimSpace (line )
118- if len (line ) == 0 {
159+ if len (line ) == 0 || line [ 0 ] == '#' {
119160 return "" , ""
120161 }
121162 nameGroups := testNameRegexp .FindStringSubmatch (line )
0 commit comments