It covers:
stream_factory_create_stream() with a registered fs_stream adapterThe fs_stream adapter is registered through the Composition Root API, and the resulting stream is validated through the public borrower API.
f designates a valid factory instance previously created by stream_create_factory().fs_stream adapter descriptor registered under the key "fs".args designates a valid fs_stream_args_t object prepared by the fixture.f, key, args, and out must not be NULL.key must not be NULL and must not be an empty string.args->path must not be NULL and must not be an empty string.args->flags must not be zero.STREAM_STATUS_OK.*out.stream_destroy().STREAM_STATUS_INVALID for invalid argumentsSTREAM_STATUS_NOT_FOUND if key is not registeredSTREAM_STATUS_IO_ERROR when OSAL file operations fail*out unchanged if out is not NULL.fake_file| WHEN | EXPECT |
|---|---|
stream_factory_create_stream(f, key, args, out) is called with a valid factory, a registered fs_stream key, valid fs_stream arguments, and backend file open succeeds | returns STREAM_STATUS_OK;stores a non- NULL stream handle in *out;the produced stream is ready for normal runtime use |
args == NULL | returns STREAM_STATUS_INVALID;leaves *out unchanged |
out == NULL | returns STREAM_STATUS_INVALID;no stream handle is produced |
args != NULL but args->path == NULL | returns STREAM_STATUS_INVALID;leaves *out unchanged |
args != NULL but args->path is an empty string | returns STREAM_STATUS_INVALID;leaves *out unchanged |
args != NULL but args->flags == 0 | returns STREAM_STATUS_INVALID;leaves *out unchanged |
stream_factory_create_stream(f, key, args, out) is called with a valid factory, a registered fs_stream key, valid fs_stream arguments, and backend file open fails | returns STREAM_STATUS_IO_ERROR;leaves *out unchanged |
f == NULL | returns STREAM_STATUS_INVALID;leaves *out unchanged |
key == NULL | returns STREAM_STATUS_INVALID;leaves *out unchanged |
key is an empty string | returns STREAM_STATUS_INVALID;leaves *out unchanged |
f designates a valid factory instance but key is not registered in that factory | returns STREAM_STATUS_NOT_FOUND;leaves *out unchanged |
fs_stream adapter descriptor is created through fs_stream_create_desc() and registered into the factory before the call under test.fake_file.