• Home
  • Raw
  • Download

Lines Matching +full:check +full:- +full:api +full:- +full:compatibility

8 For the source (API) and runtime (ABI) interface compatibility, this script
9 is a small wrapper around the abi-compliance-checker and abi-dumper tools,
19 The results of the API/ABI comparison are either formatted as HTML and stored
21 Returns 0 on success, 1 on non-compliance, and 2 if there is an error
24 ### How to interpret non-compliance ###
31 breaking a backward compatibility goal.
33 **API**: the goal is that if an application works with the old version of the
64 **Storage format**: the goal is to check that persistent keys stored by the
74 **Generated test coverage**: the goal is to check that automatically
87 # SPDX-License-Identifier: Apache-2.0
93 # http://www.apache.org/licenses/LICENSE-2.0
120 """API and ABI checker."""
123 """Instantiate the API/ABI checker.
126 new_version: RepoVersion containing details to check
149 raise Exception('Checking API without ABI or vice versa is not supported')
165 for command in ["abi-dumper", "abi-compliance-checker"]:
185 self.log.debug(fetch_output.decode("utf-8"))
193 [self.git_command, "worktree", "add", "--detach",
198 self.log.debug(worktree_output.decode("utf-8"))
200 [self.git_command, "rev-parse", "HEAD"],
212 [self.git_command, "submodule", "update", "--init", '--recursive'],
216 self.log.debug(update_output.decode("utf-8"))
228 self.log.debug(fetch_output.decode("utf-8"))
238 self.log.debug(checkout_output.decode("utf-8"))
243 my_environment["CFLAGS"] = "-g -Og"
253 self.log.debug(make_output.decode("utf-8"))
273 self.report_dir, "{}-{}-{}.dump".format(
278 "abi-dumper",
280 "-o", output_path,
281 "-lver", self._pretty_revision(version),
287 self.log.debug(abi_dump_output.decode("utf-8"))
341 ['tests/scripts/generate_psa_tests.py', '--list'],
385 self.log.debug(worktree_output.decode("utf-8"))
420 "abi-compliance-checker",
421 "-l", mbed_module,
422 "-old", self.old_version.abi_dumps[mbed_module],
423 "-new", self.new_version.abi_dumps[mbed_module],
424 "-strict",
425 "-report-path", output_path,
428 abi_compliance_command += ["-skip-symbols", self.skip_file,
429 "-skip-types", self.skip_file]
431 abi_compliance_command += ["-report-format", "xml",
432 "-stdout"]
437 Append a message regarding compatibility to compatibility_report."""
439 self.report_dir, "{}-{}-{}.html".format(
454 "Compatibility issues found for {}".format(mbed_module)
456 report_root = ET.fromstring(err.output.decode("utf-8"))
458 self.log.info(ET.tostring(report_root).decode("utf-8"))
462 "Compatibility issues found for {}, "
467 "No compatibility issues for {}".format(mbed_module)
476 """Check whether all tests present in old_tests are also in new_tests.
478 Append a message regarding compatibility to compatibility_report.
498 'Info: number of storage format tests cases: {} -> {}.'.format(
554 "-v", "--verbose", action="store_true",
558 "-r", "--report-dir", type=str, default="reports",
562 "-k", "--keep-all-reports", action="store_true",
563 help="keep all reports, even if there are no compatibility issues",
566 "-o", "--old-rev", type=str, help="revision for old version.",
570 "-or", "--old-repo", type=str, help="repository for old version."
573 "-oc", "--old-crypto-rev", type=str,
577 "-ocr", "--old-crypto-repo", type=str,
581 "-n", "--new-rev", type=str, help="revision for new version",
585 "-nr", "--new-repo", type=str, help="repository for new version."
588 "-nc", "--new-crypto-rev", type=str,
592 "-ncr", "--new-crypto-repo", type=str,
596 "-s", "--skip-file", type=str,
598 "(typically \"-s identifiers\" after running "
599 "\"tests/scripts/list-identifiers.sh --internal\")")
602 "--check-abi",
606 parser.add_argument("--no-check-abi", action='store_false', dest='check_abi')
608 "--check-api",
610 help="Perform API comparison (default: yes)"
612 parser.add_argument("--no-check-api", action='store_false', dest='check_api')
614 "--check-storage",
618 parser.add_argument("--no-check-storage", action='store_false', dest='check_storage')
620 "-b", "--brief", action="store_true",
662 except Exception: # pylint: disable=broad-except