mirror of
https://github.com/pezkuwichain/revive-differential-tests.git
synced 2026-04-25 15:08:00 +00:00
89 lines
2.6 KiB
Rust
89 lines
2.6 KiB
Rust
use std::path::PathBuf;
|
|
|
|
use revive_dt_common::types::VersionOrRequirement;
|
|
use revive_dt_compiler::{Compiler, revive_resolc::Resolc, solc::Solc};
|
|
use revive_dt_config::TestExecutionContext;
|
|
use semver::Version;
|
|
|
|
#[tokio::test]
|
|
async fn contracts_can_be_compiled_with_solc() {
|
|
// Arrange
|
|
let args = TestExecutionContext::default();
|
|
let solc = Solc::new(&args, VersionOrRequirement::Version(Version::new(0, 8, 30)))
|
|
.await
|
|
.unwrap();
|
|
|
|
// Act
|
|
let output = Compiler::new()
|
|
.with_source("./tests/assets/array_one_element/callable.sol")
|
|
.unwrap()
|
|
.with_source("./tests/assets/array_one_element/main.sol")
|
|
.unwrap()
|
|
.try_build(&solc)
|
|
.await;
|
|
|
|
// Assert
|
|
let output = output.expect("Failed to compile");
|
|
assert_eq!(output.contracts.len(), 2);
|
|
|
|
let main_file_contracts = output
|
|
.contracts
|
|
.get(
|
|
&PathBuf::from("./tests/assets/array_one_element/main.sol")
|
|
.canonicalize()
|
|
.unwrap(),
|
|
)
|
|
.unwrap();
|
|
let callable_file_contracts = output
|
|
.contracts
|
|
.get(
|
|
&PathBuf::from("./tests/assets/array_one_element/callable.sol")
|
|
.canonicalize()
|
|
.unwrap(),
|
|
)
|
|
.unwrap();
|
|
assert!(main_file_contracts.contains_key("Main"));
|
|
assert!(callable_file_contracts.contains_key("Callable"));
|
|
}
|
|
|
|
#[tokio::test]
|
|
async fn contracts_can_be_compiled_with_resolc() {
|
|
// Arrange
|
|
let args = TestExecutionContext::default();
|
|
let resolc = Resolc::new(&args, VersionOrRequirement::Version(Version::new(0, 8, 30)))
|
|
.await
|
|
.unwrap();
|
|
|
|
// Act
|
|
let output = Compiler::new()
|
|
.with_source("./tests/assets/array_one_element/callable.sol")
|
|
.unwrap()
|
|
.with_source("./tests/assets/array_one_element/main.sol")
|
|
.unwrap()
|
|
.try_build(&resolc)
|
|
.await;
|
|
|
|
// Assert
|
|
let output = output.expect("Failed to compile");
|
|
assert_eq!(output.contracts.len(), 2);
|
|
|
|
let main_file_contracts = output
|
|
.contracts
|
|
.get(
|
|
&PathBuf::from("./tests/assets/array_one_element/main.sol")
|
|
.canonicalize()
|
|
.unwrap(),
|
|
)
|
|
.unwrap();
|
|
let callable_file_contracts = output
|
|
.contracts
|
|
.get(
|
|
&PathBuf::from("./tests/assets/array_one_element/callable.sol")
|
|
.canonicalize()
|
|
.unwrap(),
|
|
)
|
|
.unwrap();
|
|
assert!(main_file_contracts.contains_key("Main"));
|
|
assert!(callable_file_contracts.contains_key("Callable"));
|
|
}
|