// Copyright 2024 The Go Authors. All rights reserved.// Use of this source code is governed by a BSD-style// license that can be found in the LICENSE file.package cryptotestimport ()// TestAllImplementations runs the provided test function with each available// implementation of the package registered with crypto/internal/impl. If there// are no alternative implementations for pkg, f is invoked directly once.func ( *testing.T, string, func( *testing.T)) {// BoringCrypto bypasses the multiple Go implementations.ifboring.Enabled { ()return } := impl.List()iflen() == 0 { ()return } .Cleanup(func() { impl.Reset() })for , := range {if := impl.Select(, ); { .Run(, ) } else { .Run(, func( *testing.T) {// Report an error if we're on Linux CI (assumed to be the most // consistent) and the builder can't test this implementation.iftestenv.Builder() != "" && goos.GOOS == "linux" {if == "SHA-NI" { .Skip("known issue, see golang.org/issue/69592") }if == "Armv8.2" { .Skip("known issue, see golang.org/issue/69593") } .Error("builder doesn't support CPU features needed to test this implementation") } else { .Skip("implementation not supported") } }) } }// Test the generic implementation.impl.Select(, "") .Run("Base", )}
The pages are generated with Goldsv0.7.3. (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu.
PR and bug reports are welcome and can be submitted to the issue list.
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds.