From ff1b4c6c3312674ab12ff7d75b14b68bd1a61c2d Mon Sep 17 00:00:00 2001 From: srdtrk <59252793+srdtrk@users.noreply.github.com> Date: Sat, 17 Aug 2024 15:53:36 +0200 Subject: [PATCH] imp(e2e): stream operator output to stdout (#98) * imp(e2e): streaming operator execution * imp: added exec report to all operator commands used * fix: e2e * build: attempt to fix * deps: attempt to fix * deps: attempt to fix --- bun.lockb | Bin 79786 -> 79802 bytes e2e/interchaintestv8/operator/operator.go | 12 ++++++++++-- e2e/interchaintestv8/sp1_ics07_test.go | 1 + e2e/interchaintestv8/testvalues/values.go | 5 +++++ foundry.toml | 1 + package.json | 2 +- 6 files changed, 18 insertions(+), 3 deletions(-) diff --git a/bun.lockb b/bun.lockb index 5d97e1e80fb9c441ec22f3a8efec7fba32fe974b..c18f84aca5c0d253471808fe8536c17a5849299e 100755 GIT binary patch delta 6850 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 delta 6808 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 diff --git a/e2e/interchaintestv8/operator/operator.go b/e2e/interchaintestv8/operator/operator.go index a197208..5246653 100644 --- a/e2e/interchaintestv8/operator/operator.go +++ b/e2e/interchaintestv8/operator/operator.go @@ -4,6 +4,7 @@ import ( "encoding/hex" "encoding/json" "errors" + "os" "os/exec" "strconv" "strings" @@ -24,13 +25,17 @@ type membershipFixture struct { // RunGenesis is a function that runs the genesis script to generate genesis.json func RunGenesis(args ...string) error { args = append([]string{"genesis"}, args...) - return exec.Command("target/release/operator", args...).Run() + cmd := exec.Command("target/release/operator", args...) + cmd.Stdout = os.Stdout + return cmd.Run() } // StartOperator is a function that runs the operator func StartOperator(args ...string) error { args = append([]string{"start"}, args...) - return exec.Command("target/release/operator", args...).Run() + cmd := exec.Command("target/release/operator", args...) + cmd.Stdout = os.Stdout + return cmd.Run() } // UpdateClientAndMembershipProof is a function that generates an update client and membership proof @@ -42,6 +47,9 @@ func UpdateClientAndMembershipProof(trusted_height, target_height uint64, paths return nil, nil, err } + // NOTE: writing stdout to os.Stdout after execution due to how `.Output()` works + os.Stdout.Write(stdout) + // eliminate non-json characters jsonStartIdx := strings.Index(string(stdout), "{") if jsonStartIdx == -1 { diff --git a/e2e/interchaintestv8/sp1_ics07_test.go b/e2e/interchaintestv8/sp1_ics07_test.go index 8c31f45..768ade2 100644 --- a/e2e/interchaintestv8/sp1_ics07_test.go +++ b/e2e/interchaintestv8/sp1_ics07_test.go @@ -57,6 +57,7 @@ func (s *SP1ICS07TendermintTestSuite) SetupSuite(ctx context.Context) { address := crypto.PubkeyToAddress(s.key.PublicKey).Hex() s.T().Logf("Generated key: %s", address) + os.Setenv(testvalues.EnvKeyRustLog, testvalues.EnvValueRustLog_Info) os.Setenv(testvalues.EnvKeyEthRPC, eth.GetHostRPCAddress()) os.Setenv(testvalues.EnvKeyTendermintRPC, simd.GetHostRPCAddress()) os.Setenv(testvalues.EnvKeySp1Prover, "network") diff --git a/e2e/interchaintestv8/testvalues/values.go b/e2e/interchaintestv8/testvalues/values.go index 0793652..baad74c 100644 --- a/e2e/interchaintestv8/testvalues/values.go +++ b/e2e/interchaintestv8/testvalues/values.go @@ -26,6 +26,11 @@ const ( EnvKeySp1Prover = "SP1_PROVER" // Private key for the prover network. EnvKeySp1PrivateKey = "SP1_PRIVATE_KEY" + // The log level for the Rust logger. + EnvKeyRustLog = "RUST_LOG" + + // Log level for the Rust logger. + EnvValueRustLog_Info = "info" ) var ( diff --git a/foundry.toml b/foundry.toml index bc995f1..5dd7f22 100644 --- a/foundry.toml +++ b/foundry.toml @@ -8,6 +8,7 @@ broadcast = "contracts/broadcast" libs = ["node_modules", "contracts/lib"] fs_permissions = [{ access = "read-write", path = "./" },] via_ir = true +no_match_path = "node_modules/**/test/**" [fmt] bracket_spacing = true diff --git a/package.json b/package.json index 49cb7d4..433ea48 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "@openzeppelin/contracts": "^5.0.2", "forge-std": "github:foundry-rs/forge-std#v1.9.1", "sp1-contracts": "github:succinctlabs/sp1-contracts#v1.1.0", - "solidity-ibc": "https://github.com/cosmos/solidity-ibc-eureka.git#serdar/xxx-generic-paths" + "solidity-ibc": "github:cosmos/solidity-ibc-eureka#370ce703e20148086f84e51f59895dfd237ceec8" }, "devDependencies": { "solhint": "^5.0.3",