blob: cd05bab243ea653cc468fce4cc4f740bdbdee598 [file] [log] [blame]
James Kuszmaulfa398af2023-05-16 20:27:39 -07001def config_validator_test(name, config, logger_sets = [{}], check_for_not_logged_channels = False, extension = ".bfbs", visibility = None):
Milo Lin0ddb7782022-08-17 20:40:43 -07002 '''
3 Macro to take a config and pass it to the config validator to validate that it will work on a real system.
4
Milo Lin0ddb7782022-08-17 20:40:43 -07005 Args:
6 name: name that the config validator uses, e.g. "test_config",
7 config: config rule that needs to be validated, e.g. "//aos/events:pingpong_config",
8 '''
milind-uc6e437a2023-03-01 23:40:40 -08009 config_file = config + extension
James Kuszmaul827bd212023-05-15 23:57:39 -070010 config_json = json.encode({"logging": {"all_channels_logged": check_for_not_logged_channels, "logger_sets": logger_sets}})
James Kuszmaulfa398af2023-05-16 20:27:39 -070011 native.cc_test(
Milo Lin0ddb7782022-08-17 20:40:43 -070012 name = name,
James Kuszmaulfa398af2023-05-16 20:27:39 -070013 deps = ["//aos/util:config_validator"],
14 args = ["--config=$(location %s)" % config_file, "--validation_config='%s'" % config_json],
15 data = [config_file],
Milo Lin0ddb7782022-08-17 20:40:43 -070016 visibility = visibility,
17 )