pub struct Conformance { /* private fields */ }Expand description
Run identical object, range, prefix and immutable-create checks on any provider. The caller supplies the capability at construction, like production composition.
Implementations§
Source§impl Conformance
impl Conformance
Sourcepub fn new(storage: Arc<dyn Storage>, store: StoreId) -> Self
pub fn new(storage: Arc<dyn Storage>, store: StoreId) -> Self
The provider under test, with an unused store ID.
Two stores may publish the same device and number in one provider location.
Sourcepub async fn run(&self) -> Result<(), StorageError>
pub async fn run(&self) -> Result<(), StorageError>
Exercise the real provider operations, returning the first violated contract.
Sourcepub async fn creation_race(
&self,
claimants: [Arc<dyn Storage>; 3],
) -> Result<(), StorageError>
pub async fn creation_race( &self, claimants: [Arc<dyn Storage>; 3], ) -> Result<(), StorageError>
Setups of one store race for its first sequence slot (§10.3, D10): of three concurrent creates, one per claimant connection, exactly one wins and keeps its bytes, and the others are refused as occupied. The winner’s connection deletes the slot afterwards.
Source§impl Conformance
impl Conformance
Sourcepub async fn listing_times(
&self,
stored_at: StorageTime,
advance: impl Future<Output = ()>,
)
pub async fn listing_times( &self, stored_at: StorageTime, advance: impl Future<Output = ()>, )
Preserve provider publication times and sizes through listings and retries. Advance the fixture clock after publication to distinguish retry timestamps.
Sourcepub async fn expired_session(
&self,
expire: impl Future<Output = ()>,
) -> StorageError
pub async fn expired_session( &self, expire: impl Future<Output = ()>, ) -> StorageError
Restart an expired recording at its original destination with no progress. Return the expiry error so native fixtures can also inspect its provider cause.
Sourcepub async fn owner_only_sharing(&self)
pub async fn owner_only_sharing(&self)
Non-owner accounts may neither add nor remove another account’s access.
Sourcepub async fn lost_part_reply(
&self,
part_size: usize,
lose: impl Future<Output = ()>,
)
pub async fn lost_part_reply( &self, part_size: usize, lose: impl Future<Output = ()>, )
Restore a persisted recording after the provider accepts a part but loses its reply.
Sourcepub async fn permission_failures(
&self,
deny: impl Future<Output = ()>,
) -> Vec<StorageError>
pub async fn permission_failures( &self, deny: impl Future<Output = ()>, ) -> Vec<StorageError>
Every object, upload and sharing operation preserves a permission failure.
Source§impl Conformance
impl Conformance
Sourcepub async fn conditional_floor_upload(&self)
pub async fn conditional_floor_upload(&self)
Competing recorded floor uploads keep the original absent/revision condition through parts, serialization, resumption and publication.
Auto Trait Implementations§
impl Freeze for Conformance
impl !RefUnwindSafe for Conformance
impl Send for Conformance
impl Sync for Conformance
impl Unpin for Conformance
impl UnsafeUnpin for Conformance
impl !UnwindSafe for Conformance
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more