github.com/0xPolygon/supernets2-node@v0.0.0-20230711153321-2fe574524eaa/test/benchmarks/sequencer/eth-transfers/pool_processing_eth_test.go (about)

     1  package eth_transfers
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  	"testing"
     7  	"time"
     8  
     9  	"github.com/0xPolygon/supernets2-node/log"
    10  	"github.com/0xPolygon/supernets2-node/pool"
    11  	"github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/metrics"
    12  	"github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/params"
    13  	"github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/setup"
    14  	"github.com/0xPolygon/supernets2-node/test/benchmarks/sequencer/common/transactions"
    15  	"github.com/stretchr/testify/require"
    16  )
    17  
    18  const (
    19  	profilingEnabled = false
    20  )
    21  
    22  func BenchmarkSequencerEthTransfersPoolProcess(b *testing.B) {
    23  	start := time.Now()
    24  	//defer func() { require.NoError(b, operations.Teardown()) }()
    25  	opsman, client, pl, auth := setup.Environment(params.Ctx, b)
    26  	initialCount, err := pl.CountTransactionsByStatus(params.Ctx, pool.TxStatusSelected)
    27  	require.NoError(b, err)
    28  	setup.BootstrapSequencer(b, opsman)
    29  	err = transactions.SendAndWait(params.Ctx, auth, client, pl.CountTransactionsByStatus, params.NumberOfTxs, nil, TxSender)
    30  	require.NoError(b, err)
    31  
    32  	var (
    33  		elapsed            time.Duration
    34  		prometheusResponse *http.Response
    35  	)
    36  
    37  	b.Run(fmt.Sprintf("sequencer_selecting_%d_txs", params.NumberOfTxs), func(b *testing.B) {
    38  		err = transactions.WaitStatusSelected(pl.CountTransactionsByStatus, initialCount, params.NumberOfTxs)
    39  		require.NoError(b, err)
    40  		elapsed = time.Since(start)
    41  		log.Infof("Total elapsed time: %s", elapsed)
    42  		prometheusResponse, err = metrics.FetchPrometheus()
    43  		require.NoError(b, err)
    44  	})
    45  
    46  	var profilingResult string
    47  	if profilingEnabled {
    48  		profilingResult, err = metrics.FetchProfiling()
    49  		require.NoError(b, err)
    50  	}
    51  
    52  	metrics.CalculateAndPrint(prometheusResponse, profilingResult, elapsed, 0, 0, params.NumberOfTxs)
    53  	fmt.Printf("%s\n", profilingResult)
    54  }