From 37e87883a6e71363451c2cd2ca589e27be3978b2 Mon Sep 17 00:00:00 2001 From: Gregory Coppola <60008382+gregorycoppola@users.noreply.github.com> Date: Fri, 19 Nov 2021 10:53:09 -0500 Subject: [PATCH] test_cost_contract_short_circuits passing for mainnet --- src/vm/costs/mod.rs | 13 +++++++------ src/vm/mod.rs | 15 ++++++++++++--- src/vm/tests/costs.rs | 10 +++++----- src/vm/tests/mod.rs | 2 +- 4 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/vm/costs/mod.rs b/src/vm/costs/mod.rs index 07f57e3c34..1964df7dbc 100644 --- a/src/vm/costs/mod.rs +++ b/src/vm/costs/mod.rs @@ -631,10 +631,7 @@ impl LimitedCostTracker { LimitedCostTracker::new(use_mainnet, ExecutionCost::max_value(), clarity_db, epoch) } - pub fn new_free_on_network(use_mainnet:bool) -> LimitedCostTracker { - if !use_mainnet{ - panic!("oh no"); - } + pub fn new_free_on_network(use_mainnet: bool) -> LimitedCostTracker { LimitedCostTracker { cost_function_references: HashMap::new(), cost_contracts: HashMap::new(), @@ -801,8 +798,12 @@ fn compute_cost( let mainnet = cost_tracker.mainnet; let mut null_store = NullBackingStore::new(); let conn = null_store.as_clarity_db(); - let mut global_context = - GlobalContext::new(mainnet, conn, LimitedCostTracker::new_free_on_network(mainnet), eval_in_epoch); + let mut global_context = GlobalContext::new( + mainnet, + conn, + LimitedCostTracker::new_free_on_network(mainnet), + eval_in_epoch, + ); let cost_contract = cost_tracker .cost_contracts diff --git a/src/vm/mod.rs b/src/vm/mod.rs index 26cfdb82dc..1ca2d1906d 100644 --- a/src/vm/mod.rs +++ b/src/vm/mod.rs @@ -377,7 +377,7 @@ pub fn eval_all( /// This method executes the program in Epoch 2.0 *and* Epoch 2.05 and asserts /// that the result is the same before returning the result #[cfg(test)] -pub fn execute_on_network(program: &str, use_mainnet:bool) -> Result> { +pub fn execute_on_network(program: &str, use_mainnet: bool) -> Result> { let epoch_200_result = execute_in_epoch(program, StacksEpochId::Epoch20, use_mainnet); let epoch_205_result = execute_in_epoch(program, StacksEpochId::Epoch2_05, use_mainnet); assert_eq!( @@ -394,12 +394,21 @@ pub fn execute(program: &str) -> Result> { } #[cfg(test)] -pub fn execute_in_epoch(program: &str, epoch: StacksEpochId, use_mainnet:bool) -> Result> { +pub fn execute_in_epoch( + program: &str, + epoch: StacksEpochId, + use_mainnet: bool, +) -> Result> { let contract_id = QualifiedContractIdentifier::transient(); let mut contract_context = ContractContext::new(contract_id.clone()); let mut marf = MemoryBackingStore::new(); let conn = marf.as_clarity_db(); - let mut global_context = GlobalContext::new(false, conn, LimitedCostTracker::new_free_on_network(use_mainnet), epoch); + let mut global_context = GlobalContext::new( + false, + conn, + LimitedCostTracker::new_free_on_network(use_mainnet), + epoch, + ); global_context.execute(|g| { let parsed = ast::build_ast(&contract_id, program, &mut ())?.expressions; eval_all(&parsed, &mut contract_context, g) diff --git a/src/vm/tests/costs.rs b/src/vm/tests/costs.rs index d4809252b8..ef9bf6830f 100644 --- a/src/vm/tests/costs.rs +++ b/src/vm/tests/costs.rs @@ -37,8 +37,8 @@ use vm::errors::{CheckErrors, Error, RuntimeErrorType}; use vm::functions::NativeFunctions; use vm::representations::SymbolicExpression; use vm::tests::{ - execute, execute_on_network, is_committed, is_err_code, symbols_from_values, with_marfed_environment, - with_memory_environment, TEST_BURN_STATE_DB, TEST_HEADER_DB, + execute, execute_on_network, is_committed, is_err_code, symbols_from_values, + with_marfed_environment, with_memory_environment, TEST_BURN_STATE_DB, TEST_HEADER_DB, }; use vm::types::{AssetIdentifier, PrincipalData, QualifiedContractIdentifier, ResponseData, Value}; @@ -49,7 +49,7 @@ use rstest::rstest; lazy_static! { static ref COST_VOTING_MAINNET_CONTRACT: QualifiedContractIdentifier = - boot_code_id("cost-voting", false); + boot_code_id("cost-voting", true); static ref COST_VOTING_TESTNET_CONTRACT: QualifiedContractIdentifier = boot_code_id("cost-voting", false); } @@ -942,8 +942,8 @@ fn test_cost_contract_short_circuits(#[case] use_mainnet: bool) { db.set_entry_unknown_descriptor( voting_contract_to_use, "confirmed-proposals", - execute("{ confirmed-id: u0 }"), - execute(&value), + execute_on_network("{ confirmed-id: u0 }", use_mainnet), + execute_on_network(&value, use_mainnet), ) .unwrap(); db.commit(); diff --git a/src/vm/tests/mod.rs b/src/vm/tests/mod.rs index 68244806c6..5bd9040c76 100644 --- a/src/vm/tests/mod.rs +++ b/src/vm/tests/mod.rs @@ -217,7 +217,7 @@ pub fn execute(s: &str) -> Value { vm_execute(s).unwrap().unwrap() } -pub fn execute_on_network(s: &str, use_mainnet:bool) -> Value { +pub fn execute_on_network(s: &str, use_mainnet: bool) -> Value { vm_execute_on_network(s, use_mainnet).unwrap().unwrap() }