| commit | f72c0e245cba5fe7eb7c579d02cf5a19acbc15da | [log] [tgz] |
|---|---|---|
| author | Brandon Castellano <bcastell@fuchsia.infra.roller.google.com> | Wed Apr 03 00:34:19 2024 +0000 |
| committer | Copybara-Service <copybara-worker@google.com> | Tue Apr 02 17:35:59 2024 -0700 |
| tree | 87a48726c0654c037acad99c04d1da9b16d5efe5 | |
| parent | 62da402defbe6ce4c540229bc7e4dc42fe090503 [diff] |
[roll] Roll fuchsia [storage][conformance] Switch to VmoFile for pseudo-files
While implementing Open2 support, it was discovered that pseduo-files in
the C++ VFS libraries aren't necessarily conformant for various reasons:
1. Each client has a separate read/write buffer.
2. Buffered pseudo-file side effects are only visible when a
connection is closed.
3. It is not possible to tell unbuffered pseudo-file writes
apart from appends.
To avoid these pitfalls, we use VmoFile types for both of the C++ VFS
harnesses. This ensures side effects are immediately visible for all
reads/writes across all connections.
Nearly every use of these types initializes the file's contents with
static or constant data, so these types also incur greater memory usage
for typical use cases. In the future we might want to consider creating
a more efficient type for reading static/constant data, and encourage
users to use VmoFile types to avoid unexpected behavior.
Also cleanup various conformance harness options. For example, every
library/filesystem under test supports getting backing memory for
VmoFile types, and all support mutable files. Disable supports_append
temporarily for C++ VFS harnesses, as VmoFiles do not yet support
append, and this option is only used for Open2 tests currently.
Original-Bug: b/324112857
Test: fx test sdkcpp-io1-conformance-test cppvfs-io1-conformance-test
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1019293
Original-Revision: 10fbf06fa79fce2e2f1912fa835026cebbf64033
GitOrigin-RevId: f25781e28ca7b3d81d16d9382ffb0db8e38ef640
Change-Id: I5dd981cafc74b129cafee4fae18455c6baf88b40
This repository contains Fuchsia's Global Integration manifest files.
All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.
Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.