From 741726e6765cd87d74a1beed0659495d92efc89f Mon Sep 17 00:00:00 2001 From: Brice Dobry Date: Tue, 7 May 2024 01:02:07 -0400 Subject: [PATCH] fix: setup tenure height in test environments --- clarity/src/vm/tests/mod.rs | 5 ++++- stackslib/src/clarity_vm/clarity.rs | 4 ++++ stackslib/src/clarity_vm/tests/large_contract.rs | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/clarity/src/vm/tests/mod.rs b/clarity/src/vm/tests/mod.rs index 97a631408..fc7f36e2a 100644 --- a/clarity/src/vm/tests/mod.rs +++ b/clarity/src/vm/tests/mod.rs @@ -160,7 +160,10 @@ impl MemoryEnvironmentGenerator { pub struct TopLevelMemoryEnvironmentGenerator(MemoryBackingStore); impl TopLevelMemoryEnvironmentGenerator { pub fn get_env(&mut self, epoch: StacksEpochId) -> OwnedEnvironment { - let owned_env = OwnedEnvironment::new(self.0.as_clarity_db(), epoch); + let mut owned_env = OwnedEnvironment::new(self.0.as_clarity_db(), epoch); + if epoch >= StacksEpochId::Epoch30 { + owned_env.set_tenure_height(0); + } owned_env } } diff --git a/stackslib/src/clarity_vm/clarity.rs b/stackslib/src/clarity_vm/clarity.rs index e33a4533b..3bb23838b 100644 --- a/stackslib/src/clarity_vm/clarity.rs +++ b/stackslib/src/clarity_vm/clarity.rs @@ -299,6 +299,7 @@ impl ClarityInstance { // need to increment the tenure height in the Clarity DB. if new_tenure && epoch.epoch_id >= StacksEpochId::Epoch30 { let mut clarity_db = datastore.as_clarity_db(header_db, burn_state_db); + clarity_db.begin(); let tenure_height = clarity_db .get_tenure_height() .expect("FAIL: unable to get tenure height from Clarity database"); @@ -309,6 +310,9 @@ impl ClarityInstance { .expect("FAIL: tenure height overflow"), ) .expect("FAIL: unable to set tenure height in Clarity database"); + clarity_db + .commit() + .expect("FAIL: unable to commit tenure height"); } ClarityBlockConnection { diff --git a/stackslib/src/clarity_vm/tests/large_contract.rs b/stackslib/src/clarity_vm/tests/large_contract.rs index 6b72a6b63..c57327d7a 100644 --- a/stackslib/src/clarity_vm/tests/large_contract.rs +++ b/stackslib/src/clarity_vm/tests/large_contract.rs @@ -114,6 +114,8 @@ fn test_simple_token_system(#[case] version: ClarityVersion, #[case] epoch: Stac gb.as_transaction(|tx| { tx.with_clarity_db(|db| { + db.begin(); + db.set_tenure_height(1).unwrap(); db.set_clarity_epoch_version(epoch).unwrap(); Ok(()) })