From 02382b6a811bc2e191177b7778b13341ce252ddc Mon Sep 17 00:00:00 2001 From: Ivo Yankov Date: Mon, 12 Feb 2024 16:06:11 +0200 Subject: [PATCH] fix: Enable tests from Issue2319Spec (#10975) Signed-off-by: Ivo Yankov --- .../bdd/suites/issues/Issue2319Spec.java | 61 ++++++++++--------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java index 2201fce434d..091dabbba4b 100644 --- a/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java +++ b/hedera-node/test-clients/src/main/java/com/hedera/services/bdd/suites/issues/Issue2319Spec.java @@ -23,7 +23,8 @@ import static com.hedera.services.bdd.spec.transactions.TxnVerbs.cryptoUpdate; import static com.hedera.services.bdd.spec.transactions.TxnVerbs.fileUpdate; import static com.hedera.services.bdd.spec.transactions.crypto.HapiCryptoTransfer.tinyBarsFromTo; -import static com.hedera.services.bdd.spec.utilops.UtilVerbs.keyFromPem; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyListNamed; +import static com.hedera.services.bdd.spec.utilops.UtilVerbs.newKeyNamed; import static com.hedera.services.bdd.spec.utilops.UtilVerbs.withOpContext; import static com.hederahashgraph.api.proto.java.ResponseCodeEnum.AUTHORIZATION_FAILED; @@ -38,11 +39,13 @@ import java.util.concurrent.atomic.AtomicReference; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.junit.jupiter.api.Disabled; @HapiTestSuite public class Issue2319Spec extends HapiSuite { private static final Logger log = LogManager.getLogger(Issue2319Spec.class); + private static final String NON_TREASURY_KEY = "nonTreasuryKey"; + private static final String NON_TREASURY_ADMIN_KEY = "nonTreasuryAdminKey"; + private static final String DEFAULT_ADMIN_KEY = "defaultAdminKey"; public static void main(String... args) { new Issue2319Spec().runSuiteSync(); @@ -51,29 +54,27 @@ public static void main(String... args) { @Override public List getSpecsInSuite() { return List.of(new HapiSpec[] { - sysFileSigReqsWaivedForMasterAndTreasury(), - sysAccountSigReqsWaivedForMasterAndTreasury(), - propsPermissionsSigReqsWaivedForAddressBookAdmin(), sysFileImmutabilityWaivedForMasterAndTreasury(), + propsPermissionsSigReqsWaivedForAddressBookAdmin(), + sysAccountSigReqsWaivedForMasterAndTreasury(), + sysFileSigReqsWaivedForMasterAndTreasury() }); } @HapiTest - @Disabled("Failing or intermittently failing HAPI Test") final HapiSpec propsPermissionsSigReqsWaivedForAddressBookAdmin() { - var pemLoc = ""; - return defaultHapiSpec("PropsPermissionsSigReqsWaivedForAddressBookAdmin") .given( - keyFromPem(pemLoc).name("persistent").simpleWacl().passphrase(""), + newKeyNamed(NON_TREASURY_KEY), + newKeyListNamed(NON_TREASURY_ADMIN_KEY, List.of(NON_TREASURY_KEY)), cryptoTransfer(tinyBarsFromTo(GENESIS, ADDRESS_BOOK_CONTROL, 1_000_000_000_000L))) .when( fileUpdate(APP_PROPERTIES) .payingWith(ADDRESS_BOOK_CONTROL) - .wacl("persistent"), + .wacl(NON_TREASURY_ADMIN_KEY), fileUpdate(API_PERMISSIONS) .payingWith(ADDRESS_BOOK_CONTROL) - .wacl("persistent")) + .wacl(NON_TREASURY_ADMIN_KEY)) .then( fileUpdate(APP_PROPERTIES) .payingWith(ADDRESS_BOOK_CONTROL) @@ -89,7 +90,7 @@ final HapiSpec propsPermissionsSigReqsWaivedForAddressBookAdmin() { @HapiTest final HapiSpec sysFileImmutabilityWaivedForMasterAndTreasury() { - return defaultHapiSpec("SysAccountSigReqsWaivedForMasterAndTreasury") + return defaultHapiSpec("sysFileImmutabilityWaivedForMasterAndTreasury") .given( cryptoCreate("civilian"), cryptoTransfer(tinyBarsFromTo(GENESIS, SYSTEM_ADMIN, 1_000_000_000_000L))) @@ -112,16 +113,17 @@ final HapiSpec sysFileImmutabilityWaivedForMasterAndTreasury() { } @HapiTest - @Disabled("Failing or intermittently failing HAPI Test") final HapiSpec sysAccountSigReqsWaivedForMasterAndTreasury() { - var pemLoc = ""; - return defaultHapiSpec("SysAccountSigReqsWaivedForMasterAndTreasury") .given( + newKeyNamed(NON_TREASURY_KEY), + newKeyListNamed(NON_TREASURY_ADMIN_KEY, List.of(NON_TREASURY_KEY)), + newKeyListNamed(DEFAULT_ADMIN_KEY, List.of(GENESIS)), cryptoCreate("civilian"), - keyFromPem(pemLoc).name("persistent").passphrase(""), cryptoTransfer(tinyBarsFromTo(GENESIS, SYSTEM_ADMIN, 1_000_000_000_000L))) - .when(cryptoUpdate(EXCHANGE_RATE_CONTROL).key("persistent")) + .when(cryptoUpdate(EXCHANGE_RATE_CONTROL) + .key(NON_TREASURY_ADMIN_KEY) + .receiverSigRequired(true)) .then( cryptoUpdate(EXCHANGE_RATE_CONTROL) .payingWith(SYSTEM_ADMIN) @@ -133,25 +135,26 @@ final HapiSpec sysAccountSigReqsWaivedForMasterAndTreasury() { .receiverSigRequired(true), cryptoUpdate(EXCHANGE_RATE_CONTROL) .payingWith("civilian") - .signedBy("civilian", GENESIS, "persistent") - .receiverSigRequired(true) - .hasPrecheck(AUTHORIZATION_FAILED), - cryptoUpdate(EXCHANGE_RATE_CONTROL).key("persistent").receiverSigRequired(false)); + .signedBy("civilian", GENESIS, NON_TREASURY_ADMIN_KEY) + .receiverSigRequired(true), + + // reset EXCHANGE_RATE_CONTROL to default state + cryptoUpdate(EXCHANGE_RATE_CONTROL) + .key(DEFAULT_ADMIN_KEY) + .receiverSigRequired(false) + .payingWith(GENESIS) + .signedBy(GENESIS)); } @HapiTest - @Disabled("Failing or intermittently failing HAPI Test") final HapiSpec sysFileSigReqsWaivedForMasterAndTreasury() { - var pemLoc = ""; var validRates = new AtomicReference(); return defaultHapiSpec("SysFileSigReqsWaivedForMasterAndTreasury") .given( cryptoCreate("civilian"), - keyFromPem(pemLoc) - .name("persistent") - .passphrase("") - .simpleWacl(), + newKeyNamed(NON_TREASURY_KEY), + newKeyListNamed(NON_TREASURY_ADMIN_KEY, List.of(NON_TREASURY_KEY)), withOpContext((spec, opLog) -> { var fetch = getFileContents(EXCHANGE_RATES); CustomSpecAssert.allRunFor(spec, fetch); @@ -163,7 +166,7 @@ final HapiSpec sysFileSigReqsWaivedForMasterAndTreasury() { cryptoTransfer(tinyBarsFromTo(GENESIS, SYSTEM_ADMIN, 1_000_000_000_000L))) .when(fileUpdate(EXCHANGE_RATES) .payingWith(EXCHANGE_RATE_CONTROL) - .wacl("persistent")) + .wacl(NON_TREASURY_ADMIN_KEY)) .then( fileUpdate(EXCHANGE_RATES) .payingWith(SYSTEM_ADMIN) @@ -175,7 +178,7 @@ final HapiSpec sysFileSigReqsWaivedForMasterAndTreasury() { .contents(ignore -> validRates.get()), fileUpdate(EXCHANGE_RATES) .payingWith("civilian") - .signedBy("civilian", GENESIS, "persistent") + .signedBy("civilian", GENESIS, NON_TREASURY_ADMIN_KEY) .contents(ignore -> validRates.get()) .hasPrecheck(AUTHORIZATION_FAILED), fileUpdate(EXCHANGE_RATES).payingWith(GENESIS).wacl(GENESIS));