Skip to main content

ic_testkit/pic/
mod.rs

1//! Direct PocketIC types plus value-adding host-test harness extensions.
2//!
3//! The complete upstream crate is available through [`crate::pocket_ic`]. This
4//! module keeps the common runtime types alongside ic-testkit's focused
5//! extension traits and policy types.
6//!
7//! Construct and own [`PocketIc`] instances normally, then import individual
8//! extension traits or [`prelude`] for Candid calls, installation, diagnostics,
9//! snapshots, fallible startup, bounded predicate polling and nanosecond time conversion. Native
10//! simulator operations remain upstream inherent methods.
11//!
12//! [`PocketIcManagedServer`] can explicitly own one exact caller-selected
13//! server child for a serial suite. No type serializes independent instances
14//! or owns PocketIC's server download/cache policy.
15
16pub use pocket_ic::{
17    CanisterStatusResult, ErrorCode, LATEST_SERVER_VERSION, PocketIc, PocketIcBuilder, RejectCode,
18    RejectResponse,
19};
20
21mod baseline;
22mod baseline_pool;
23mod bounded_pool;
24mod calls;
25mod diagnostics;
26mod errors;
27mod lifecycle;
28mod snapshot;
29mod standalone;
30mod standalone_pool;
31mod startup;
32mod time;
33mod transport;
34
35pub use baseline::CachedPocketIcBaseline;
36pub use baseline_pool::{
37    BaselinePoolContractError, BaselinePoolError, BaselinePoolOutcome,
38    BaselinePoolPreparationError, BaselinePoolTimings, BaselinePreparationStage,
39    CachedPocketIcBaselinePool, CachedPocketIcBaselinePoolGuard, CanisterRestoreReceipt,
40    CycleResetPolicy, ExtraCanisterPolicy, FailureDisposition, FixtureRecipeId,
41    PocketIcBaselineRecipe, PreparedBaseline, ReadinessReceipt, RebuildReason, ResetDomainKind,
42    ResetDomainPolicy, ResetReceipt, ResetRequirements, StateResetPolicy, TimeResetPolicy,
43    ValidationReceipt,
44};
45pub use calls::CandidCallExt;
46pub use diagnostics::{
47    CanisterDiagnosticFailure, CanisterDiagnosticLogRecord, CanisterDiagnosticLogs,
48    CanisterDiagnosticsBatchContractError, CanisterDiagnosticsBatchEntry,
49    CanisterDiagnosticsBatchReport, CanisterDiagnosticsReport, CanisterDiagnosticsRequest,
50    CanisterLogRenderLimits, DEFAULT_CANISTER_LOG_BYTE_LIMIT, DEFAULT_CANISTER_LOG_RECORD_LIMIT,
51    LabeledCanisterDiagnosticsRequest, PocketIcDiagnosticsExt,
52};
53pub use errors::{
54    CandidCallContext, CandidCallError, CandidCallErrorKind, CanisterInstallError,
55    CanisterInstallPhase, StandaloneCanisterInstallError,
56};
57pub use lifecycle::{CanisterInstallExt, InstallSpec, RetryPolicy, RetryPolicyError};
58pub use snapshot::{
59    CanisterSnapshotTarget, ControllerSnapshotError, ControllerSnapshots, PocketIcSnapshotExt,
60    SnapshotAttemptFailure, SnapshotCleanupFailure, SnapshotRestoreFunding,
61};
62pub use standalone::StandaloneCanisterFixture;
63pub use standalone_pool::{
64    CachedStandaloneCanisterFixtureGuard, CachedStandaloneCanisterFixturePool,
65    StandaloneFixturePoolError, StandaloneFixturePoolOutcome, StandaloneFixturePoolRebuildReason,
66    StandaloneFixturePoolStage, StandaloneFixturePoolTimings,
67};
68pub use startup::{
69    PocketIcBuilderExt, PocketIcManagedServer, PocketIcManagedServerOutput, PocketIcStartupConfig,
70    PocketIcStartupError,
71};
72pub use time::{PocketIcTimeExt, TickUntilError, tick_until};
73pub use transport::{PocketIcOperationError, is_dead_pocket_ic_transport_error};
74
75/// All PocketIC extension traits, and no data types.
76///
77/// Importing this module keeps policy/data types explicit while avoiding
78/// repeated trait lists across a large integration-test crate.
79pub mod prelude {
80    pub use super::{
81        CandidCallExt, CanisterInstallExt, PocketIcBuilderExt, PocketIcDiagnosticsExt,
82        PocketIcSnapshotExt, PocketIcTimeExt,
83    };
84}