Skip to content

Commit

Permalink
Github CI: Run client-server interoperability test (golang@latest <->…
Browse files Browse the repository at this point in the history
… golang@latest) (#163)

* make test: Run client-server (both golang@latest) interoperability test

* Ensure tests & examples are ran against current ./bin/webrpc-gen

* Makefile supports exporting PATH globally

* Wait for test server to come up

* make test: Wait for test server to finish

* webrpc-test -server: Exit success on normal shutdown

* Run Go 1.19 before Go 1.16 tests

Before this change, the Go 1.19 test was canceled automatically
if the slower Go 1.16 test failed (which is more likely).

* make generate: Fix directory name in the output
  • Loading branch information
VojtechVitek committed Dec 21, 2022
1 parent d4cca79 commit d84328a
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 13 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
test:
strategy:
matrix:
go-version: [1.16, 1.19]
go-version: [1.19, 1.16]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
Expand Down
28 changes: 19 additions & 9 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
export PATH = $(shell echo $$PWD/bin:$$PATH)

all:
@echo "*****************************************"
@echo "** WebRPC Dev **"
Expand All @@ -8,11 +10,14 @@ all:
@echo ""
@echo " + Testing:"
@echo " - test"
@echo " - generate"
@echo " - diff"
@echo ""
@echo " + Builds:"
@echo " - build"
@echo " - build-test"
@echo " - clean"
@echo " - generate"
@echo " - install"
@echo ""
@echo " + Dep management:"
@echo " - dep"
Expand All @@ -21,23 +26,20 @@ all:

build:
go build -o ./bin/webrpc-gen ./cmd/webrpc-gen

build-test:
go build -o ./bin/webrpc-test ./cmd/webrpc-test
./bin/webrpc-gen -schema=./tests/schema/api.ridl -target=golang -pkg=client -client -out=./tests/client/client.gen.go
./bin/webrpc-gen -schema=./tests/schema/api.ridl -target=golang -pkg=server -server -out=./tests/server/server.gen.go

clean:
rm -rf ./bin

install: build
install:
go install ./cmd/webrpc-gen

test: build
go test -v ./...

generate:
generate: build
go generate ./...
@for i in _examples/*/Makefile; do \
echo; echo $$ cd $$i \&\& make generate; \
echo; echo $$ cd $$(dirname $$i) \&\& make generate; \
cd $$(dirname $$i); \
make generate || exit 1; \
cd ../../; \
Expand All @@ -52,3 +54,11 @@ dep-upgrade-all:

diff:
git diff --color --ignore-all-space --ignore-blank-lines --exit-code

test: generate build-test
go test -v ./...
echo "Running inperoperability test"; \
./bin/webrpc-test -server -port=9988 -timeout=2s & \
sleep 0.5; \
./bin/webrpc-test -client -url=http://localhost:9988; \
wait
6 changes: 5 additions & 1 deletion cmd/webrpc-test/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,5 +86,9 @@ func serverMode() error {
}()
}

return srv.ListenAndServe()
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
return err
}

return nil
}
2 changes: 1 addition & 1 deletion tests/client/client.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions tests/complex_test.go
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package tests

//go:generate webrpc-gen -schema=./schema/api.ridl -target=golang -pkg=client -client -out=./client/client.gen.go
//go:generate webrpc-gen -schema=./schema/api.ridl -target=golang -pkg=server -server -out=./server/server.gen.go

import (
"net/http/httptest"
"testing"
Expand Down
2 changes: 1 addition & 1 deletion tests/server/server.gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit d84328a

Please sign in to comment.