Sfoglia il codice sorgente

Add test for RegisterTLSConfig

Luke Scott 12 anni fa
parent
commit
17ee918f8d
2 ha cambiato i file con 21 aggiunte e 16 eliminazioni
  1. 10 1
      driver_test.go
  2. 11 15
      utils.go

+ 10 - 1
driver_test.go

@@ -1,6 +1,7 @@
 package mysql
 
 import (
+	"crypto/tls"
 	"database/sql"
 	"fmt"
 	"io"
@@ -840,7 +841,7 @@ func TestStrict(t *testing.T) {
 }
 
 func TestTLS(t *testing.T) {
-	runTests(t, dsn+"&tls=skip-verify", func(dbt *DBTest) {
+	tlsTest := func(dbt *DBTest) {
 		if err := dbt.db.Ping(); err != nil {
 			if err == errNoTLS {
 				dbt.Skip("Server does not support TLS")
@@ -861,7 +862,15 @@ func TestTLS(t *testing.T) {
 				dbt.Fatal("No Cipher")
 			}
 		}
+	}
+
+	runTests(t, dsn+"&tls=skip-verify", tlsTest)
+
+	// Verify that registering / using a custom cfg works
+	RegisterTLSConfig("custom-skip-verify", &tls.Config{
+		InsecureSkipVerify: true,
 	})
+	runTests(t, dsn+"&tls=custom-skip-verify", tlsTest)
 }
 
 // Special cases

+ 11 - 15
utils.go

@@ -83,24 +83,20 @@ var tlsConfigMap map[string]*tls.Config
 // Use the key as a value in the DSN where tls=value.
 //
 //  rootCertPool := x509.NewCertPool()
-//  {
-//      pem, err := ioutil.ReadFile("/path/ca-cert.pem")
-//      if err != nil {
-//          log.Fatal(err)
-//      }
-//      if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
-//          log.Fatal("Failed to append PEM.")
-//      }
+//  pem, err := ioutil.ReadFile("/path/ca-cert.pem")
+//  if err != nil {
+//      log.Fatal(err)
+//  }
+//  if ok := rootCertPool.AppendCertsFromPEM(pem); !ok {
+//      log.Fatal("Failed to append PEM.")
 //  }
 //  clientCert := make([]tls.Certificate, 0, 1)
-//  {
-//      certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client-key.pem")
-//      if err != nil {
-//          log.Fatal(err)
-//      }
-//      clientCert = append(clientCert, certs)
+//  certs, err := tls.LoadX509KeyPair("/path/client-cert.pem", "/path/client-key.pem")
+//  if err != nil {
+//      log.Fatal(err)
 //  }
-//  mysql.RegisterTLSConfig("custom", tls.Config{
+//  clientCert = append(clientCert, certs)
+//  mysql.RegisterTLSConfig("custom", &tls.Config{
 //      RootCAs: rootCertPool,
 //      Certificates: clientCert,
 //  })