-
Notifications
You must be signed in to change notification settings - Fork 157
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
fe0d5a3
commit b20d130
Showing
11 changed files
with
352 additions
and
270 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
use camino::Utf8PathBuf; | ||
use cheatnet::runtime_extensions::forge_runtime_extension::contracts_data::ContractsData; | ||
use std::collections::HashMap; | ||
|
||
pub struct ContextData { | ||
pub runtime_data: RuntimeData, | ||
pub workspace_root: Utf8PathBuf, | ||
pub test_artifacts_path: Utf8PathBuf, | ||
} | ||
|
||
pub struct RuntimeData { | ||
pub contracts_data: ContractsData, | ||
pub environment_variables: HashMap<String, String>, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
use std::num::NonZeroU32; | ||
use std::sync::Arc; | ||
|
||
#[derive(Debug, PartialEq)] | ||
pub struct ForgeConfig { | ||
pub runner_config: Arc<RunnerConfig>, | ||
pub runtime_config: Arc<RuntimeConfig>, | ||
pub output_config: OutputConfig, | ||
} | ||
|
||
#[derive(Debug, PartialEq)] | ||
pub struct RunnerConfig { | ||
pub exit_first: bool, | ||
pub fuzzer_runs: NonZeroU32, | ||
pub fuzzer_seed: u64, | ||
} | ||
|
||
#[derive(Debug, PartialEq)] | ||
pub struct RuntimeConfig { | ||
pub max_n_steps: Option<u32>, | ||
} | ||
|
||
#[derive(Debug, PartialEq)] | ||
pub struct OutputConfig { | ||
pub detailed_resources: bool, | ||
pub execution_data_to_save: ExecutionDataToSave, | ||
} | ||
|
||
impl OutputConfig { | ||
#[must_use] | ||
pub fn new(detailed_resources: bool, save_trace_data: bool, build_profile: bool) -> Self { | ||
Self { | ||
detailed_resources, | ||
execution_data_to_save: ExecutionDataToSave::from_flags(save_trace_data, build_profile), | ||
} | ||
} | ||
} | ||
|
||
#[derive(Debug, PartialEq, Clone, Copy)] | ||
pub enum ExecutionDataToSave { | ||
None, | ||
Trace, | ||
/// Profile data requires saved trace data | ||
TraceAndProfile, | ||
} | ||
|
||
impl ExecutionDataToSave { | ||
#[must_use] | ||
pub fn from_flags(save_trace_data: bool, build_profile: bool) -> Self { | ||
if build_profile { | ||
return ExecutionDataToSave::TraceAndProfile; | ||
} | ||
if save_trace_data { | ||
return ExecutionDataToSave::Trace; | ||
} | ||
ExecutionDataToSave::None | ||
} | ||
} | ||
|
||
impl ExecutionDataToSave { | ||
#[must_use] | ||
pub fn is_vm_trace_needed(self) -> bool { | ||
match self { | ||
ExecutionDataToSave::Trace | ExecutionDataToSave::TraceAndProfile => true, | ||
ExecutionDataToSave::None => false, | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.