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

via libc-commits libc-commits at lists.llvm.org
Thu Jul 11 11:05:03 PDT 2024


Author: aaryanshukla
Date: 2024-07-11T11:05:00-07:00
New Revision: 05b7b22a2f28f7bdeea61e6e55871c2db4cdab3b

URL: https://github.com/llvm/llvm-project/commit/05b7b22a2f28f7bdeea61e6e55871c2db4cdab3b
DIFF: https://github.com/llvm/llvm-project/commit/05b7b22a2f28f7bdeea61e6e55871c2db4cdab3b.diff

LOG: [libc] integration test outputs header in build (#98385)

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

Added: 
    

Modified: 
    libc/newhdrgen/CMakeLists.txt
    libc/newhdrgen/tests/test_integration.py

Removed: 
    libc/newhdrgen/tests/output/test_small.h


################################################################################
diff  --git a/libc/newhdrgen/CMakeLists.txt b/libc/newhdrgen/CMakeLists.txt
index 33750d181c4b3..f8d003f8425bd 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_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..f12d18bc04a49 100644
--- a/libc/newhdrgen/tests/test_integration.py
+++ b/libc/newhdrgen/tests/test_integration.py
@@ -3,23 +3,14 @@
 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"
+            args.output_dir if args.output_dir else "libc/newhdrgen/tests/output"
         )
 
         self.maxDiff = None
@@ -71,4 +62,14 @@ 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()
+
+    TestHeaderGenIntegration.output_dir = args.output_dir
+
+    sys.argv[1:] = remaining_argv
+
     unittest.main()


        


More information about the libc-commits mailing list