aboutsummaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
Diffstat (limited to 'resources')
-rw-r--r--resources/libraries/python/VppApiCrc.py17
-rw-r--r--resources/tools/integrated/check_crc.py3
2 files changed, 18 insertions, 2 deletions
diff --git a/resources/libraries/python/VppApiCrc.py b/resources/libraries/python/VppApiCrc.py
index 0cb8c2b7e7..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:
@@ -380,3 +380,18 @@ class VppApiCrcChecker:
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)
diff --git a/resources/tools/integrated/check_crc.py b/resources/tools/integrated/check_crc.py
index 6baa7a190d..01a557c30c 100644
--- a/resources/tools/integrated/check_crc.py
+++ b/resources/tools/integrated/check_crc.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:
@@ -47,6 +47,7 @@ def main():
checker = VppApiCrcChecker(api_dir)
try:
checker.report_initial_conflicts(report_missing=True)
+ checker.print_warnings()
except RuntimeError as err:
stderr_lines = [
f"{err!r}",