@@ -191,6 +191,7 @@ endfunction(get_object_files_for_test)
191
191
# SRCS <list of .cpp files for the test>
192
192
# HDRS <list of .h files for the test>
193
193
# DEPENDS <list of dependencies>
194
+ # ENV <list of environment variables to set before running the test>
194
195
# COMPILE_OPTIONS <list of special compile options for this target>
195
196
# LINK_LIBRARIES <list of linking libraries for this target>
196
197
# )
@@ -203,7 +204,7 @@ function(create_libc_unittest fq_target_name)
203
204
"LIBC_UNITTEST"
204
205
"NO_RUN_POSTBUILD;C_TEST" # Optional arguments
205
206
"SUITE;CXX_STANDARD" # Single value arguments
206
- "SRCS;HDRS;DEPENDS;COMPILE_OPTIONS;LINK_LIBRARIES;FLAGS" # Multi-value arguments
207
+ "SRCS;HDRS;DEPENDS;ENV; COMPILE_OPTIONS;LINK_LIBRARIES;FLAGS" # Multi-value arguments
207
208
${ARGN}
208
209
)
209
210
if (NOT LIBC_UNITTEST_SRCS)
@@ -319,7 +320,7 @@ function(create_libc_unittest fq_target_name)
319
320
if (NOT LIBC_UNITTEST_NO_RUN_POSTBUILD)
320
321
add_custom_target (
321
322
${fq_target_name}
322
- COMMAND ${fq_build_target_name}
323
+ COMMAND ${LIBC_UNITTEST_ENV} ${CMAKE_CROSSCOMPILING_EMULATOR} ${ fq_build_target_name}
323
324
COMMENT "Running unit test ${fq_target_name} "
324
325
)
325
326
endif ()
@@ -642,7 +643,7 @@ function(add_libc_hermetic test_name)
642
643
endif ()
643
644
cmake_parse_arguments (
644
645
"HERMETIC_TEST"
645
- "IS_GPU_BENCHMARK" # Optional arguments
646
+ "IS_GPU_BENCHMARK;NO_RUN_POSTBUILD " # Optional arguments
646
647
"SUITE;CXX_STANDARD" # Single value arguments
647
648
"SRCS;HDRS;DEPENDS;ARGS;ENV;COMPILE_OPTIONS;LINK_LIBRARIES;LOADER_ARGS" # Multi-value arguments
648
649
${ARGN}
@@ -713,7 +714,12 @@ function(add_libc_hermetic test_name)
713
714
set_target_properties (${fq_target_name} .__libc__
714
715
PROPERTIES ARCHIVE_OUTPUT_NAME ${fq_target_name} .libc)
715
716
716
- set (fq_build_target_name ${fq_target_name} .__build__)
717
+ if (HERMETIC_TEST_NO_RUN_POSTBUILD)
718
+ set (fq_build_target_name ${fq_target_name} )
719
+ else ()
720
+ set (fq_build_target_name ${fq_target_name} .__build__)
721
+ endif ()
722
+
717
723
add_executable (
718
724
${fq_build_target_name}
719
725
EXCLUDE_FROM_ALL
@@ -794,26 +800,28 @@ function(add_libc_hermetic test_name)
794
800
get_target_property (gpu_loader_exe libc.utils.gpu.loader "EXECUTABLE" )
795
801
endif ()
796
802
797
- set (test_cmd ${HERMETIC_TEST_ENV}
798
- $<$<BOOL :${LIBC_TARGET_OS_IS_GPU} >:${gpu_loader_exe} > ${CMAKE_CROSSCOMPILING_EMULATOR} ${HERMETIC_TEST_LOADER_ARGS}
799
- $<TARGET_FILE:${fq_build_target_name} > ${HERMETIC_TEST_ARGS} )
800
- add_custom_target (
801
- ${fq_target_name}
802
- DEPENDS ${fq_target_name} -cmd
803
- )
803
+ if (NOT HERMETIC_TEST_NO_RUN_POSTBUILD)
804
+ set (test_cmd ${HERMETIC_TEST_ENV}
805
+ $<$<BOOL :${LIBC_TARGET_OS_IS_GPU} >:${gpu_loader_exe} > ${CMAKE_CROSSCOMPILING_EMULATOR} ${HERMETIC_TEST_LOADER_ARGS}
806
+ $<TARGET_FILE:${fq_build_target_name} > ${HERMETIC_TEST_ARGS} )
807
+ add_custom_target (
808
+ ${fq_target_name}
809
+ DEPENDS ${fq_target_name} .__cmd__
810
+ )
804
811
805
- add_custom_command (
806
- OUTPUT ${fq_target_name} -cmd
807
- COMMAND ${test_cmd}
808
- COMMAND_EXPAND_LISTS
809
- COMMENT "Running hermetic test ${fq_target_name} "
810
- ${LIBC_HERMETIC_TEST_JOB_POOL}
811
- )
812
+ add_custom_command (
813
+ OUTPUT ${fq_target_name} .__cmd__
814
+ COMMAND ${test_cmd}
815
+ COMMAND_EXPAND_LISTS
816
+ COMMENT "Running hermetic test ${fq_target_name} "
817
+ ${LIBC_HERMETIC_TEST_JOB_POOL}
818
+ )
812
819
813
- set_source_files_properties (${fq_target_name} -cmd
814
- PROPERTIES
815
- SYMBOLIC "TRUE"
816
- )
820
+ set_source_files_properties (${fq_target_name} .__cmd__
821
+ PROPERTIES
822
+ SYMBOLIC "TRUE"
823
+ )
824
+ endif ()
817
825
818
826
add_dependencies (${HERMETIC_TEST_SUITE} ${fq_target_name} )
819
827
if (NOT ${HERMETIC_TEST_IS_GPU_BENCHMARK} )
0 commit comments