mirror of
				https://github.com/yuzu-emu/mbedtls.git
				synced 2025-11-04 13:54:48 +00:00 
			
		
		
		
	Add option to skip identifiers in ABI checks
By default abi-compliance-checker will check the entire ABI/API. There are internal identifiers that we do not promise compatibility for, so we want the ability to skip them when checking the ABI/API.
This commit is contained in:
		
							parent
							
								
									5a301f0868
								
							
						
					
					
						commit
						668063bca2
					
				| 
						 | 
				
			
			@ -29,7 +29,7 @@ class AbiChecker(object):
 | 
			
		|||
    """API and ABI checker."""
 | 
			
		||||
 | 
			
		||||
    def __init__(self, report_dir, old_repo, old_rev, new_repo, new_rev,
 | 
			
		||||
                 keep_all_reports):
 | 
			
		||||
                 keep_all_reports, skip_file=None):
 | 
			
		||||
        """Instantiate the API/ABI checker.
 | 
			
		||||
 | 
			
		||||
        report_dir: directory for output files
 | 
			
		||||
| 
						 | 
				
			
			@ -38,6 +38,7 @@ class AbiChecker(object):
 | 
			
		|||
        new_repo: repository for git revision to check
 | 
			
		||||
        new_rev: git revision to check
 | 
			
		||||
        keep_all_reports: if false, delete old reports
 | 
			
		||||
        skip_file: path to file containing symbols and types to skip
 | 
			
		||||
        """
 | 
			
		||||
        self.repo_path = "."
 | 
			
		||||
        self.log = None
 | 
			
		||||
| 
						 | 
				
			
			@ -49,6 +50,7 @@ class AbiChecker(object):
 | 
			
		|||
        self.old_rev = old_rev
 | 
			
		||||
        self.new_repo = new_repo
 | 
			
		||||
        self.new_rev = new_rev
 | 
			
		||||
        self.skip_file = skip_file
 | 
			
		||||
        self.mbedtls_modules = ["libmbedcrypto", "libmbedtls", "libmbedx509"]
 | 
			
		||||
        self.old_dumps = {}
 | 
			
		||||
        self.new_dumps = {}
 | 
			
		||||
| 
						 | 
				
			
			@ -216,6 +218,9 @@ class AbiChecker(object):
 | 
			
		|||
                "-strict",
 | 
			
		||||
                "-report-path", output_path
 | 
			
		||||
            ]
 | 
			
		||||
            if self.skip_file:
 | 
			
		||||
                abi_compliance_command += ["-skip-symbols", self.skip_file,
 | 
			
		||||
                                           "-skip-types", self.skip_file]
 | 
			
		||||
            abi_compliance_process = subprocess.Popen(
 | 
			
		||||
                abi_compliance_command,
 | 
			
		||||
                stdout=subprocess.PIPE,
 | 
			
		||||
| 
						 | 
				
			
			@ -292,6 +297,10 @@ def run_main():
 | 
			
		|||
                  "Can include repository before revision"),
 | 
			
		||||
            required=True, nargs="+"
 | 
			
		||||
        )
 | 
			
		||||
        parser.add_argument(
 | 
			
		||||
            "-s", "--skip-file", type=str,
 | 
			
		||||
            help="path to file containing symbols and types to skip"
 | 
			
		||||
        )
 | 
			
		||||
        abi_args = parser.parse_args()
 | 
			
		||||
        if len(abi_args.old_rev) == 1:
 | 
			
		||||
            old_repo = None
 | 
			
		||||
| 
						 | 
				
			
			@ -311,7 +320,8 @@ def run_main():
 | 
			
		|||
            raise Exception("Too many arguments passed for new version")
 | 
			
		||||
        abi_check = AbiChecker(
 | 
			
		||||
            abi_args.report_dir, old_repo, old_rev,
 | 
			
		||||
            new_repo, new_rev, abi_args.keep_all_reports
 | 
			
		||||
            new_repo, new_rev, abi_args.keep_all_reports,
 | 
			
		||||
            abi_args.skip_file
 | 
			
		||||
        )
 | 
			
		||||
        return_code = abi_check.check_for_abi_changes()
 | 
			
		||||
        sys.exit(return_code)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue