blob: 0d274ed138f8a5cc05648357af568f580ad057d7 [file] [log] [blame]
#!/usr/bin/env python3
# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""
check golden files for end-to-end fidldoc tests
This script reads the jsonir_goldens.txt file whcih contains the list of JSON
IR golden files and makes sure there's a corresponding Markdown golden for each
of them. If a Markdown golden is missing, the script returns an error,
with instructions to move forward and a link to the documentation to generate
the missing goldens.
"""
import argparse
import os
from os import path
import sys
def main(name, argv):
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
'--input', metavar='FILE', help='path to jsonir_goldens.txt')
parser.add_argument(
'--goldens', metavar='FOLDER', help='path to markdown goldens')
args = parser.parse_args(argv)
with open(args.input, 'r') as f:
# Each line of this file points to a JSON IR golden
lines = f.readlines()
for line in lines:
line = line.rstrip() # strip the trailing \n
# Markdown goldens have the same filename as JSON IR goldens
# with a ".md" extension
golden_name = line + '.md'
golden_file = path.join(args.goldens, golden_name)
# No corresponding Markdown golden, let's stop the build and
# provide instructions to fix the issue
if not path.exists(golden_file):
print('No Markdown golden file for {}'.format(line))
print('To continue building, create the following file:')
print(golden_file)
print('Once the build is complete, follow instructions to regenerate goldens:')
print('https://fuchsia.googlesource.com/fuchsia/+/refs/heads/master/tools/fidl/fidldoc/README.md')
exit(1)
exit(0)
if __name__ == "__main__":
main(sys.argv[0], sys.argv[1:])