| 149 | } |
| 150 | |
| 151 | void test_head_case(Client* client, estring_view url, off_t st, size_t len, size_t exp_content_length) { |
| 152 | LOG_INFO("test HEAD case start"); |
| 153 | auto op = client->new_operation(Verb::HEAD, url); |
| 154 | DEFER(client->destroy_operation(op)); |
| 155 | op->req.headers.range(st, st + len - 1); |
| 156 | op->req.headers.content_length(fs_handler_std_str.size()); |
| 157 | auto ret = op->call(); |
| 158 | LOG_INFO("call finished"); |
| 159 | EXPECT_EQ(0, ret); |
| 160 | if (exp_content_length != fs_handler_std_str.size()) |
| 161 | EXPECT_EQ(206, op->resp.status_code()); |
| 162 | else |
| 163 | EXPECT_EQ(200, op->resp.status_code()); |
| 164 | char range[64]; |
| 165 | auto range_len = snprintf(range, sizeof(range), "bytes %lu-%lu/%lu", |
| 166 | (unsigned long)st, (unsigned long)(st + len - 1), |
| 167 | (unsigned long)fs_handler_std_str.size()); |
| 168 | auto rangestr = op->resp.headers["Content-Range"]; |
| 169 | EXPECT_EQ(0, memcmp(range, rangestr.data(), range_len)); |
| 170 | } |
| 171 | |
| 172 | TEST(http_server, fs_handler) { |
| 173 | system(std::string("mkdir -p /tmp/ease_ut/http_server/").c_str()); |
no test coverage detected