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    CanisterDiagnosticsBatchEntry, CanisterDiagnosticsBatchReport, CanisterDiagnosticsReport,
47    CanisterDiagnosticsRequest, CanisterLogRenderLimits, DEFAULT_CANISTER_LOG_BYTE_LIMIT,
48    DEFAULT_CANISTER_LOG_RECORD_LIMIT, LabeledCanisterDiagnosticsRequest, PocketIcDiagnosticsExt,
49};
50pub use errors::{
51    CandidCallContext, CandidCallError, CandidCallErrorKind, CanisterInstallError,
52    StandaloneCanisterInstallError,
53};
54pub use lifecycle::{CanisterInstallExt, InstallSpec, RetryPolicy, RetryPolicyError};
55pub use snapshot::{
56    CanisterSnapshotTarget, ControllerSnapshotError, ControllerSnapshots, PocketIcSnapshotExt,
57    SnapshotAttemptFailure, SnapshotCleanupFailure, SnapshotRestoreFunding,
58};
59pub use standalone::StandaloneCanisterFixture;
60pub use standalone_pool::{
61    CachedStandaloneCanisterFixtureGuard, CachedStandaloneCanisterFixturePool,
62    StandaloneFixturePoolError, StandaloneFixturePoolOutcome, StandaloneFixturePoolRebuildReason,
63    StandaloneFixturePoolStage, StandaloneFixturePoolTimings,
64};
65pub use startup::{PocketIcBuilderExt, PocketIcStartupError};
66pub use time::PocketIcTimeExt;
67pub use transport::is_dead_pocket_ic_transport_error;
68
69/// All PocketIC extension traits, and no data types.
70///
71/// Importing this module keeps policy/data types explicit while avoiding
72/// repeated trait lists across a large integration-test crate.
73pub mod prelude {
74    pub use super::{
75        CandidCallExt, CanisterInstallExt, PocketIcBuilderExt, PocketIcDiagnosticsExt,
76        PocketIcSnapshotExt, PocketIcTimeExt,
77    };
78}