mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-04-22 14:57:55 +00:00
56c2fe8c0c
* Parallelize over cases * Rename the state and driver * Parallelize execution * Update the default config of the tool * Make codebase async * Fix machete * Fix tests & clear node directories before startup * Cleanup the cleanup logic * Rename geth node
48 lines
1.2 KiB
Rust
48 lines
1.2 KiB
Rust
//! The revive differential testing core library.
|
|
//!
|
|
//! This crate defines the testing configuration and
|
|
//! provides a helper utility to execute tests.
|
|
|
|
use revive_dt_compiler::{SolidityCompiler, revive_resolc, solc};
|
|
use revive_dt_config::TestingPlatform;
|
|
use revive_dt_format::traits::ResolverApi;
|
|
use revive_dt_node::{Node, geth, kitchensink::KitchensinkNode};
|
|
use revive_dt_node_interaction::EthereumNode;
|
|
|
|
pub mod driver;
|
|
|
|
/// One platform can be tested differentially against another.
|
|
///
|
|
/// For this we need a blockchain node implementation and a compiler.
|
|
pub trait Platform {
|
|
type Blockchain: EthereumNode + Node + ResolverApi;
|
|
type Compiler: SolidityCompiler;
|
|
|
|
/// Returns the matching [TestingPlatform] of the [revive_dt_config::Arguments].
|
|
fn config_id() -> TestingPlatform;
|
|
}
|
|
|
|
#[derive(Default)]
|
|
pub struct Geth;
|
|
|
|
impl Platform for Geth {
|
|
type Blockchain = geth::GethNode;
|
|
type Compiler = solc::Solc;
|
|
|
|
fn config_id() -> TestingPlatform {
|
|
TestingPlatform::Geth
|
|
}
|
|
}
|
|
|
|
#[derive(Default)]
|
|
pub struct Kitchensink;
|
|
|
|
impl Platform for Kitchensink {
|
|
type Blockchain = KitchensinkNode;
|
|
type Compiler = revive_resolc::Resolc;
|
|
|
|
fn config_id() -> TestingPlatform {
|
|
TestingPlatform::Kitchensink
|
|
}
|
|
}
|