diff --git a/tests/apps/gogrpc/go.mod b/tests/apps/gogrpc/go.mod index 17be0c8fe..0f08a07e1 100644 --- a/tests/apps/gogrpc/go.mod +++ b/tests/apps/gogrpc/go.mod @@ -19,3 +19,5 @@ require ( google.golang.org/grpc v1.23.0 honnef.co/go/tools v0.0.1-2019.2.2 // indirect ) + +replace google.golang.org/grpc/examples/helloworld/helloworld => ./helloworld diff --git a/tests/apps/gogrpc/greeter_client/main.go b/tests/apps/gogrpc/greeter_client/main.go index 613d402bc..7274c1088 100644 --- a/tests/apps/gogrpc/greeter_client/main.go +++ b/tests/apps/gogrpc/greeter_client/main.go @@ -21,24 +21,34 @@ package main import ( "context" + "crypto/tls" "flag" "fmt" "log" "time" "google.golang.org/grpc" + "google.golang.org/grpc/credentials" pb "google.golang.org/grpc/examples/helloworld/helloworld" ) var ( - address = flag.String("address", "", "address to call") - name = flag.String("name", "world", "the name") + address = flag.String("address", "", "address to call") + name = flag.String("name", "world", "the name") + selfSignedTLS = flag.Bool("tls", false, "use self signed tls") ) func main() { flag.Parse() // Set up a connection to the server. - conn, err := grpc.Dial(*address, grpc.WithInsecure()) + var opts []grpc.DialOption + if *selfSignedTLS { + creds := credentials.NewTLS(&tls.Config{InsecureSkipVerify: true}) + opts = append(opts, grpc.WithTransportCredentials(creds)) + } else { + opts = append(opts, grpc.WithInsecure()) + } + conn, err := grpc.Dial(*address, opts...) if err != nil { log.Fatalf("did not connect: %v", err) } diff --git a/tests/unit/40_nginx-vhosts_3.bats b/tests/unit/40_nginx-vhosts_3.bats index 5257fbc67..6336da6ea 100644 --- a/tests/unit/40_nginx-vhosts_3.bats +++ b/tests/unit/40_nginx-vhosts_3.bats @@ -21,6 +21,14 @@ teardown() { @test "(nginx-vhosts) grpc endpoint" { deploy_app gogrpc dokku proxy:ports-add "$TEST_APP" "grpc:80:50051" - docker run --rm ${TEST_APP}-docker-image /go/bin/greeter_client -address ${TEST_APP}.dokku.me:80 -name grpc + run /bin/bash -c "docker run --rm ${TEST_APP}-docker-image /go/bin/greeter_client -address ${TEST_APP}.dokku.me:80 -name grpc" assert_output "Greeting: Hello grpc" } + +@test "(nginx-vhosts) grpcs endpoint" { + setup_test_tls + deploy_app gogrpc + dokku proxy:ports-add "$TEST_APP" "grpcs:443:50051" + run /bin/bash -c "docker run --rm ${TEST_APP}-docker-image /go/bin/greeter_client -address ${TEST_APP}.dokku.me:443 -name grpcs -tls" + assert_output "Greeting: Hello grpcs" +}