github.com/decred/dcrlnd@v0.7.6/aezeed/bench_test.go (about)

     1  package aezeed
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  )
     7  
     8  var (
     9  	mnemonic Mnemonic
    10  
    11  	seed *CipherSeed
    12  )
    13  
    14  // BenchmarkFrommnemonic benchmarks the process of converting a cipher seed
    15  // (given the salt), to an enciphered mnemonic.
    16  func BenchmarkTomnemonic(b *testing.B) {
    17  	scryptN = 32768
    18  	scryptR = 8
    19  	scryptP = 1
    20  
    21  	pass := []byte("1234567890abcedfgh")
    22  	cipherSeed, err := New(0, nil, time.Now())
    23  	if err != nil {
    24  		b.Fatalf("unable to create seed: %v", err)
    25  	}
    26  
    27  	var r Mnemonic
    28  	for i := 0; i < b.N; i++ {
    29  		r, err = cipherSeed.ToMnemonic(pass)
    30  		if err != nil {
    31  			b.Fatalf("unable to encipher: %v", err)
    32  		}
    33  	}
    34  
    35  	b.ReportAllocs()
    36  
    37  	mnemonic = r
    38  }
    39  
    40  // BenchmarkToCipherSeed benchmarks the process of deciphering an existing
    41  // enciphered mnemonic.
    42  func BenchmarkToCipherSeed(b *testing.B) {
    43  	scryptN = 32768
    44  	scryptR = 8
    45  	scryptP = 1
    46  
    47  	pass := []byte("1234567890abcedfgh")
    48  	cipherSeed, err := New(0, nil, time.Now())
    49  	if err != nil {
    50  		b.Fatalf("unable to create seed: %v", err)
    51  	}
    52  
    53  	mnemonic, err := cipherSeed.ToMnemonic(pass)
    54  	if err != nil {
    55  		b.Fatalf("unable to create mnemonic: %v", err)
    56  	}
    57  
    58  	var s *CipherSeed
    59  	for i := 0; i < b.N; i++ {
    60  		s, err = mnemonic.ToCipherSeed(pass)
    61  		if err != nil {
    62  			b.Fatalf("unable to decipher: %v", err)
    63  		}
    64  	}
    65  
    66  	b.ReportAllocs()
    67  
    68  	seed = s
    69  }