...

Source file src/github.com/jackc/pgx/v5/pgconn/benchmark_private_test.go

Documentation: github.com/jackc/pgx/v5/pgconn

     1  package pgconn
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  )
     7  
     8  func BenchmarkCommandTagRowsAffected(b *testing.B) {
     9  	benchmarks := []struct {
    10  		commandTag   string
    11  		rowsAffected int64
    12  	}{
    13  		{"UPDATE 1", 1},
    14  		{"UPDATE 123456789", 123456789},
    15  		{"INSERT 0 1", 1},
    16  		{"INSERT 0 123456789", 123456789},
    17  	}
    18  
    19  	for _, bm := range benchmarks {
    20  		ct := CommandTag{s: bm.commandTag}
    21  		b.Run(bm.commandTag, func(b *testing.B) {
    22  			var n int64
    23  			for i := 0; i < b.N; i++ {
    24  				n = ct.RowsAffected()
    25  			}
    26  			if n != bm.rowsAffected {
    27  				b.Errorf("expected %d got %d", bm.rowsAffected, n)
    28  			}
    29  		})
    30  	}
    31  }
    32  
    33  func BenchmarkCommandTagTypeFromString(b *testing.B) {
    34  	ct := CommandTag{s: "UPDATE 1"}
    35  
    36  	var update bool
    37  	for i := 0; i < b.N; i++ {
    38  		update = strings.HasPrefix(ct.String(), "UPDATE")
    39  	}
    40  	if !update {
    41  		b.Error("expected update")
    42  	}
    43  }
    44  
    45  func BenchmarkCommandTagInsert(b *testing.B) {
    46  	benchmarks := []struct {
    47  		commandTag string
    48  		is         bool
    49  	}{
    50  		{"INSERT 1", true},
    51  		{"INSERT 1234567890", true},
    52  		{"UPDATE 1", false},
    53  		{"UPDATE 1234567890", false},
    54  		{"DELETE 1", false},
    55  		{"DELETE 1234567890", false},
    56  		{"SELECT 1", false},
    57  		{"SELECT 1234567890", false},
    58  		{"UNKNOWN 1234567890", false},
    59  	}
    60  
    61  	for _, bm := range benchmarks {
    62  		ct := CommandTag{s: bm.commandTag}
    63  		b.Run(bm.commandTag, func(b *testing.B) {
    64  			var is bool
    65  			for i := 0; i < b.N; i++ {
    66  				is = ct.Insert()
    67  			}
    68  			if is != bm.is {
    69  				b.Errorf("expected %v got %v", bm.is, is)
    70  			}
    71  		})
    72  	}
    73  }
    74  

View as plain text