mirror of
https://github.com/yhirose/cpp-httplib.git
synced 2026-10-01 05:02:29 +07:00
Fix MakeFileBody/MakeFileProvider tests on Windows
These tests wrote to a hardcoded "/tmp/" path which does not exist on Windows, causing the file write to silently fail and the subsequent make_file_body / make_file_provider call to return zero-sized data. Use a relative path under the test working directory instead so the test runs identically on every platform. Also dump the shard log when a shard's process exits non-zero even when the gtest summary appears clean (e.g. sanitizer report after the suite, or assertion-based abort) — previously such failures were detected only via overall rc and showed no diagnostic output. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
b0866cff8f
commit
f50bd311fb
+8
-6
@@ -74,22 +74,24 @@ define run_parallel
|
||||
$(SETARCH) ./$(1) --gtest_color=yes > $(1)_shard_$$i.log 2>&1 & \
|
||||
pids="$$pids $$!"; \
|
||||
done; \
|
||||
rc=0; \
|
||||
exits=""; \
|
||||
for pid in $$pids; do \
|
||||
if ! wait $$pid; then rc=1; fi; \
|
||||
wait $$pid; exits="$$exits $$?"; \
|
||||
done; \
|
||||
for i in $$(seq 0 $$(($(SHARDS) - 1))); do \
|
||||
i=0; \
|
||||
for ec in $$exits; do \
|
||||
log=$(1)_shard_$$i.log; \
|
||||
if grep -q "\[ PASSED \]" $$log && ! grep -q "\[ FAILED \]" $$log; then \
|
||||
if grep -q "\[ PASSED \]" $$log && ! grep -q "\[ FAILED \]" $$log && [ $$ec -eq 0 ]; then \
|
||||
passed=$$(grep "\[ PASSED \]" $$log); \
|
||||
echo "Shard $$i: $$passed"; \
|
||||
else \
|
||||
echo "=== Shard $$i FAILED ==="; \
|
||||
echo "=== Shard $$i FAILED (exit=$$ec) ==="; \
|
||||
cat $$log; \
|
||||
fail=1; \
|
||||
fi; \
|
||||
i=$$((i+1)); \
|
||||
done; \
|
||||
if [ $$fail -ne 0 ] || [ $$rc -ne 0 ]; then exit 1; fi; \
|
||||
if [ $$fail -ne 0 ]; then exit 1; fi; \
|
||||
echo "All shards passed."
|
||||
endef
|
||||
|
||||
|
||||
+2
-2
@@ -12276,7 +12276,7 @@ TEST(MultipartFormDataTest, ManyItemsEndToEnd) {
|
||||
TEST(MultipartFormDataTest, MakeFileProvider) {
|
||||
// Verify make_file_provider sends a file's contents correctly.
|
||||
const std::string file_content(4096, 'Z');
|
||||
const std::string tmp_path = "/tmp/httplib_test_make_file_provider.bin";
|
||||
const std::string tmp_path = "./httplib_test_make_file_provider.bin";
|
||||
{
|
||||
std::ofstream ofs(tmp_path, std::ios::binary);
|
||||
ofs.write(file_content.data(),
|
||||
@@ -12331,7 +12331,7 @@ TEST(MultipartFormDataTest, MakeFileProvider) {
|
||||
|
||||
TEST(MakeFileBodyTest, Basic) {
|
||||
const std::string file_content(4096, 'Z');
|
||||
const std::string tmp_path = "/tmp/httplib_test_make_file_body.bin";
|
||||
const std::string tmp_path = "./httplib_test_make_file_body.bin";
|
||||
{
|
||||
std::ofstream ofs(tmp_path, std::ios::binary);
|
||||
ofs.write(file_content.data(),
|
||||
|
||||
Reference in New Issue
Block a user