From 56ae836b09819d97a376984aa0e0004340bc0e67 Mon Sep 17 00:00:00 2001 From: Thomas E Lackey Date: Wed, 2 Nov 2022 21:31:04 -0500 Subject: [PATCH] Environment improvements for Docker and testing. (#83) * Add docker-compose.yml * Typo * Tweak defaults * Get e2e test from env, and also allow defaults. * Remove compose stuff. --- pkg/beaconclient/e2emerge_test.go | 40 +++++++++++++++++++---- pkg/beaconclient/systemvalidation_test.go | 14 ++------ 2 files changed, 35 insertions(+), 19 deletions(-) diff --git a/pkg/beaconclient/e2emerge_test.go b/pkg/beaconclient/e2emerge_test.go index d6c9073..bd721b1 100644 --- a/pkg/beaconclient/e2emerge_test.go +++ b/pkg/beaconclient/e2emerge_test.go @@ -17,12 +17,14 @@ import ( "github.com/vulcanize/ipld-eth-beacon-indexer/pkg/beaconclient" "github.com/vulcanize/ipld-eth-beacon-indexer/pkg/database/sql" "math/big" + "os" + "strconv" "time" ) var _ = Describe("e2emerge", Label("e2e"), func() { e2eConfig := TestConfig - e2eConfig.port = 5052 + e2eConfig.port = getEnvInt("TEST_E2E_LIGHTHOUSE_PORT", 5052) e2eConfig.performBeaconStateProcessing = false e2eConfig.performBeaconBlockProcessing = true @@ -123,10 +125,10 @@ func sendTestTx() (*SentTx, error) { tx, err := sendTransaction( ctx, eth, - "0xe6ce22afe802caf5ff7d3845cec8c736ecc8d61f", - "0xe22AD83A0dE117bA0d03d5E94Eb4E0d80a69C62a", - 10, - "0x888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218", + getEnvStr("TEST_E2E_FROM_ADDR", "0xe6ce22afe802caf5ff7d3845cec8c736ecc8d61f"), + getEnvStr("TEST_E2E_TO_ADDR", "0xe22AD83A0dE117bA0d03d5E94Eb4E0d80a69C62a"), + int64(getEnvInt("TEST_E2E_AMOUNT", 10)), + getEnvStr("TEST_E2E_SIGNING_KEY", "0x888814df89c4358d7ddb3fa4b0213e7331239a80e1f013eaa7b2deca2a41a218"), ) Expect(err).ToNot(HaveOccurred()) @@ -155,7 +157,7 @@ func sendTestTx() (*SentTx, error) { } func createClient() (*ethclient.Client, error) { - return ethclient.Dial("http://localhost:8545") + return ethclient.Dial(getEnvStr("TEST_E2E_GETH_URL", "http://localhost:8545")) } // sendTransaction sends a transaction with 1 ETH to a specified address. @@ -165,7 +167,7 @@ func sendTransaction(ctx context.Context, eth *ethclient.Client, fromAddr string to = common.HexToAddress(toAddr) sk = crypto.ToECDSAUnsafe(common.FromHex(signingKey)) value = big.NewInt(amount) - gasLimit = uint64(21000) + gasLimit = uint64(getEnvInt("TEST_E2E_GAS_LIMIT", 21000)) ) // Retrieve the chainid (needed for signer) chainid, err := eth.ChainID(ctx) @@ -180,6 +182,8 @@ func sendTransaction(ctx context.Context, eth *ethclient.Client, fromAddr string // Get suggested gas price tipCap, _ := eth.SuggestGasTipCap(ctx) feeCap, _ := eth.SuggestGasPrice(ctx) + log.Info("Tip cap: ", tipCap) + log.Info("Fee cap: ", feeCap) // Create a new transaction tx := types.NewTx( &types.DynamicFeeTx{ @@ -197,3 +201,25 @@ func sendTransaction(ctx context.Context, eth *ethclient.Client, fromAddr string // Send the transaction to our node return signedTx, eth.SendTransaction(ctx, signedTx) } + +func getEnvStr(envVar string, def string) string { + value, set := os.LookupEnv(envVar) + if set { + return value + } else { + return def + } +} + +func getEnvInt(envVar string, def int) int { + value, set := os.LookupEnv(envVar) + if set { + number, err := strconv.Atoi(value) + if err != nil { + return def + } + return number + } else { + return def + } +} diff --git a/pkg/beaconclient/systemvalidation_test.go b/pkg/beaconclient/systemvalidation_test.go index 26aa417..5c3c76d 100644 --- a/pkg/beaconclient/systemvalidation_test.go +++ b/pkg/beaconclient/systemvalidation_test.go @@ -3,7 +3,6 @@ package beaconclient_test import ( log "github.com/sirupsen/logrus" "os" - "strconv" "time" . "github.com/onsi/ginkgo/v2" @@ -15,9 +14,9 @@ var ( prodConfig = Config{ protocol: os.Getenv("bc_protocol"), address: os.Getenv("bc_address"), - port: getEnvInt(os.Getenv("bc_port")), + port: getEnvInt(os.Getenv("bc_port"), 5052), dbHost: os.Getenv("db_host"), - dbPort: getEnvInt(os.Getenv("db_port")), + dbPort: getEnvInt(os.Getenv("db_port"), 8076), dbName: os.Getenv("db_name"), dbUser: os.Getenv("db_user"), dbPassword: os.Getenv("db_password"), @@ -62,15 +61,6 @@ var _ = Describe("Systemvalidation", Label("system"), func() { }) }) -// Wrapper function to get int env variables. -func getEnvInt(envVar string) int { - val, err := strconv.Atoi(envVar) - if err != nil { - return 0 - } - return val -} - // Start head tracking and wait for the expected results. func processProdHeadBlocks(bc *beaconclient.BeaconClient, expectedInserts, expectedReorgs, expectedKnownGaps, expectedKnownGapsReprocessError uint64) { go bc.CaptureHead()