[libc-commits] [libc] [libc] integration test outputs header in build (PR #98385)

via libc-commits libc-commits at lists.llvm.org
Wed Jul 10 13:59:46 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libc

Author: None (aaryanshukla)

<details>
<summary>Changes</summary>

- python's unittest does not allow for custom args so sys.argv was used


---
Full diff: https://github.com/llvm/llvm-project/pull/98385.diff


3 Files Affected:

- (modified) libc/newhdrgen/CMakeLists.txt (+3-3) 
- (removed) libc/newhdrgen/tests/output/test_small.h (-42) 
- (modified) libc/newhdrgen/tests/test_integration.py (+13-10) 


``````````diff
diff --git a/libc/newhdrgen/CMakeLists.txt b/libc/newhdrgen/CMakeLists.txt
index 33750d181c4b3..9b14d91ea510f 100644
--- a/libc/newhdrgen/CMakeLists.txt
+++ b/libc/newhdrgen/CMakeLists.txt
@@ -1,16 +1,16 @@
 if(LLVM_LIBC_FULL_BUILD)
-
   enable_testing()
 
   set(NEWHDGEN_TESTS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/tests)
+  set(TEST_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/newhdrgen/output)
 
   add_test(
     NAME newhdrgen_integration_test
-    COMMAND ${CMAKE_COMMAND} -E env PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR} python3 ${NEWHDGEN_TESTS_DIR}/test_integration.py
+    COMMAND python3 ${NEWHDGEN_TESTS_DIR}/test_integration.py --output_dir ${TEST_OUTPUT_DIR}
   )
   
   add_custom_target(check-newhdrgen
-    COMMAND ${CMAKE_CTEST_COMMAND} -R newhdrgen_integration_test
+    COMMAND ${CMAKE_CTEST_COMMAND} -R newhdrgen_integration_test --output-on-failure
   )
 
   message(STATUS "Integration test for newhdrgen added.")
diff --git a/libc/newhdrgen/tests/output/test_small.h b/libc/newhdrgen/tests/output/test_small.h
deleted file mode 100644
index d6ae0d0e282e7..0000000000000
--- a/libc/newhdrgen/tests/output/test_small.h
+++ /dev/null
@@ -1,42 +0,0 @@
-//===-- C standard library header test_small-------------------------------===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_LIBC_TEST_SMALL_H
-#define LLVM_LIBC_TEST_SMALL_H
-
-#include "__llvm-libc-common.h"
-#include "llvm-libc-macros/test_small-macros.h"
-
-#define MACRO_A 1
-
-#define MACRO_B 2
-
-#include <llvm-libc-types/type_a.h>
-#include <llvm-libc-types/type_b.h>
-
-enum {
-  enum_a = value_1,
-  enum_b = value_2,
-};
-
-__BEGIN_C_DECLS
-
-#ifdef FUNC_A_16
-void func_a()CONST_FUNC_A;
-#endif // FUNC_A_16
-
-#ifdef FUNC_B_16
-int func_b(int, float)CONST_FUNC_B;
-#endif // FUNC_B_16
-
-extern obj object_1;
-extern obj object_2;
-
-__END_C_DECLS
-
-#endif // LLVM_LIBC_TEST_SMALL_H
diff --git a/libc/newhdrgen/tests/test_integration.py b/libc/newhdrgen/tests/test_integration.py
index 59d8d4204a578..1b88e1cc6db72 100644
--- a/libc/newhdrgen/tests/test_integration.py
+++ b/libc/newhdrgen/tests/test_integration.py
@@ -3,23 +3,15 @@
 from pathlib import Path
 import os
 import argparse
+import sys
 
 
 class TestHeaderGenIntegration(unittest.TestCase):
     def setUp(self):
-        parser = argparse.ArgumentParser(
-            description="TestHeaderGenIntegration arguments"
-        )
-        parser.add_argument(
-            "--output_dir", type=str, help="Output directory for generated headers"
-        )
-        args, _ = parser.parse_known_args()
         output_dir_env = os.getenv("TEST_OUTPUT_DIR")
 
         self.output_dir = Path(
-            args.output_dir
-            if args.output_dir
-            else output_dir_env if output_dir_env else "libc/newhdrgen/tests/output"
+            output_dir_env if output_dir_env else "libc/newhdrgen/tests/output"
         )
 
         self.maxDiff = None
@@ -71,4 +63,15 @@ def test_generate_header(self):
 
 
 if __name__ == "__main__":
+    parser = argparse.ArgumentParser(description="TestHeaderGenIntegration arguments")
+    parser.add_argument(
+        "--output_dir", type=str, help="Output directory for generated headers"
+    )
+    args, remaining_argv = parser.parse_known_args()
+
+    if args.output_dir:
+        os.environ["TEST_OUTPUT_DIR"] = args.output_dir
+
+    sys.argv[1:] = remaining_argv
+
     unittest.main()

``````````

</details>


https://github.com/llvm/llvm-project/pull/98385


More information about the libc-commits mailing list