James Kuszmaul | 464012b | 2024-03-20 14:12:08 -0700 | [diff] [blame^] | 1 | load("//tools/build_rules:clean_dep.bzl", "clean_dep") |
| 2 | |
| 3 | def config_validator_test(name, config, logger_sets = [{}], check_for_not_logged_channels = False, validate_individual_node_loggers = False, extension = ".bfbs", visibility = None): |
Milo Lin | 0ddb778 | 2022-08-17 20:40:43 -0700 | [diff] [blame] | 4 | ''' |
| 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 Lin | 0ddb778 | 2022-08-17 20:40:43 -0700 | [diff] [blame] | 7 | 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-u | c6e437a | 2023-03-01 23:40:40 -0800 | [diff] [blame] | 11 | config_file = config + extension |
James Kuszmaul | 464012b | 2024-03-20 14:12:08 -0700 | [diff] [blame^] | 12 | 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 Kuszmaul | fa398af | 2023-05-16 20:27:39 -0700 | [diff] [blame] | 13 | native.cc_test( |
Milo Lin | 0ddb778 | 2022-08-17 20:40:43 -0700 | [diff] [blame] | 14 | name = name, |
James Kuszmaul | 464012b | 2024-03-20 14:12:08 -0700 | [diff] [blame^] | 15 | deps = [clean_dep("//aos/util:config_validator")], |
James Kuszmaul | fa398af | 2023-05-16 20:27:39 -0700 | [diff] [blame] | 16 | args = ["--config=$(location %s)" % config_file, "--validation_config='%s'" % config_json], |
| 17 | data = [config_file], |
Milo Lin | 0ddb778 | 2022-08-17 20:40:43 -0700 | [diff] [blame] | 18 | visibility = visibility, |
| 19 | ) |