52 lines · plain
1import os2import sys3 4if len(sys.argv) == 3 and sys.argv[1] == "--gtest_list_tests":5 if sys.argv[2] != '--gtest_filter=-*DISABLED_*':6 raise ValueError("unexpected argument: %s" % (sys.argv[2]))7 print("""\8FirstTest.9 subTestA""")10 sys.exit(0)11elif len(sys.argv) != 1:12 # sharding and json output are specified using environment variables13 raise ValueError("unexpected argument: %r" % (' '.join(sys.argv[1:])))14 15for e in ['GTEST_TOTAL_SHARDS', 'GTEST_SHARD_INDEX', 'GTEST_OUTPUT']:16 if e not in os.environ:17 raise ValueError("missing environment variables: " + e)18 19if not os.environ['GTEST_OUTPUT'].startswith('json:'):20 raise ValueError("must emit json output: " + os.environ['GTEST_OUTPUT'])21 22output = """\23{24"testsuites": [25 {26 "name": "FirstTest",27 "testsuite": [28 {29 "name": "subTestA",30 "result": "COMPLETED",31 "time": "0.001s"32 }33 ]34 }35]36}"""37 38dummy_output = """\39{40"testsuites": [41]42}"""43 44json_filename = os.environ['GTEST_OUTPUT'].split(':', 1)[1]45with open(json_filename, 'w', encoding='utf-8') as f:46 if os.environ['GTEST_SHARD_INDEX'] == '0':47 f.write(output)48 else:49 f.write(dummy_output)50 51sys.exit(0)52