【问题标题】:bazel testdata absolute path need '/external/'bazel testdata 绝对路径需要'/external/'
【发布时间】:2017-09-21 10:47:39
【问题描述】:

我有一个测试:

cc_test(
    name = "common_test",
    linkstatic = 1,
    srcs = glob([
        "common/test/*.cpp",
    ]),
    linkopts = [
        "-L/usr/local/lib",
        "-L/usr/lib64",
        "-g",
        "-lcppunit",
        "-ldl",
        "-lz",
        "-ltbb",
        "-llz4",
    ],
    data= [
        "@:testdata"
    ]
)

我的测试数据定义在:

filegroup(
    name = "testdata",
    srcs = glob([
        "testdata/biz_test/*.json",
    ]),
    visibility = ["//visibility:public"]
)

TEST_PATH 从这里经过:

TESTBASE_BASE() {
    char cwdBuf[10240];
    if (getcwd(cwdBuf, 10240) == NULL) {
        std::cerr << "get cwd failed, error:" << strerror(errno) << std::endl;
        assert(false);
    }
    _testRootPath = cwdBuf;
}
std::string GET_TEST_DATA_PATH(std::string bazelTestPath = "") const {
    return _testRootPath + bazelTestPath + std::string("/testdata/");
}

在我的测试代码中:

GET_TEST_DATA_PATH() +"/biz_info_test/" can't find the testdata
GET_TEST_DATA_PATH('/external/my_project') +"/biz_info_test/" is ok

因为我有很多项目要改成bazel编译,所以我需要一个更通用的方法来解决testdata路径问题。我不想写这样的代码:

GET_TEST_DATA_PATH('/external/my_project1') +"/biz_info_test/"
GET_TEST_DATA_PATH('/external/my_project2') +"/biz_info_test/"
GET_TEST_DATA_PATH('/external/my_project3') +"/biz_info_test/"

我希望 bazel 可以这样做: 它可以找到我的 WORKSPACE 目录在哪里。

my_pj/
├── my_pj
│   └── BUILD
├── testdata
└── WORKSPACE
so my testdata dir is: _testRootPath + std::string("/testdata/")

【问题讨论】:

  • 您好,这是 Bazel 中的一个已知问题,我们正在重新设计外部存储库的布局,但这需要时间。你能在这里告诉你你想看什么吗?因为您肯定至少必须提供 id my_project1?
  • 我希望 bazel 可以这样做:它可以找到我的 WORKSPACE 目录在哪里。 my_pj/ ├── my_pj │ └── BUILD ├── testdata └── WORKSPACE 所以我的测试数据目录是:_testRootPath + std::string("/testdata/")
  • 我更新了我的问题

标签: absolute-path bazel test-data


【解决方案1】:

这是一个已知问题,我们正在努力对其进行更改以符合您的期望。不幸的是,这是一个艰难的改变,因为它影响了所有使用 Bazel 构建的项目(包括 Google 的所有内容)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多