| #!/usr/bin/env vpython |
| # -*- coding: UTF-8 -*- |
| # |
| # Copyright 2021 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """ |
| Asserts that expected and generated list of GRD files is equal. |
| """ |
| |
| import sys |
| import json |
| |
| |
| def main(argv): |
| expected_grd_sources = open(argv[1], 'r').read() |
| generated_grd_sources = open(argv[2], 'r').read() |
| stamp_file = argv[3] |
| |
| expected_json = json.loads(expected_grd_sources) |
| generated_json = json.loads(generated_grd_sources) |
| |
| expected_json.sort() |
| generated_json.sort() |
| |
| return_code = 0 |
| |
| for expected_file in expected_json: |
| if expected_file not in generated_json: |
| print( |
| "File " + expected_file + |
| " is not generated by any action in front_end." + |
| " Either remove it from config/gni/devtools_grd_files.gni" + |
| " or add the missing file to an action" + |
| " (for example a devtools_module or devtools_entrypoint definition).\n" |
| ) |
| |
| return_code = 1 |
| |
| for generated_file in generated_json: |
| if generated_file not in expected_json: |
| print( |
| "File " + generated_file + |
| " is not listed in config/gni/devtools_grd_files.gni." + |
| " Either add the file to the grd_files_release_sources/grd_files_debug_sources," |
| + " or remove the generated file from an action.\n") |
| |
| return_code = 1 |
| |
| with open(stamp_file, 'w', encoding="utf8") as fp: |
| fp.write("") |
| |
| return return_code |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main(sys.argv)) |