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. 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 or
14//! downloads a server implicitly. Explicit provisioning is owned by the
15//! published `ic-testkit-server setup` / `check` commands.
16
17pub use pocket_ic::{
18    CanisterStatusResult, ErrorCode, LATEST_SERVER_VERSION, PocketIc, PocketIcBuilder, RejectCode,
19    RejectResponse,
20};
21
22mod server;
23pub use server::{POCKET_IC_SERVER_VERSION, supports_pocket_ic_server};
24
25mod baseline;
26mod baseline_pool;
27mod bounded_pool;
28mod calls;
29mod diagnostics;
30mod errors;
31mod lifecycle;
32mod snapshot;
33mod standalone;
34mod standalone_recipe;
35mod startup;
36mod time;
37mod transport;
38
39pub use baseline::CachedPocketIcBaseline;
40pub use baseline_pool::{
41    BaselinePoolContractError, BaselinePoolDisposition, BaselinePoolError, BaselinePoolOutcome,
42    BaselinePoolPreparationError, BaselinePoolTimings, BaselinePreparationStage,
43    CachedPocketIcBaselinePool, CachedPocketIcBaselinePoolGuard, CanisterRestoreReceipt,
44    CycleResetPolicy, ExtraCanisterPolicy, FailureDisposition, FixtureRecipeId,
45    PocketIcBaselineRecipe, PreparedBaseline, ReadinessReceipt, RebuildReason, ResetDomainKind,
46    ResetDomainPolicy, ResetReceipt, ResetRequirements, StateResetPolicy, TimeResetPolicy,
47    ValidationReceipt,
48};
49pub use calls::{CandidCallExt, query_candid_args, update_candid_args};
50pub use diagnostics::{
51    CanisterDiagnosticLogRecord, CanisterDiagnosticLogs, CanisterDiagnosticsBatchContractError,
52    CanisterDiagnosticsBatchEntry, CanisterDiagnosticsBatchReport, CanisterDiagnosticsReport,
53    CanisterDiagnosticsRequest, CanisterLogRenderLimits, DEFAULT_CANISTER_LOG_BYTE_LIMIT,
54    DEFAULT_CANISTER_LOG_RECORD_LIMIT, LabeledCanisterDiagnosticsRequest, PocketIcDiagnosticsExt,
55};
56pub use errors::{
57    CandidCallContext, CandidCallError, CanisterInstallError, StandaloneCanisterInstallError,
58};
59pub use lifecycle::{CanisterInstallExt, InstallSpec, RetryPolicy};
60pub use snapshot::{
61    CanisterSnapshotTarget, ControllerSnapshotError, ControllerSnapshots, PocketIcSnapshotExt,
62    SnapshotCleanupFailure, SnapshotRestoreFunding,
63};
64pub use standalone::StandaloneCanisterFixture;
65pub use standalone_recipe::StandaloneCanisterRecipe;
66pub use startup::{
67    PocketIcInstance, PocketIcManagedServer, PocketIcManagedServerOutput, PocketIcStartupConfig,
68    PocketIcStartupError, PocketIcStartupFailure,
69};
70pub use time::{TickUntilError, advance_and_tick, tick_until};
71pub use transport::{
72    PocketIcCallFailure, PocketIcOperationError, is_dead_pocket_ic_transport_error,
73};
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, PocketIcDiagnosticsExt, PocketIcSnapshotExt,
82    };
83}