|
2 | 2 |
|
3 | 3 | ADJ Validator |
4 | 4 |
|
5 | | -Version: 1.1.0 |
| 5 | +Version: 11.1.2 |
6 | 6 |
|
7 | 7 | JavierRibaldelRio |
8 | 8 |
|
@@ -381,7 +381,9 @@ def check_measurement_json(path: str, previous_ids=None): |
381 | 381 | return is_valid |
382 | 382 |
|
383 | 383 |
|
384 | | -def check_packet_json(path: str, sockets: set, measurement_ids=None): |
| 384 | +def check_packet_json( |
| 385 | + path: str, sockets: set, measurement_ids=None, used_measurement_ids=None |
| 386 | +): |
385 | 387 | """Validate a packet JSON file. |
386 | 388 |
|
387 | 389 | Ensures schema conformance, global uniqueness of packet IDs |
@@ -429,6 +431,10 @@ def check_packet_json(path: str, sockets: set, measurement_ids=None): |
429 | 431 | ) |
430 | 432 | ) |
431 | 433 | is_valid = False |
| 434 | + else: |
| 435 | + # Track that this measurement is being used |
| 436 | + if used_measurement_ids is not None: |
| 437 | + used_measurement_ids.add(meas_id) |
432 | 438 |
|
433 | 439 | # Ensure that socket is defined in the sockets |
434 | 440 | socket_name = pkt.get("socket", "") |
@@ -494,7 +500,13 @@ def check_socket_json(path: str, sockets_name: set): |
494 | 500 |
|
495 | 501 | else: |
496 | 502 | socket_ip = socket.get("remote_ip", "") |
497 | | - if socket_ip != "" and not is_valid_ipv4(socket_ip): |
| 503 | + |
| 504 | + # Remote ip might also be backend |
| 505 | + if ( |
| 506 | + socket_ip != "" |
| 507 | + and not is_valid_ipv4(socket_ip) |
| 508 | + and socket_ip.lower() != "backend" |
| 509 | + ): |
498 | 510 | error_list.append( |
499 | 511 | logError( |
500 | 512 | path, |
@@ -591,6 +603,7 @@ def main(): |
591 | 603 |
|
592 | 604 | # measurements are unique within a board |
593 | 605 | measurement_ids = set() |
| 606 | + used_measurement_ids = set() |
594 | 607 |
|
595 | 608 | # sockets are unique |
596 | 609 | sockets_name = set() |
@@ -621,9 +634,33 @@ def main(): |
621 | 634 | f"boards/{board_name}/{packets_path}", |
622 | 635 | sockets_name, |
623 | 636 | measurement_ids, |
| 637 | + used_measurement_ids, |
624 | 638 | ) |
625 | 639 | and valid |
626 | 640 | ) |
| 641 | + |
| 642 | + # Check for measurements that are defined but not used |
| 643 | + unused_measurements = measurement_ids - used_measurement_ids |
| 644 | + unused_error_list = [] |
| 645 | + if unused_measurements: |
| 646 | + for measurement_id in sorted(unused_measurements): |
| 647 | + unused_error_list.append( |
| 648 | + logError( |
| 649 | + f"{board_name} - GENERAL INFO", |
| 650 | + f"measurement id '{measurement_id}'", |
| 651 | + f"Measurement id '{measurement_id}' is defined but never used in any packet or order", |
| 652 | + ) |
| 653 | + ) |
| 654 | + valid = False |
| 655 | + |
| 656 | + if unused_error_list: |
| 657 | + print_results( |
| 658 | + f"boards/{board_name}", |
| 659 | + False, |
| 660 | + unused_error_list, |
| 661 | + type="(Unused Measurements)", |
| 662 | + prefix="\t", |
| 663 | + ) |
627 | 664 | else: |
628 | 665 | log_message( |
629 | 666 | f"Skipping measurements and packets validation for board {board_name} due to previous errors", |
|
0 commit comments