X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Flibraries%2Fpython%2FVppApiCrc.py;h=761059f43ef751ab64371d150562b3aa02f6eb8b;hb=c1ddda9b19f448c6c38ad3705f50b6fffe9cb80e;hp=1fcb91d4b9a73c04352aafa843db9b6cda786697;hpb=1d84dc8e8f916bb0854e80e60bad1006d8d7be25;p=csit.git diff --git a/resources/libraries/python/VppApiCrc.py b/resources/libraries/python/VppApiCrc.py index 1fcb91d4b9..761059f43e 100644 --- a/resources/libraries/python/VppApiCrc.py +++ b/resources/libraries/python/VppApiCrc.py @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Cisco and/or its affiliates. +# Copyright (c) 2023 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -373,10 +373,25 @@ class VppApiCrcChecker: if not matching: self._reported[api_name] = crc self.log_and_raise( - f"No active collection contains API {api_name!r} with CRC {crc!r}" + f"No active collection has API {api_name!r} with CRC {crc!r}" ) options = self._options[api_name] options.pop(u"vat_help", None) if options: self._reported[api_name] = crc logger.console(f"{api_name} used but has options {options}") + + def print_warnings(self): + """Call check_api_name for every API name in surviving collections. + + Useful for VPP CRC checking job. + + Even though there usually is only one surviving collection, + the implementation has to be prepared for multiple collections, + and it should de-duplicate api names. + """ + api_name_to_crc_maps = self._expected.values() + api_name_sets = [set(n2c.keys()) for n2c in api_name_to_crc_maps] + api_names = set().union(*api_name_sets) + for api_name in sorted(api_names): + self.check_api_name(api_name)