Bug 1799131 - Adjust test-info manifests to retain ancestor. r=gbrown,asuth
[gecko.git] / testing / web-platform / test_metamerge.py
blob50c29b139222078803644f5318b40d84f9e1a6ab
1 from io import BytesIO
3 import mozunit
5 import metamerge
7 ancestor = """
8 global-new-deleted: A
9 global-new-changed: A
10 global-current-deleted: A
11 global-current-changed: A
13 [failing-test.html]
14 [Unchanged subtest]
15 expected: FAIL
17 [New deleted subtest]
18 expected: FAIL
20 [New modified subtest]
21 expected: TIMEOUT
23 [Current deleted subtest]
24 expected: FAIL
26 [New modified current deleted]
27 expected: FAIL
29 [Ancestor no expected new expected]
30 bug: 1234
32 [new-deleted-test.html]
33 [Deleted subtest]
34 expected: FAIL
36 [current-deleted-test.html]
37 [Deleted subtest]
38 expected: FAIL
40 [test-modified.html]
41 expected: TIMEOUT
43 [new-modified-current-deleted.html]
44 expected:
45 if os == "linux": FAIL
46 TIMEOUT
48 [new-add-expected-with-subtest.html]
49 [subtest]
50 expected: FAIL
52 [current-add-expected-with-subtest.html]
53 [subtest]
54 expected: FAIL
55 """
57 new = """
58 global-new-added: A
59 global-new-changed: B
60 global-current-deleted: A
61 global-current-changed: A
63 [failing-test.html]
64 [Unchanged subtest]
65 expected: FAIL
67 [New added subtest]
68 expected: FAIL
70 [New modified subtest]
71 expected:
72 if os == "linux": FAIL
73 TIMEOUT
75 [Current deleted subtest]
76 expected: FAIL
78 [New modified current deleted]
79 expected: TIMEOUT
81 [Ancestor no expected new expected]
82 bug: 1234
83 expected: FAIL
85 [new-added-test.html]
86 [Added subtest]
87 expected: FAIL
89 [current-deleted-test.html]
90 [Deleted subtest]
91 expected: FAIL
93 [test-modified.html]
94 expected:
95 if os == "linux": FAIL
97 [new-modified-current-deleted.html]
98 expected:
99 if os == "linux": FAIL
100 if os == "mac": FAIL
101 TIMEOUT
103 [new-add-expected-with-subtest.html]
104 expected: FAIL
105 [subtest]
106 expected: FAIL
108 [current-add-expected-with-subtest.html]
109 [subtest]
110 expected: FAIL
113 current = """
114 global-new-deleted: A
115 global-new-changed: A
116 global-current-added: A
117 global-current-changed: B
119 [failing-test.html]
120 [Unchanged subtest]
121 expected: FAIL
123 [New deleted subtest]
124 expected: FAIL
126 [New modified subtest]
127 expected: TIMEOUT
129 [Current added subtest]
130 expected: FAIL
132 [Ancestor no expected new expected]
133 bug: 1234
135 [new-deleted-test.html]
136 [Deleted subtest]
137 expected: FAIL
139 [current-added-test.html]
140 [Added subtest]
141 expected: FAIL
143 [new-add-expected-with-subtest.html]
144 [subtest]
145 expected: FAIL
147 [current-add-expected-with-subtest.html]
148 expected: FAIL
149 [subtest]
150 expected: FAIL
153 updated = """global-new-deleted: A
154 global-new-changed: A
155 global-current-added: A
156 global-current-changed: B
157 [failing-test.html]
158 [Unchanged subtest]
159 expected: FAIL
161 [New modified subtest]
162 expected:
163 if os == "linux": FAIL
164 TIMEOUT
166 [Current added subtest]
167 expected: FAIL
169 [Ancestor no expected new expected]
170 expected: FAIL
171 bug: 1234
173 [New added subtest]
174 expected: FAIL
176 [New modified current deleted]
177 expected: TIMEOUT
180 [current-added-test.html]
181 [Added subtest]
182 expected: FAIL
185 [new-add-expected-with-subtest.html]
186 expected: FAIL
187 [subtest]
188 expected: FAIL
191 [current-add-expected-with-subtest.html]
192 expected: FAIL
193 [subtest]
194 expected: FAIL
197 [new-added-test.html]
198 [Added subtest]
199 expected: FAIL
202 [test-modified.html]
203 expected:
204 if os == "linux": FAIL
206 [new-modified-current-deleted.html]
207 expected:
208 if os == "linux": FAIL
209 if os == "mac": FAIL
210 TIMEOUT
214 def test_merge():
215 def get_manifest(str_data):
216 bytes_io = BytesIO(str_data.encode("utf-8"))
217 return metamerge.compile(bytes_io, metamerge.data_cls_getter)
219 ancestor_manifest = get_manifest(ancestor)
220 current_manifest = get_manifest(current)
221 new_manifest = get_manifest(new)
223 result = metamerge.make_changes(ancestor_manifest, current_manifest, new_manifest)
224 assert result == updated
227 if __name__ == "__main__":
228 mozunit.main()