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, 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::{
36    CachedPocketIcBaseline, CachedPocketIcBaselineGuard,
37    restore_or_rebuild_cached_pocket_ic_baseline,
38};
39pub use baseline_pool::{
40    BaselinePoolContractError, BaselinePoolError, BaselinePoolOutcome,
41    BaselinePoolPreparationError, BaselinePoolTimings, BaselinePreparationStage,
42    CachedPocketIcBaselinePool, CachedPocketIcBaselinePoolGuard, CanisterRestoreReceipt,
43    CycleResetPolicy, ExtraCanisterPolicy, FailureDisposition, FixtureRecipeId,
44    PocketIcBaselineRecipe, PreparedBaseline, ReadinessReceipt, RebuildReason, ResetAchievement,
45    ResetDomainKind, ResetReceipt, ResetRequirement, ResetRequirements, StateResetPolicy,
46    TimeResetPolicy, ValidationReceipt,
47};
48pub use calls::CandidCallExt;
49pub use diagnostics::{
50    CanisterDiagnosticFailure, CanisterDiagnosticLogRecord, CanisterDiagnosticLogs,
51    CanisterDiagnosticsBatchContractError, CanisterDiagnosticsBatchEntry,
52    CanisterDiagnosticsBatchReport, CanisterDiagnosticsReport, CanisterDiagnosticsRequest,
53    CanisterLogRenderLimits, DEFAULT_CANISTER_LOG_BYTE_LIMIT, DEFAULT_CANISTER_LOG_RECORD_LIMIT,
54    LabeledCanisterDiagnosticsRequest, PocketIcDiagnosticsExt,
55};
56pub use errors::{
57    CandidCallContext, CandidCallError, CandidCallErrorKind, CanisterInstallError,
58    StandaloneCanisterInstallError,
59};
60pub use lifecycle::{CanisterInstallExt, InstallSpec, RetryPolicy, RetryPolicyError};
61pub use snapshot::{
62    CanisterSnapshotTarget, ControllerSnapshotError, ControllerSnapshots, PocketIcSnapshotExt,
63    SnapshotAttemptFailure, SnapshotCleanupFailure, SnapshotRestoreFunding,
64};
65pub use standalone::StandaloneCanisterFixture;
66pub use standalone_pool::{
67    CachedStandaloneCanisterFixtureGuard, CachedStandaloneCanisterFixturePool,
68    StandaloneFixturePoolError, StandaloneFixturePoolOutcome, StandaloneFixturePoolRebuildReason,
69    StandaloneFixturePoolStage, StandaloneFixturePoolTimings,
70};
71pub use startup::{
72    PocketIcBuilderExt, PocketIcManagedServer, PocketIcManagedServerOutput, PocketIcStartupConfig,
73    PocketIcStartupError,
74};
75pub use time::PocketIcTimeExt;
76pub use transport::is_dead_pocket_ic_transport_error;
77
78/// All PocketIC extension traits, and no data types.
79///
80/// Importing this module keeps policy/data types explicit while avoiding
81/// repeated trait lists across a large integration-test crate.
82pub mod prelude {
83    pub use super::{
84        CandidCallExt, CanisterInstallExt, PocketIcBuilderExt, PocketIcDiagnosticsExt,
85        PocketIcSnapshotExt, PocketIcTimeExt,
86    };
87}