Skip to content

Fix/CI failures#345

Open
gennaroprota wants to merge 3 commits into
developfrom
fix/ci-failures
Open

Fix/CI failures#345
gennaroprota wants to merge 3 commits into
developfrom
fix/ci-failures

Conversation

@gennaroprota

Copy link
Copy Markdown
Collaborator

No description provided.

GCC's initial `<filesystem>` (before version 9) shipped in a separate
libstdc++fs and is unreliable: serializing a `std::filesystem::path`
segfaults at runtime in CI. Exclude those versions from the availability
guard so the feature is inert.

Refs issue #337.
The wide *text* archive transcodes a narrow `std::string` through the
stream locale's `codecvt_null`, which cannot represent bytes outside the
ASCII range; it is the only archive in the test list that fails to
round-trip non-ASCII content. The others preserve it: narrow text and
XML store the bytes verbatim, binary stores them raw, and wide XML
installs a UTF-8 codecvt.

Rather than dropping the non-ASCII path from the test entirely, exercise
it against every archive but the wide-text one.
The example programs write to fixed temp filenames---demo and
demo_exception even share tmpdir()/demofile.txt---so running them under
`b2 -jN` with N > 1 races: concurrent processes clobber each other's
archive files and a reader picks up a half-written one, throwing
`archive_exception`. Therefore, run the examples under `-j1` (the tests
keep running in parallel).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant