gpt4 book ai didi

bazel - 如何验证某些代码不能用 Bazel 编译?

转载 作者:行者123 更新时间:2023-12-05 06:39:27 27 4
gpt4 key购买 nike

我有几段 C++ 代码(模板、宏等),它们在使用某些方式时无法编译。手动编写一段代码来完成不应该编译的事情并验证它是否编译是很容易的,但这不是自动化的。看起来 Bazel 应该能够编译一段代码并自动验证它不会作为 bazel test 的一部分进行编译,这似乎是 C++ 代码中相当常见的情况。有没有内置的方法来做到这一点?

我试图避免使用我自己的 Skylark 规则生成调用 C++ 编译器的 shell 脚本,因为处理 Bazel 传递给 C++ 工具链的所有参数真的很难。目前,bazelbuild/bazel#146以及其他一些相关问题意味着所有信息甚至都不可用。

最佳答案

也许只是使用错误的代码作为 cc_binary 目标来创建测试,然后编写一个 shell 脚本或其他工具来调用 Bazel 来构建它们并检查返回码。虽然不是最干净的方法。

因此 shell 脚本会向 Bazel 发出一堆调用来执行类似的操作。至少您不必弄清楚 Bazel 进行的编译器调用,但您会失去 Bazel 的出色集成测试。

bazel build //tests:test_that_should_fail_at_compile_time
if [ $? != 0 ]; then
echo "Test Passed!"
fi

关于bazel - 如何验证某些代码不能用 Bazel 编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44532306/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com