mirror of https://github.com/grpc/grpc-go.git
advancedtls: add package for testdata (#3306)
This commit is contained in:
parent
336cf8d761
commit
20bce9a0c6
|
@ -32,11 +32,12 @@ import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"google.golang.org/grpc/credentials"
|
"google.golang.org/grpc/credentials"
|
||||||
|
"google.golang.org/grpc/security/advancedtls/testdata"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestClientServerHandshake(t *testing.T) {
|
func TestClientServerHandshake(t *testing.T) {
|
||||||
// ------------------Load Client Trust Cert and Peer Cert-------------------
|
// ------------------Load Client Trust Cert and Peer Cert-------------------
|
||||||
clientTrustPool, err := readTrustCert("testdata/client_trust_cert_1.pem")
|
clientTrustPool, err := readTrustCert(testdata.Path("client_trust_cert_1.pem"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Client is unable to load trust certs. Error: %v", err)
|
t.Fatalf("Client is unable to load trust certs. Error: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -50,21 +51,21 @@ func TestClientServerHandshake(t *testing.T) {
|
||||||
}
|
}
|
||||||
return results, fmt.Errorf("custom verification function failed")
|
return results, fmt.Errorf("custom verification function failed")
|
||||||
}
|
}
|
||||||
clientPeerCert, err := tls.LoadX509KeyPair("testdata/client_cert_1.pem",
|
clientPeerCert, err := tls.LoadX509KeyPair(testdata.Path("client_cert_1.pem"),
|
||||||
"testdata/client_key_1.pem")
|
testdata.Path("client_key_1.pem"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Client is unable to parse peer certificates. Error: %v", err)
|
t.Fatalf("Client is unable to parse peer certificates. Error: %v", err)
|
||||||
}
|
}
|
||||||
// ------------------Load Server Trust Cert and Peer Cert-------------------
|
// ------------------Load Server Trust Cert and Peer Cert-------------------
|
||||||
serverTrustPool, err := readTrustCert("testdata/server_trust_cert_1.pem")
|
serverTrustPool, err := readTrustCert(testdata.Path("server_trust_cert_1.pem"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Server is unable to load trust certs. Error: %v", err)
|
t.Fatalf("Server is unable to load trust certs. Error: %v", err)
|
||||||
}
|
}
|
||||||
getRootCAsForServer := func(params *GetRootCAsParams) (*GetRootCAsResults, error) {
|
getRootCAsForServer := func(params *GetRootCAsParams) (*GetRootCAsResults, error) {
|
||||||
return &GetRootCAsResults{TrustCerts: serverTrustPool}, nil
|
return &GetRootCAsResults{TrustCerts: serverTrustPool}, nil
|
||||||
}
|
}
|
||||||
serverPeerCert, err := tls.LoadX509KeyPair("testdata/server_cert_1.pem",
|
serverPeerCert, err := tls.LoadX509KeyPair(testdata.Path("server_cert_1.pem"),
|
||||||
"testdata/server_key_1.pem")
|
testdata.Path("server_key_1.pem"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Server is unable to parse peer certificates. Error: %v", err)
|
t.Fatalf("Server is unable to parse peer certificates. Error: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -538,7 +539,7 @@ func compare(a1, a2 credentials.AuthInfo) bool {
|
||||||
|
|
||||||
func TestAdvancedTLSOverrideServerName(t *testing.T) {
|
func TestAdvancedTLSOverrideServerName(t *testing.T) {
|
||||||
expectedServerName := "server.name"
|
expectedServerName := "server.name"
|
||||||
clientTrustPool, err := readTrustCert("testdata/client_trust_cert_1.pem")
|
clientTrustPool, err := readTrustCert(testdata.Path("client_trust_cert_1.pem"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Client is unable to load trust certs. Error: %v", err)
|
t.Fatalf("Client is unable to load trust certs. Error: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -560,7 +561,7 @@ func TestAdvancedTLSOverrideServerName(t *testing.T) {
|
||||||
|
|
||||||
func TestTLSClone(t *testing.T) {
|
func TestTLSClone(t *testing.T) {
|
||||||
expectedServerName := "server.name"
|
expectedServerName := "server.name"
|
||||||
clientTrustPool, err := readTrustCert("testdata/client_trust_cert_1.pem")
|
clientTrustPool, err := readTrustCert(testdata.Path("client_trust_cert_1.pem"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("Client is unable to load trust certs. Error: %v", err)
|
t.Fatalf("Client is unable to load trust certs. Error: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -571,6 +572,9 @@ func TestTLSClone(t *testing.T) {
|
||||||
ServerNameOverride: expectedServerName,
|
ServerNameOverride: expectedServerName,
|
||||||
}
|
}
|
||||||
c, err := NewClient(clientOptions)
|
c, err := NewClient(clientOptions)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Failed to create new client: %v", err)
|
||||||
|
}
|
||||||
cc := c.Clone()
|
cc := c.Clone()
|
||||||
if cc.Info().ServerName != expectedServerName {
|
if cc.Info().ServerName != expectedServerName {
|
||||||
t.Fatalf("cc.Info().ServerName = %v, want %v", cc.Info().ServerName, expectedServerName)
|
t.Fatalf("cc.Info().ServerName = %v, want %v", cc.Info().ServerName, expectedServerName)
|
||||||
|
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2017 gRPC authors.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package testdata
|
||||||
|
|
||||||
|
import (
|
||||||
|
"path/filepath"
|
||||||
|
"runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// basepath is the root directory of this package.
|
||||||
|
var basepath string
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
_, currentFile, _, _ := runtime.Caller(0)
|
||||||
|
basepath = filepath.Dir(currentFile)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Path returns the absolute path the given relative file or directory path,
|
||||||
|
// relative to the google.golang.org/grpc/testdata directory in the user's GOPATH.
|
||||||
|
// If rel is already absolute, it is returned unmodified.
|
||||||
|
func Path(rel string) string {
|
||||||
|
if filepath.IsAbs(rel) {
|
||||||
|
return rel
|
||||||
|
}
|
||||||
|
|
||||||
|
return filepath.Join(basepath, rel)
|
||||||
|
}
|
Loading…
Reference in New Issue