87 lines
1.6 KiB
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.")
|
|
}
|