LLVM LIT:是否可以将用户定义的参数传递到测试脚本中?
LLVM LIT: Is it possible to pass user defined parameter into a test script?
有人知道如何参数化 llvm-lit 脚本吗?我需要将一些环境变量值传递到脚本中,以便在某些工具的命令行中使用它。
例如,测试脚本可以包含以下行:
// RUN: some-tool $SOME_ENV_VAR
我需要以某种方式传递 SOME_ENV_VAR 值。
根据 llvm-lit 的 documentation,有一个选项 -D 或 --param,但是不清楚如何在脚本中访问此用户定义的参数。
提前致谢。
如果您能够修改 lit.cfg 脚本(或用于生成配置的脚本),您可以在那里使用 Python 的所有灵活性。例如,您可以添加:
some_var = os.environ.get('SOME_ENV_VAR', '')
然后你可以添加查找替换元组:
config.substitutions.append(('%some_var', some_var))
现在,只要 %some_var 出现在 运行 行中,lit 就会替换环境变量的值,因为它是您的测试套件开始时的值。
Eric 的解决方案是有效的,我一直在我的 macOS 和 Linux 项目中使用它,直到我遇到传递环境变量在 Windows 上不起作用。
一种更便携的解决方案是使用 Lit 自己的 -D/--params 选项:
-D NAME[=VALUE], --param NAME[=VALUE]
Add a user defined parameter NAME with the given VALUE (or the empty string if not given). The meaning and use of these parameters is test suite dependent.
示例:lit ... --param SOME_VAR=Foo ...
在lit.cfg
中可以通过lit_config
全局变量访问参数如下:
some_var = lit_config.params['SOME_VAR']
config.substitutions.append(('%some_var', some_var))
然后在你的测试中,你可以使用%some_var
。
我回答的背景:我使用 GitHub Actions(GitHub 的 CI 解决方案)在其 Windows 机器上运行 PowerShell 并且不支持PowerShell 中的环境变量。
有人知道如何参数化 llvm-lit 脚本吗?我需要将一些环境变量值传递到脚本中,以便在某些工具的命令行中使用它。
例如,测试脚本可以包含以下行:
// RUN: some-tool $SOME_ENV_VAR
我需要以某种方式传递 SOME_ENV_VAR 值。
根据 llvm-lit 的 documentation,有一个选项 -D 或 --param,但是不清楚如何在脚本中访问此用户定义的参数。
提前致谢。
如果您能够修改 lit.cfg 脚本(或用于生成配置的脚本),您可以在那里使用 Python 的所有灵活性。例如,您可以添加:
some_var = os.environ.get('SOME_ENV_VAR', '')
然后你可以添加查找替换元组:
config.substitutions.append(('%some_var', some_var))
现在,只要 %some_var 出现在 运行 行中,lit 就会替换环境变量的值,因为它是您的测试套件开始时的值。
Eric 的解决方案是有效的,我一直在我的 macOS 和 Linux 项目中使用它,直到我遇到传递环境变量在 Windows 上不起作用。
一种更便携的解决方案是使用 Lit 自己的 -D/--params 选项:
-D NAME[=VALUE], --param NAME[=VALUE]
Add a user defined parameter NAME with the given VALUE (or the empty string if not given). The meaning and use of these parameters is test suite dependent.
示例:lit ... --param SOME_VAR=Foo ...
在lit.cfg
中可以通过lit_config
全局变量访问参数如下:
some_var = lit_config.params['SOME_VAR']
config.substitutions.append(('%some_var', some_var))
然后在你的测试中,你可以使用%some_var
。
我回答的背景:我使用 GitHub Actions(GitHub 的 CI 解决方案)在其 Windows 机器上运行 PowerShell 并且不支持PowerShell 中的环境变量。