xref: /llvm-project/llvm/utils/lit/tests/Inputs/googletest-detect-duplicate/DummySubDir/OneTest.py (revision b71edfaa4ec3c998aadb35255ce2f60bba2940b0)
12380c1b6SYuanfang Chen#!/usr/bin/env python
22380c1b6SYuanfang Chen
32380c1b6SYuanfang Chenimport os
42380c1b6SYuanfang Chenimport sys
52380c1b6SYuanfang Chen
62380c1b6SYuanfang Chenif len(sys.argv) == 3 and sys.argv[1] == "--gtest_list_tests":
7*b71edfaaSTobias Hieta    if sys.argv[2] != "--gtest_filter=-*DISABLED_*":
82380c1b6SYuanfang Chen        raise ValueError("unexpected argument: %s" % (sys.argv[2]))
9*b71edfaaSTobias Hieta    print(
10*b71edfaaSTobias Hieta        """\
112380c1b6SYuanfang ChenFirstTest.
12*b71edfaaSTobias Hieta  subTestA"""
13*b71edfaaSTobias Hieta    )
142380c1b6SYuanfang Chen    sys.exit(0)
152380c1b6SYuanfang Chenelif len(sys.argv) != 1:
162380c1b6SYuanfang Chen    # sharding and json output are specified using environment variables
17*b71edfaaSTobias Hieta    raise ValueError("unexpected argument: %r" % (" ".join(sys.argv[1:])))
182380c1b6SYuanfang Chen
19*b71edfaaSTobias Hietafor e in ["GTEST_TOTAL_SHARDS", "GTEST_SHARD_INDEX", "GTEST_OUTPUT"]:
202380c1b6SYuanfang Chen    if e not in os.environ:
212380c1b6SYuanfang Chen        raise ValueError("missing environment variables: " + e)
222380c1b6SYuanfang Chen
23*b71edfaaSTobias Hietaif not os.environ["GTEST_OUTPUT"].startswith("json:"):
24*b71edfaaSTobias Hieta    raise ValueError("must emit json output: " + os.environ["GTEST_OUTPUT"])
252380c1b6SYuanfang Chen
262380c1b6SYuanfang Chenoutput = """\
272380c1b6SYuanfang Chen{
282380c1b6SYuanfang Chen"random_seed": 123,
292380c1b6SYuanfang Chen"testsuites": [
302380c1b6SYuanfang Chen    {
312380c1b6SYuanfang Chen        "name": "FirstTest",
322380c1b6SYuanfang Chen        "testsuite": [
332380c1b6SYuanfang Chen            {
342380c1b6SYuanfang Chen                "name": "subTestA",
352380c1b6SYuanfang Chen                "result": "COMPLETED",
362380c1b6SYuanfang Chen                "time": "0.001s"
372380c1b6SYuanfang Chen            }
382380c1b6SYuanfang Chen        ]
392380c1b6SYuanfang Chen    }
402380c1b6SYuanfang Chen]
412380c1b6SYuanfang Chen}"""
422380c1b6SYuanfang Chen
432380c1b6SYuanfang Chendummy_output = """\
442380c1b6SYuanfang Chen{
452380c1b6SYuanfang Chen"testsuites": [
462380c1b6SYuanfang Chen]
472380c1b6SYuanfang Chen}"""
482380c1b6SYuanfang Chen
49*b71edfaaSTobias Hietajson_filename = os.environ["GTEST_OUTPUT"].split(":", 1)[1]
50*b71edfaaSTobias Hietawith open(json_filename, "w", encoding="utf-8") as f:
51*b71edfaaSTobias Hieta    if os.environ["GTEST_SHARD_INDEX"] == "0":
522380c1b6SYuanfang Chen        f.write(output)
532380c1b6SYuanfang Chen    else:
542380c1b6SYuanfang Chen        f.write(dummy_output)
552380c1b6SYuanfang Chen    exit_code = 0
562380c1b6SYuanfang Chen
572380c1b6SYuanfang Chensys.exit(exit_code)
58