From 6fb7ee598d05e2c79b8a091be4618ad7d3bc6a6f Mon Sep 17 00:00:00 2001 From: Marc Di Luzio Date: Wed, 10 Jun 2020 17:39:42 +0100 Subject: [PATCH] Move server package out into rove-server --- Makefile | 10 +++++-- cmd/rove-server/{ => internal}/api_test.go | 5 ++-- .../rove-server/internal}/routes.go | 2 +- .../rove-server/internal}/routes_test.go | 2 +- .../rove-server/internal}/server.go | 2 +- .../rove-server/internal}/server_test.go | 2 +- cmd/rove-server/main.go | 10 +++---- cmd/rove/main_test.go | 28 ++----------------- pkg/game/world.go | 7 +++-- 9 files changed, 27 insertions(+), 41 deletions(-) rename cmd/rove-server/{ => internal}/api_test.go (97%) rename {pkg/server => cmd/rove-server/internal}/routes.go (99%) rename {pkg/server => cmd/rove-server/internal}/routes_test.go (99%) rename {pkg/server => cmd/rove-server/internal}/server.go (99%) rename {pkg/server => cmd/rove-server/internal}/server_test.go (98%) diff --git a/Makefile b/Makefile index 2eb2b16..9373c42 100644 --- a/Makefile +++ b/Makefile @@ -15,8 +15,14 @@ test: # Run the server and shut it down again to ensure our docker-compose works ROVE_ARGS="--quit 1" docker-compose up --build --exit-code-from=rove-server --abort-on-container-exit - # Run tests with coverage - go test -v ./... -cover -coverprofile=/tmp/c.out -count 1 + # Run the server and shut it down again to ensure our docker-compose works + docker-compose up -d + + # Run tests with coverage and integration tags + go test -v ./... --tags=integration -cover -coverprofile=/tmp/c.out -count 1 + + # + docker-compose down # Convert the coverage data to html go tool cover -html=/tmp/c.out -o /tmp/coverage.html diff --git a/cmd/rove-server/api_test.go b/cmd/rove-server/internal/api_test.go similarity index 97% rename from cmd/rove-server/api_test.go rename to cmd/rove-server/internal/api_test.go index 344cfe4..9010092 100644 --- a/cmd/rove-server/api_test.go +++ b/cmd/rove-server/internal/api_test.go @@ -1,4 +1,4 @@ -package main +package internal import ( "fmt" @@ -8,7 +8,6 @@ import ( "github.com/google/uuid" "github.com/mdiluz/rove/pkg/game" "github.com/mdiluz/rove/pkg/rove" - "github.com/mdiluz/rove/pkg/server" "github.com/stretchr/testify/assert" ) @@ -16,7 +15,7 @@ import ( var serv rove.Server func TestMain(m *testing.M) { - s := server.NewServer() + s := NewServer() if err := s.Initialise(true); err != nil { fmt.Println(err) os.Exit(1) diff --git a/pkg/server/routes.go b/cmd/rove-server/internal/routes.go similarity index 99% rename from pkg/server/routes.go rename to cmd/rove-server/internal/routes.go index 48f8d1d..3dfc4c4 100644 --- a/pkg/server/routes.go +++ b/cmd/rove-server/internal/routes.go @@ -1,4 +1,4 @@ -package server +package internal import ( "encoding/json" diff --git a/pkg/server/routes_test.go b/cmd/rove-server/internal/routes_test.go similarity index 99% rename from pkg/server/routes_test.go rename to cmd/rove-server/internal/routes_test.go index e4f16af..78861df 100644 --- a/pkg/server/routes_test.go +++ b/cmd/rove-server/internal/routes_test.go @@ -1,4 +1,4 @@ -package server +package internal import ( "bytes" diff --git a/pkg/server/server.go b/cmd/rove-server/internal/server.go similarity index 99% rename from pkg/server/server.go rename to cmd/rove-server/internal/server.go index 7bd2852..08c6eb6 100644 --- a/pkg/server/server.go +++ b/cmd/rove-server/internal/server.go @@ -1,4 +1,4 @@ -package server +package internal import ( "context" diff --git a/pkg/server/server_test.go b/cmd/rove-server/internal/server_test.go similarity index 98% rename from pkg/server/server_test.go rename to cmd/rove-server/internal/server_test.go index cf07bdc..36db679 100644 --- a/pkg/server/server_test.go +++ b/cmd/rove-server/internal/server_test.go @@ -1,4 +1,4 @@ -package server +package internal import ( "testing" diff --git a/cmd/rove-server/main.go b/cmd/rove-server/main.go index 0cd4232..49ac614 100644 --- a/cmd/rove-server/main.go +++ b/cmd/rove-server/main.go @@ -8,8 +8,8 @@ import ( "syscall" "time" + "github.com/mdiluz/rove/cmd/rove-server/internal" "github.com/mdiluz/rove/pkg/persistence" - "github.com/mdiluz/rove/pkg/server" "github.com/mdiluz/rove/pkg/version" ) @@ -34,10 +34,10 @@ func InnerMain() { persistence.SetPath(*data) // Create the server data - s := server.NewServer( - server.OptionAddress(*address), - server.OptionPersistentData(), - server.OptionTick(*tick)) + s := internal.NewServer( + internal.OptionAddress(*address), + internal.OptionPersistentData(), + internal.OptionTick(*tick)) // Initialise the server if err := s.Initialise(true); err != nil { diff --git a/cmd/rove/main_test.go b/cmd/rove/main_test.go index 745b73d..1803a14 100644 --- a/cmd/rove/main_test.go +++ b/cmd/rove/main_test.go @@ -1,40 +1,18 @@ +// +build integration + package main import ( "flag" - "fmt" "os" "path" "testing" "github.com/google/uuid" - "github.com/mdiluz/rove/pkg/server" "github.com/stretchr/testify/assert" ) -var address string - -func TestMain(m *testing.M) { - s := server.NewServer() - if err := s.Initialise(true); err != nil { - fmt.Println(err) - os.Exit(1) - } - - address = s.Addr() - - go s.Run() - - fmt.Printf("Test server hosted on %s", address) - code := m.Run() - - if err := s.StopAndClose(); err != nil { - fmt.Println(err) - os.Exit(1) - } - - os.Exit(code) -} +var address = "localhost:80" func Test_InnerMain(t *testing.T) { // Set up the flags to act locally and use a temporary file diff --git a/pkg/game/world.go b/pkg/game/world.go index 1da2821..f2a2f56 100644 --- a/pkg/game/world.go +++ b/pkg/game/world.go @@ -294,8 +294,11 @@ func (w *World) Enqueue(rover uuid.UUID, commands ...Command) error { defer w.cmdMutex.Unlock() // Append the commands to the incoming set - cmds := w.Incoming[rover] - w.Incoming[rover] = append(cmds, commands...) + if cmds, ok := w.Incoming[rover]; ok { + w.Incoming[rover] = append(cmds, commands...) + } else { + w.Incoming[rover] = commands + } return nil }