Skip to main content

ic_testkit/pic/
mod.rs

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