blob: 989ece98e43b0f4a2cae16cffd2abf1546592c3e [file] [log] [blame]
James Kuszmaul464012b2024-03-20 14:12:08 -07001load("//tools/build_rules:clean_dep.bzl", "clean_dep")
2
3def config_validator_test(name, config, logger_sets = [{}], check_for_not_logged_channels = False, validate_individual_node_loggers = False, extension = ".bfbs", visibility = None):
Milo Lin0ddb7782022-08-17 20:40:43 -07004 '''
5 Macro to take a config and pass it to the config validator to validate that it will work on a real system.
6
Milo Lin0ddb7782022-08-17 20:40:43 -07007 Args:
8 name: name that the config validator uses, e.g. "test_config",
9 config: config rule that needs to be validated, e.g. "//aos/events:pingpong_config",
10 '''
milind-uc6e437a2023-03-01 23:40:40 -080011 config_file = config + extension
James Kuszmaul464012b2024-03-20 14:12:08 -070012 config_json = json.encode({"logging": {"all_channels_logged": check_for_not_logged_channels, "validate_individual_node_loggers": validate_individual_node_loggers, "logger_sets": logger_sets}})
James Kuszmaulfa398af2023-05-16 20:27:39 -070013 native.cc_test(
Milo Lin0ddb7782022-08-17 20:40:43 -070014 name = name,
James Kuszmaul464012b2024-03-20 14:12:08 -070015 deps = [clean_dep("//aos/util:config_validator")],
James Kuszmaulfa398af2023-05-16 20:27:39 -070016 args = ["--config=$(location %s)" % config_file, "--validation_config='%s'" % config_json],
17 data = [config_file],
Milo Lin0ddb7782022-08-17 20:40:43 -070018 visibility = visibility,
19 )