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 OR GPL-2.0-or-later
108 """API and ABI checker."""
111 """Instantiate the API/ABI checker.
114 new_version: RepoVersion containing details to check
137 raise Exception('Checking API without ABI or vice versa is not supported')
153 for command in ["abi-dumper", "abi-compliance-checker"]:
173 self.log.debug(fetch_output.decode("utf-8"))
181 [self.git_command, "worktree", "add", "--detach",
186 self.log.debug(worktree_output.decode("utf-8"))
188 [self.git_command, "rev-parse", "HEAD"],
200 [self.git_command, "submodule", "update", "--init", '--recursive'],
204 self.log.debug(update_output.decode("utf-8"))
216 self.log.debug(fetch_output.decode("utf-8"))
226 self.log.debug(checkout_output.decode("utf-8"))
231 my_environment["CFLAGS"] = "-g -Og"
241 self.log.debug(make_output.decode("utf-8"))
261 self.report_dir, "{}-{}-{}.dump".format(
266 "abi-dumper",
268 "-o", output_path,
269 "-lver", self._pretty_revision(version),
275 self.log.debug(abi_dump_output.decode("utf-8"))
329 ['tests/scripts/generate_psa_tests.py', '--list'],
373 self.log.debug(worktree_output.decode("utf-8"))
408 "abi-compliance-checker",
409 "-l", mbed_module,
410 "-old", self.old_version.abi_dumps[mbed_module],
411 "-new", self.new_version.abi_dumps[mbed_module],
412 "-strict",
413 "-report-path", output_path,
416 abi_compliance_command += ["-skip-symbols", self.skip_file,
417 "-skip-types", self.skip_file]
419 abi_compliance_command += ["-report-format", "xml",
420 "-stdout"]
425 Append a message regarding compatibility to compatibility_report."""
427 self.report_dir, "{}-{}-{}.html".format(
442 "Compatibility issues found for {}".format(mbed_module)
444 report_root = ET.fromstring(err.output.decode("utf-8"))
446 self.log.info(ET.tostring(report_root).decode("utf-8"))
450 "Compatibility issues found for {}, "
455 "No compatibility issues for {}".format(mbed_module)
464 """Check whether all tests present in old_tests are also in new_tests.
466 Append a message regarding compatibility to compatibility_report.
486 'Info: number of storage format tests cases: {} -> {}.'.format(
542 "-v", "--verbose", action="store_true",
546 "-r", "--report-dir", type=str, default="reports",
550 "-k", "--keep-all-reports", action="store_true",
551 help="keep all reports, even if there are no compatibility issues",
554 "-o", "--old-rev", type=str, help="revision for old version.",
558 "-or", "--old-repo", type=str, help="repository for old version."
561 "-oc", "--old-crypto-rev", type=str,
565 "-ocr", "--old-crypto-repo", type=str,
569 "-n", "--new-rev", type=str, help="revision for new version",
573 "-nr", "--new-repo", type=str, help="repository for new version."
576 "-nc", "--new-crypto-rev", type=str,
580 "-ncr", "--new-crypto-repo", type=str,
584 "-s", "--skip-file", type=str,
586 "(typically \"-s identifiers\" after running "
587 "\"tests/scripts/list-identifiers.sh --internal\")")
590 "--check-abi",
594 parser.add_argument("--no-check-abi", action='store_false', dest='check_abi')
596 "--check-api",
598 help="Perform API comparison (default: yes)"
600 parser.add_argument("--no-check-api", action='store_false', dest='check_api')
602 "--check-storage",
606 parser.add_argument("--no-check-storage", action='store_false', dest='check_storage')
608 "-b", "--brief", action="store_true",
650 except Exception: # pylint: disable=broad-except