generate_buildbot_json_coveragetest.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/usr/bin/env vpython3
  2. # Copyright 2017 The Chromium Authors. All rights reserved.
  3. # Use of this source code is governed by a BSD-style license that can be
  4. # found in the LICENSE file.
  5. import coverage
  6. import io
  7. import sys
  8. import unittest
  9. class FakeStream(object): # pylint: disable=useless-object-inheritance
  10. def write(self, value):
  11. pass
  12. def flush(self):
  13. pass
  14. def main():
  15. cov = coverage.coverage(include='*generate_buildbot_json.py')
  16. cov.start()
  17. # pylint: disable=import-outside-toplevel
  18. import generate_buildbot_json_unittest
  19. # pylint: enable=import-outside-toplevel
  20. suite = unittest.TestLoader().loadTestsFromModule(
  21. generate_buildbot_json_unittest)
  22. unittest.TextTestRunner(stream=FakeStream()).run(suite)
  23. cov.stop()
  24. outf = io.StringIO()
  25. percentage = cov.report(file=outf, show_missing=True)
  26. if int(percentage) != 100:
  27. print(outf.getvalue())
  28. print('FATAL: Insufficient coverage (%.f%%)' % int(percentage))
  29. return 1
  30. return 0
  31. if __name__ == '__main__':
  32. sys.exit(main())