Skip to content

Commit cef2dd6

Browse files
authored
[SYCL] Support extra environment variables in LIT (#3598)
Add ability to set extra environment variables in CMake (LIT_EXTRA_ENVIRONMENT) or LIT (extra_environment) parameters. The value should contain comma separated VARIABLE=VALUE pairs.
1 parent ea59c2b commit cef2dd6

File tree

4 files changed

+28
-2
lines changed

4 files changed

+28
-2
lines changed

sycl/test/lit.cfg.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,23 @@
3535
# test_exec_root: The root path where tests should be run.
3636
config.test_exec_root = os.path.join(config.sycl_obj_root, 'test')
3737

38+
llvm_config.use_clang()
39+
3840
# Propagate some variables from the host environment.
3941
llvm_config.with_system_environment(['PATH', 'OCL_ICD_FILENAMES', 'SYCL_DEVICE_ALLOWLIST', 'SYCL_CONFIG_FILE_NAME'])
4042

43+
# Propagate extra environment variables
44+
if config.extra_environment:
45+
lit_config.note("Extra environment variables")
46+
for env_pair in config.extra_environment.split(','):
47+
[var,val]=env_pair.split("=")
48+
if val:
49+
llvm_config.with_environment(var,val)
50+
lit_config.note("\t"+var+"="+val)
51+
else:
52+
lit_config.note("\tUnset "+var)
53+
llvm_config.with_environment(var,"")
54+
4155
# Configure LD_LIBRARY_PATH or corresponding os-specific alternatives
4256
# Add 'libcxx' feature to filter out all SYCL abi tests when SYCL runtime
4357
# is built with llvm libcxx. This feature is added for Linux only since MSVC
@@ -76,8 +90,6 @@
7690
config.substitutions.append( ('%llvm_build_lib_dir', config.llvm_build_lib_dir ) )
7791
config.substitutions.append( ('%llvm_build_bin_dir', config.llvm_build_bin_dir ) )
7892

79-
llvm_config.use_clang()
80-
8193
llvm_config.add_tool_substitutions(['llvm-spirv'], [config.sycl_tools_dir])
8294

8395
config.substitutions.append( ('%RUN_ON_HOST', "env SYCL_DEVICE_FILTER=host ") )

sycl/test/lit.site.cfg.py.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ config.llvm_enable_projects = "@LLVM_ENABLE_PROJECTS@"
2323

2424
config.sycl_threads_lib = '@SYCL_THREADS_LIB@'
2525
config.sycl_use_libcxx = '@SYCL_USE_LIBCXX@'
26+
config.extra_environment = lit_config.params.get("extra_environment", "@LIT_EXTRA_ENVIRONMENT@")
2627

2728
import lit.llvm
2829
lit.llvm.initialize(lit_config, config)

sycl/test/on-device/lit.cfg.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,18 @@
4040
# Propagate some variables from the host environment.
4141
llvm_config.with_system_environment(['PATH', 'OCL_ICD_FILENAMES', 'SYCL_DEVICE_ALLOWLIST', 'SYCL_CONFIG_FILE_NAME'])
4242

43+
# Propagate extra environment variables
44+
if config.extra_environment:
45+
lit_config.note("Extra environment variables")
46+
for env_pair in config.extra_environment.split(','):
47+
[var,val]=env_pair.split("=")
48+
if val:
49+
llvm_config.with_environment(var,val)
50+
lit_config.note("\t"+var+"="+val)
51+
else:
52+
lit_config.note("\tUnset "+var)
53+
llvm_config.with_environment(var,"")
54+
4355
# Configure LD_LIBRARY_PATH or corresponding os-specific alternatives
4456
if platform.system() == "Linux":
4557
config.available_features.add('linux')

sycl/test/on-device/lit.site.cfg.py.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ config.level_zero_include_dir = lit_config.params.get('LEVEL_ZERO_INCLUDE_DIR',
2525
config.llvm_enable_projects = "@LLVM_ENABLE_PROJECTS@"
2626

2727
config.sycl_threads_lib = '@SYCL_THREADS_LIB@'
28+
config.extra_environment = lit_config.params.get("extra_environment", "@LIT_EXTRA_ENVIRONMENT@")
2829

2930
import lit.llvm
3031
lit.llvm.initialize(lit_config, config)

0 commit comments

Comments
 (0)