go_study/fabric-main/bccsp/factory/factory_test.go

87 lines
1.6 KiB
Go

/*
Copyright IBM Corp. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
*/
package factory
import (
"fmt"
"os"
"strings"
"testing"
"github.com/hyperledger/fabric/bccsp/pkcs11"
"github.com/spf13/viper"
"github.com/stretchr/testify/require"
)
func TestMain(m *testing.M) {
var yamlBCCSP *FactoryOpts
yamlCFG := `
BCCSP:
default: SW
SW:
Hash: SHA3
Security: 256
`
if pkcs11Enabled {
lib, pin, label := pkcs11.FindPKCS11Lib()
yamlCFG = fmt.Sprintf(`
BCCSP:
default: PKCS11
SW:
Hash: SHA3
Security: 256
PKCS11:
Hash: SHA3
Security: 256
Library: %s
Pin: '%s'
Label: %s
`, lib, pin, label)
}
viper.SetConfigType("yaml")
err := viper.ReadConfig(strings.NewReader(yamlCFG))
if err != nil {
fmt.Printf("Could not read YAML config [%s]", err)
os.Exit(-1)
}
err = viper.UnmarshalKey("bccsp", &yamlBCCSP)
if err != nil {
fmt.Printf("Could not parse YAML config [%s]", err)
os.Exit(-1)
}
cfgVariations := []*FactoryOpts{
{},
{Default: "SW"},
{Default: "SW", SW: &SwOpts{Hash: "SHA2", Security: 256}},
yamlBCCSP,
}
for index, config := range cfgVariations {
fmt.Printf("Trying configuration [%d]\n", index)
factoriesInitError = initFactories(config)
if factoriesInitError != nil {
fmt.Fprintf(os.Stderr, "initFactories failed: %s", factoriesInitError)
os.Exit(1)
}
if rc := m.Run(); rc != 0 {
os.Exit(rc)
}
}
os.Exit(0)
}
func TestGetDefault(t *testing.T) {
bccsp := GetDefault()
require.NotNil(t, bccsp, "Failed getting default BCCSP. Nil instance.")
}