Skip to content

Commit

Permalink
fix: Enable tests from Issue2319Spec (#10975)
Browse files Browse the repository at this point in the history
Signed-off-by: Ivo Yankov <ivo@devlabs.bg>
  • Loading branch information
Ivo-Yankov committed Feb 12, 2024
1 parent bb0357b commit 02382b6
Showing 1 changed file with 32 additions and 29 deletions.
Expand Up @@ -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;

Expand All @@ -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();
Expand All @@ -51,29 +54,27 @@ public static void main(String... args) {
@Override
public List<HapiSpec> 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 = "<PEM>";

return defaultHapiSpec("PropsPermissionsSigReqsWaivedForAddressBookAdmin")
.given(
keyFromPem(pemLoc).name("persistent").simpleWacl().passphrase("<SECRET>"),
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)
Expand All @@ -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)))
Expand All @@ -112,16 +113,17 @@ final HapiSpec sysFileImmutabilityWaivedForMasterAndTreasury() {
}

@HapiTest
@Disabled("Failing or intermittently failing HAPI Test")
final HapiSpec sysAccountSigReqsWaivedForMasterAndTreasury() {
var pemLoc = "<PEM>";

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("<SECReT>"),
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)
Expand All @@ -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 = "<PEM>";
var validRates = new AtomicReference<ByteString>();

return defaultHapiSpec("SysFileSigReqsWaivedForMasterAndTreasury")
.given(
cryptoCreate("civilian"),
keyFromPem(pemLoc)
.name("persistent")
.passphrase("<SECRET>")
.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);
Expand All @@ -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)
Expand All @@ -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));
Expand Down

0 comments on commit 02382b6

Please sign in to comment.