mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 10:18:41 +02:00 
			
		
		
		
	# ignore-this-changeset Differential Revision: https://phabricator.services.mozilla.com/D162657
		
			
				
	
	
		
			227 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			227 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from io import BytesIO
 | 
						|
 | 
						|
import metamerge
 | 
						|
import mozunit
 | 
						|
 | 
						|
ancestor = """
 | 
						|
global-new-deleted: A
 | 
						|
global-new-changed: A
 | 
						|
global-current-deleted: A
 | 
						|
global-current-changed: A
 | 
						|
 | 
						|
[failing-test.html]
 | 
						|
  [Unchanged subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New modified subtest]
 | 
						|
    expected: TIMEOUT
 | 
						|
 | 
						|
  [Current deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New modified current deleted]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [Ancestor no expected new expected]
 | 
						|
    bug: 1234
 | 
						|
 | 
						|
[new-deleted-test.html]
 | 
						|
  [Deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[current-deleted-test.html]
 | 
						|
  [Deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[test-modified.html]
 | 
						|
  expected: TIMEOUT
 | 
						|
 | 
						|
[new-modified-current-deleted.html]
 | 
						|
  expected:
 | 
						|
    if os == "linux": FAIL
 | 
						|
    TIMEOUT
 | 
						|
 | 
						|
[new-add-expected-with-subtest.html]
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[current-add-expected-with-subtest.html]
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
"""
 | 
						|
 | 
						|
new = """
 | 
						|
global-new-added: A
 | 
						|
global-new-changed: B
 | 
						|
global-current-deleted: A
 | 
						|
global-current-changed: A
 | 
						|
 | 
						|
[failing-test.html]
 | 
						|
  [Unchanged subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New modified subtest]
 | 
						|
    expected:
 | 
						|
      if os == "linux": FAIL
 | 
						|
      TIMEOUT
 | 
						|
 | 
						|
  [Current deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New modified current deleted]
 | 
						|
    expected: TIMEOUT
 | 
						|
 | 
						|
  [Ancestor no expected new expected]
 | 
						|
    bug: 1234
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[new-added-test.html]
 | 
						|
  [Added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[current-deleted-test.html]
 | 
						|
  [Deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[test-modified.html]
 | 
						|
  expected:
 | 
						|
    if os == "linux": FAIL
 | 
						|
 | 
						|
[new-modified-current-deleted.html]
 | 
						|
  expected:
 | 
						|
    if os == "linux": FAIL
 | 
						|
    if os == "mac": FAIL
 | 
						|
    TIMEOUT
 | 
						|
 | 
						|
[new-add-expected-with-subtest.html]
 | 
						|
  expected: FAIL
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[current-add-expected-with-subtest.html]
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
"""
 | 
						|
 | 
						|
current = """
 | 
						|
global-new-deleted: A
 | 
						|
global-new-changed: A
 | 
						|
global-current-added: A
 | 
						|
global-current-changed: B
 | 
						|
 | 
						|
[failing-test.html]
 | 
						|
  [Unchanged subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New modified subtest]
 | 
						|
    expected: TIMEOUT
 | 
						|
 | 
						|
  [Current added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [Ancestor no expected new expected]
 | 
						|
    bug: 1234
 | 
						|
 | 
						|
[new-deleted-test.html]
 | 
						|
  [Deleted subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[current-added-test.html]
 | 
						|
  [Added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[new-add-expected-with-subtest.html]
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
[current-add-expected-with-subtest.html]
 | 
						|
  expected: FAIL
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
"""
 | 
						|
 | 
						|
updated = """global-new-deleted: A
 | 
						|
global-new-changed: A
 | 
						|
global-current-added: A
 | 
						|
global-current-changed: B
 | 
						|
[failing-test.html]
 | 
						|
  [Unchanged subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New modified subtest]
 | 
						|
    expected:
 | 
						|
      if os == "linux": FAIL
 | 
						|
      TIMEOUT
 | 
						|
 | 
						|
  [Current added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [Ancestor no expected new expected]
 | 
						|
    expected: FAIL
 | 
						|
    bug: 1234
 | 
						|
 | 
						|
  [New added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
  [New modified current deleted]
 | 
						|
    expected: TIMEOUT
 | 
						|
 | 
						|
 | 
						|
[current-added-test.html]
 | 
						|
  [Added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
 | 
						|
[new-add-expected-with-subtest.html]
 | 
						|
  expected: FAIL
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
 | 
						|
[current-add-expected-with-subtest.html]
 | 
						|
  expected: FAIL
 | 
						|
  [subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
 | 
						|
[new-added-test.html]
 | 
						|
  [Added subtest]
 | 
						|
    expected: FAIL
 | 
						|
 | 
						|
 | 
						|
[test-modified.html]
 | 
						|
  expected:
 | 
						|
    if os == "linux": FAIL
 | 
						|
 | 
						|
[new-modified-current-deleted.html]
 | 
						|
  expected:
 | 
						|
    if os == "linux": FAIL
 | 
						|
    if os == "mac": FAIL
 | 
						|
    TIMEOUT
 | 
						|
"""
 | 
						|
 | 
						|
 | 
						|
def test_merge():
 | 
						|
    def get_manifest(str_data):
 | 
						|
        bytes_io = BytesIO(str_data.encode("utf-8"))
 | 
						|
        return metamerge.compile(bytes_io, metamerge.data_cls_getter)
 | 
						|
 | 
						|
    ancestor_manifest = get_manifest(ancestor)
 | 
						|
    current_manifest = get_manifest(current)
 | 
						|
    new_manifest = get_manifest(new)
 | 
						|
 | 
						|
    result = metamerge.make_changes(ancestor_manifest, current_manifest, new_manifest)
 | 
						|
    assert result == updated
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    mozunit.main()
 |