Skip to content

Commit fc6a167

Browse files
chore(adj-validator): copy ADJ-Validator from test-adj
1 parent e34fc4e commit fc6a167

File tree

3 files changed

+49
-5
lines changed

3 files changed

+49
-5
lines changed

.github/workflows/scripts/adj-tester/main.py

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
ADJ Validator
44
5-
Version: 1.1.0
5+
Version: 11.1.2
66
77
JavierRibaldelRio
88
@@ -381,7 +381,9 @@ def check_measurement_json(path: str, previous_ids=None):
381381
return is_valid
382382

383383

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+
):
385387
"""Validate a packet JSON file.
386388
387389
Ensures schema conformance, global uniqueness of packet IDs
@@ -429,6 +431,10 @@ def check_packet_json(path: str, sockets: set, measurement_ids=None):
429431
)
430432
)
431433
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)
432438

433439
# Ensure that socket is defined in the sockets
434440
socket_name = pkt.get("socket", "")
@@ -494,7 +500,13 @@ def check_socket_json(path: str, sockets_name: set):
494500

495501
else:
496502
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+
):
498510
error_list.append(
499511
logError(
500512
path,
@@ -591,6 +603,7 @@ def main():
591603

592604
# measurements are unique within a board
593605
measurement_ids = set()
606+
used_measurement_ids = set()
594607

595608
# sockets are unique
596609
sockets_name = set()
@@ -621,9 +634,33 @@ def main():
621634
f"boards/{board_name}/{packets_path}",
622635
sockets_name,
623636
measurement_ids,
637+
used_measurement_ids,
624638
)
625639
and valid
626640
)
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+
)
627664
else:
628665
log_message(
629666
f"Skipping measurements and packets validation for board {board_name} due to previous errors",

.github/workflows/scripts/adj-tester/schema/packet.schema.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,21 @@
3737
},
3838
"description": "Measurement IDs included in this packet"
3939
},
40-
"period_ms": {
40+
"period": {
4141
"type": [
4242
"integer",
4343
"number"
4444
],
4545
"description": "Packet transmission period in milliseconds"
4646
},
47+
"period_type": {
48+
"type": "string",
49+
"enum": [
50+
"us",
51+
"ms"
52+
],
53+
"description": "Unit type for period (microseconds or milliseconds)"
54+
},
4755
"socket": {
4856
"type": "string",
4957
"description": "Name of the socket used for this packet"

.github/workflows/scripts/adj-tester/schema/socket.schema.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
},
4141
"remote_ip": {
4242
"type": "string",
43-
"format": "ipv4",
4443
"description": "Remote IPv4 address"
4544
},
4645
"remote_port": {

0 commit comments

Comments
 (0)