Documentation
¶
Index ¶
Constants ¶
const ( // DefaultReadyTimeout is the default timeout for waiting for RPC to be ready. DefaultReadyTimeout = 120 * time.Second // DefaultHealthCheckInterval is the interval between health checks. DefaultHealthCheckInterval = 1 * time.Second )
const ( RunStatusCompleted = "completed" RunStatusFailed = "failed" RunStatusContainerDied = "container_died" RunStatusCancelled = "cancelled" )
Run status constants.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
ResultsDir string
ResultsOwner *fsutil.OwnerConfig // Optional file ownership for results directory
ClientLogsToStdout bool
DockerNetwork string
JWT string
GenesisURLs map[string]string
DataDirs map[string]*config.DataDirConfig
TmpDataDir string // Directory for temporary datadir copies (empty = system default)
TmpCacheDir string // Directory for temporary cache files (empty = system default)
ReadyTimeout time.Duration
TestFilter string
FullConfig *config.Config // Full config for resolving per-instance settings
}
Config for the runner.
type ResolvedBlkioConfig ¶
type ResolvedBlkioConfig struct {
DeviceReadBps []ResolvedThrottleDevice `json:"device_read_bps,omitempty"`
DeviceReadIOps []ResolvedThrottleDevice `json:"device_read_iops,omitempty"`
DeviceWriteBps []ResolvedThrottleDevice `json:"device_write_bps,omitempty"`
DeviceWriteIOps []ResolvedThrottleDevice `json:"device_write_iops,omitempty"`
}
ResolvedBlkioConfig contains the resolved blkio configuration for config.json output.
type ResolvedInstance ¶
type ResolvedInstance struct {
ID string `json:"id"`
Client string `json:"client"`
Image string `json:"image"`
ImageSHA256 string `json:"image_sha256,omitempty"`
Entrypoint []string `json:"entrypoint,omitempty"`
Command []string `json:"command,omitempty"`
ExtraArgs []string `json:"extra_args,omitempty"`
PullPolicy string `json:"pull_policy"`
Restart string `json:"restart,omitempty"`
Environment map[string]string `json:"environment,omitempty"`
Genesis string `json:"genesis,omitempty"`
GenesisGroups map[string]string `json:"genesis_groups,omitempty"`
DataDir *config.DataDirConfig `json:"datadir,omitempty"`
ClientVersion string `json:"client_version,omitempty"`
RollbackStrategy string `json:"rollback_strategy,omitempty"`
DropMemoryCaches string `json:"drop_memory_caches,omitempty"`
WaitAfterRPCReady string `json:"wait_after_rpc_ready,omitempty"`
RetryNewPayloadsSyncingState *config.RetryNewPayloadsSyncingConfig `json:"retry_new_payloads_syncing_state,omitempty"`
ResourceLimits *ResolvedResourceLimits `json:"resource_limits,omitempty"`
PostTestRPCCalls []config.PostTestRPCCall `json:"post_test_rpc_calls,omitempty"`
BootstrapFCU *config.BootstrapFCUConfig `json:"bootstrap_fcu,omitempty"`
}
ResolvedInstance contains the resolved configuration for a client instance.
type ResolvedResourceLimits ¶
type ResolvedResourceLimits struct {
CpusetCpus string `json:"cpuset_cpus,omitempty"`
Memory string `json:"memory,omitempty"`
MemoryBytes int64 `json:"memory_bytes,omitempty"`
SwapDisabled bool `json:"swap_disabled,omitempty"`
BlkioConfig *ResolvedBlkioConfig `json:"blkio_config,omitempty"`
CPUFreqKHz *uint64 `json:"cpu_freq_khz,omitempty"`
CPUTurboBoost *bool `json:"cpu_turboboost,omitempty"`
CPUGovernor string `json:"cpu_freq_governor,omitempty"`
}
ResolvedResourceLimits contains the resolved resource limits for config.json output.
type ResolvedThrottleDevice ¶
ResolvedThrottleDevice contains a resolved throttle device for config.json output.
type RunConfig ¶
type RunConfig struct {
Timestamp int64 `json:"timestamp"`
TimestampEnd int64 `json:"timestamp_end,omitempty"`
SuiteHash string `json:"suite_hash,omitempty"`
SystemResourceCollectionMethod string `json:"system_resource_collection_method,omitempty"`
System *SystemInfo `json:"system"`
Instance *ResolvedInstance `json:"instance"`
Metadata *config.MetadataConfig `json:"metadata,omitempty"`
StartBlock *StartBlock `json:"start_block,omitempty"`
TestCounts *TestCounts `json:"test_counts,omitempty"`
Status string `json:"status,omitempty"`
TerminationReason string `json:"termination_reason,omitempty"`
ContainerExitCode *int64 `json:"container_exit_code,omitempty"`
ContainerOOMKilled *bool `json:"container_oom_killed,omitempty"`
}
RunConfig contains configuration for a single test run.
type Runner ¶
type Runner interface {
Start(ctx context.Context) error
Stop() error
// RunInstance runs a single client instance through its lifecycle.
RunInstance(ctx context.Context, instance *config.ClientInstance) error
// RunAll runs all configured instances sequentially.
RunAll(ctx context.Context) error
}
Runner orchestrates client container lifecycle.
type StartBlock ¶
type StartBlock struct {
Number uint64 `json:"number"`
Hash string `json:"hash"`
StateRoot string `json:"state_root"`
}
StartBlock contains block information captured at the start of a run.
type SystemInfo ¶
type SystemInfo struct {
Hostname string `json:"hostname"`
OS string `json:"os"`
Platform string `json:"platform"`
PlatformVersion string `json:"platform_version"`
KernelVersion string `json:"kernel_version"`
Arch string `json:"arch"`
Virtualization string `json:"virtualization,omitempty"`
VirtualizationRole string `json:"virtualization_role,omitempty"`
CPUVendor string `json:"cpu_vendor"`
CPUModel string `json:"cpu_model"`
CPUCores int `json:"cpu_cores"`
CPUMhz float64 `json:"cpu_mhz"`
CPUCacheKB int `json:"cpu_cache_kb"`
MemoryTotalGB float64 `json:"memory_total_gb"`
}
SystemInfo contains system hardware and OS information.
type TestCounts ¶
type TestCounts struct {
Total int `json:"total"`
Passed int `json:"passed"`
Failed int `json:"failed"`
}
TestCounts contains test count statistics for a run.