forked from mirrors/gecko-dev
		
	 7269200e75
			
		
	
	
		7269200e75
		
	
	
	
	
		
			
			Bug 1694785 upgraded diffoscope, and the new version had differences in its output format that just made our error reporting miss everything. So we fix the error reporting to work with the new version, as well as add a test case to ensure that we don't upgrade diffoscope to a version that would break out reporting again without noticing. Differential Revision: https://phabricator.services.mozilla.com/D118137
		
			
				
	
	
		
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env python3
 | |
| 
 | |
| import sys
 | |
| stem = sys.argv[1]
 | |
| 
 | |
| # We "parse" the diff output, so we look at the lines that contain a "tee", like:
 | |
| # ├── +++ b/firefox
 | |
| # │ ├── +++ b/firefox/libxul.so
 | |
| # │ │ ├── readelf --wide --notes {}
 | |
| # We ignore lines like the last one, to only report file names. And we ignore
 | |
| # lines for directories such as the first one.
 | |
| TEE = "├── "
 | |
| VERTICAL_LINE = "│"
 | |
| paths = set()
 | |
| with open(f"{stem}.txt") as fh:
 | |
|     for l in fh:
 | |
|         l = l.rstrip()
 | |
|         before, tee, after = l.partition(TEE)
 | |
|         if not tee:
 | |
|             continue
 | |
|         before = before.split()
 | |
|         assert all(x == VERTICAL_LINE for x in before)
 | |
|         depth = len(before)
 | |
|         _, plus, after = after.partition("+++ ")
 | |
|         if not plus:
 | |
|             continue
 | |
|         _, b, full_path = after.partition("b/")
 | |
|         assert b == "b/"
 | |
|         parent_path = "/".join(full_path.split("/")[:-1])
 | |
|         if parent_path in paths:
 | |
|             paths.remove(parent_path)
 | |
|         if full_path:
 | |
|             paths.add(full_path)
 | |
| 
 | |
| for p in sorted(paths):
 | |
|     print(f"TEST-UNEXPECTED-FAIL | {p} differs. See the {stem}.html or {stem}.txt artifact")
 |