[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
1 file changed
tree: 87a48726c0654c037acad99c04d1da9b16d5efe5
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cts
  6. firmware
  7. flower
  8. jiri.lock
  9. MILESTONE
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
  15. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

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.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.