Skip to content

Commit 05b7b22

Browse files
authored
[libc] integration test outputs header in build (#98385)
- python's unittest does not allow for custom args so sys.argv was used
1 parent 3f1a767 commit 05b7b22

File tree

3 files changed

+15
-56
lines changed

3 files changed

+15
-56
lines changed

libc/newhdrgen/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
if(LLVM_LIBC_FULL_BUILD)
2-
32
enable_testing()
43

54
set(NEWHDGEN_TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
5+
set(TEST_OUTPUT_DIR ${CMAKE_BINARY_DIR}/newhdrgen/output)
66

77
add_test(
88
NAME newhdrgen_integration_test
9-
COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR} python3 ${NEWHDGEN_TESTS_DIR}/test_integration.py
9+
COMMAND python3 ${NEWHDGEN_TESTS_DIR}/test_integration.py --output_dir ${TEST_OUTPUT_DIR}
1010
)
1111

1212
add_custom_target(check-newhdrgen
13-
COMMAND ${CMAKE_CTEST_COMMAND} -R newhdrgen_integration_test
13+
COMMAND ${CMAKE_CTEST_COMMAND} -R newhdrgen_integration_test --output-on-failure
1414
)
1515

1616
message(STATUS "Integration test for newhdrgen added.")

libc/newhdrgen/tests/output/test_small.h

Lines changed: 0 additions & 42 deletions
This file was deleted.

libc/newhdrgen/tests/test_integration.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,14 @@
33
from pathlib import Path
44
import os
55
import argparse
6+
import sys
67

78

89
class TestHeaderGenIntegration(unittest.TestCase):
910
def setUp(self):
10-
parser = argparse.ArgumentParser(
11-
description="TestHeaderGenIntegration arguments"
12-
)
13-
parser.add_argument(
14-
"--output_dir", type=str, help="Output directory for generated headers"
15-
)
16-
args, _ = parser.parse_known_args()
17-
output_dir_env = os.getenv("TEST_OUTPUT_DIR")
1811

1912
self.output_dir = Path(
20-
args.output_dir
21-
if args.output_dir
22-
else output_dir_env if output_dir_env else "libc/newhdrgen/tests/output"
13+
args.output_dir if args.output_dir else "libc/newhdrgen/tests/output"
2314
)
2415

2516
self.maxDiff = None
@@ -71,4 +62,14 @@ def test_generate_header(self):
7162

7263

7364
if __name__ == "__main__":
65+
parser = argparse.ArgumentParser(description="TestHeaderGenIntegration arguments")
66+
parser.add_argument(
67+
"--output_dir", type=str, help="Output directory for generated headers"
68+
)
69+
args, remaining_argv = parser.parse_known_args()
70+
71+
TestHeaderGenIntegration.output_dir = args.output_dir
72+
73+
sys.argv[1:] = remaining_argv
74+
7475
unittest.main()

0 commit comments

Comments
 (0)