gtest: Minor improvements to `CoinsTests`

These were implemented while debugging the previous commit.
This commit is contained in:
Jack Grigg 2023-04-07 12:17:00 +00:00
parent 19fed267e3
commit ccbda94b30
1 changed files with 32 additions and 16 deletions

View File

@ -302,7 +302,7 @@ public:
uint256 dataToBeSigned;
auto builder = orchard::Builder(true, true, orchardAnchor);
mutableTx.orchardBundle = builder.Build().value().ProveAndSign({}, dataToBeSigned).value();
orchardNullifier = mutableTx.orchardBundle.GetNullifiers()[0];
orchardNullifier = mutableTx.orchardBundle.GetNullifiers().at(0);
tx = CTransaction(mutableTx);
}
@ -346,19 +346,19 @@ template<> bool GetAnchorAt(const CCoinsViewCacheTest &cache, const uint256 &rt,
void checkNullifierCache(const CCoinsViewCacheTest &cache, const TxWithNullifiers &txWithNullifiers, bool shouldBeInCache) {
// Make sure the nullifiers have not gotten mixed up
EXPECT_TRUE(!cache.GetNullifier(txWithNullifiers.sproutNullifier, SAPLING));
EXPECT_TRUE(!cache.GetNullifier(txWithNullifiers.sproutNullifier, ORCHARD));
EXPECT_TRUE(!cache.GetNullifier(txWithNullifiers.saplingNullifier, SPROUT));
EXPECT_TRUE(!cache.GetNullifier(txWithNullifiers.saplingNullifier, ORCHARD));
EXPECT_TRUE(!cache.GetNullifier(txWithNullifiers.orchardNullifier, SPROUT));
EXPECT_TRUE(!cache.GetNullifier(txWithNullifiers.orchardNullifier, SAPLING));
EXPECT_FALSE(cache.GetNullifier(txWithNullifiers.sproutNullifier, SAPLING));
EXPECT_FALSE(cache.GetNullifier(txWithNullifiers.sproutNullifier, ORCHARD));
EXPECT_FALSE(cache.GetNullifier(txWithNullifiers.saplingNullifier, SPROUT));
EXPECT_FALSE(cache.GetNullifier(txWithNullifiers.saplingNullifier, ORCHARD));
EXPECT_FALSE(cache.GetNullifier(txWithNullifiers.orchardNullifier, SPROUT));
EXPECT_FALSE(cache.GetNullifier(txWithNullifiers.orchardNullifier, SAPLING));
// Check if the nullifiers either are or are not in the cache
bool containsSproutNullifier = cache.GetNullifier(txWithNullifiers.sproutNullifier, SPROUT);
bool containsSaplingNullifier = cache.GetNullifier(txWithNullifiers.saplingNullifier, SAPLING);
bool containsOrchardNullifier = cache.GetNullifier(txWithNullifiers.orchardNullifier, ORCHARD);
EXPECT_TRUE(containsSproutNullifier == shouldBeInCache);
EXPECT_TRUE(containsSaplingNullifier == shouldBeInCache);
EXPECT_TRUE(containsOrchardNullifier == shouldBeInCache);
EXPECT_EQ(containsSproutNullifier, shouldBeInCache);
EXPECT_EQ(containsSaplingNullifier, shouldBeInCache);
EXPECT_EQ(containsOrchardNullifier, shouldBeInCache);
}
@ -656,25 +656,41 @@ TEST(CoinsTests, AnchorRegression)
TEST(CoinsTests, NullifiersTest)
{
LoadProofParameters();
CCoinsViewTest base;
CCoinsViewCacheTest cache(&base);
TxWithNullifiers txWithNullifiers;
checkNullifierCache(cache, txWithNullifiers, false);
{
SCOPED_TRACE("cache with unspent nullifiers");
checkNullifierCache(cache, txWithNullifiers, false);
}
cache.SetNullifiers(txWithNullifiers.tx, true);
checkNullifierCache(cache, txWithNullifiers, true);
{
SCOPED_TRACE("cache with spent nullifiers");
checkNullifierCache(cache, txWithNullifiers, true);
}
cache.Flush();
CCoinsViewCacheTest cache2(&base);
checkNullifierCache(cache2, txWithNullifiers, true);
{
SCOPED_TRACE("cache2 with spent nullifiers");
checkNullifierCache(cache2, txWithNullifiers, true);
}
cache2.SetNullifiers(txWithNullifiers.tx, false);
checkNullifierCache(cache2, txWithNullifiers, false);
{
SCOPED_TRACE("cache2 with unspent nullifiers");
checkNullifierCache(cache2, txWithNullifiers, false);
}
cache2.Flush();
CCoinsViewCacheTest cache3(&base);
checkNullifierCache(cache3, txWithNullifiers, false);
{
SCOPED_TRACE("cache3 with unspent nullifiers");
checkNullifierCache(cache3, txWithNullifiers, false);
}
}