mirror of
https://github.com/pezkuwichain/revive.git
synced 2026-06-14 19:11:04 +00:00
bd4e108bb0
- Factor the YUL crate out of `revive-solidity`. - `revive-solidity` is in reality not a Solidity implementation but the revive solidity compiler driver (`resolc`). By renaming we not only get this straight but also a binary with the same name as the crate which should be less confusing. --------- Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
46 lines
997 B
Rust
46 lines
997 B
Rust
//! The Solidity compiler unit tests for IR artifacts.
|
|
//! The tests check if the IR artifacts are kept in the final output.
|
|
|
|
#![cfg(test)]
|
|
|
|
use std::collections::BTreeMap;
|
|
|
|
#[test]
|
|
fn yul() {
|
|
let source_code = r#"
|
|
// SPDX-License-Identifier: MIT
|
|
pragma solidity ^0.8.0;
|
|
|
|
contract Test {
|
|
function main() public view returns (uint) {
|
|
return 42;
|
|
}
|
|
}
|
|
"#;
|
|
|
|
let mut sources = BTreeMap::new();
|
|
sources.insert("test.sol".to_owned(), source_code.to_owned());
|
|
|
|
let build = super::build_solidity(
|
|
sources,
|
|
BTreeMap::new(),
|
|
None,
|
|
revive_llvm_context::OptimizerSettings::cycles(),
|
|
)
|
|
.expect("Test failure");
|
|
|
|
assert!(
|
|
build
|
|
.contracts
|
|
.as_ref()
|
|
.expect("Always exists")
|
|
.get("test.sol")
|
|
.expect("Always exists")
|
|
.get("Test")
|
|
.expect("Always exists")
|
|
.ir_optimized
|
|
.is_some(),
|
|
"Yul IR is missing"
|
|
);
|
|
}
|