diff --git a/build/Makefile b/build/Makefile index b37ae43802..d154aa8c6f 100644 --- a/build/Makefile +++ b/build/Makefile @@ -58,12 +58,16 @@ KIND_CONTAINER_NAME=$(KIND_PROFILE)-control-plane # Game Server image to use while doing end-to-end tests <<<<<<< HEAD +<<<<<<< HEAD GS_TEST_IMAGE ?= gcr.io/agones-images/simple-game-server:0.1 ALPHA_FEATURE_GATES ?= "PlayerTracking=true&SDKWatchSendOnExecute=true&RollingUpdateOnReady=true" ======= GS_TEST_IMAGE ?= gcr.io/agones-images/udp-server:0.20 >>>>>>> d60a566e (E2E Tests for GameServer Player Tracking (#1541)) +======= +GS_TEST_IMAGE ?= gcr.io/agones-images/udp-server:0.21 +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) ALL_FEATURE_GATES ?= "PlayerTracking=true&ContainerPortAllocation=true" diff --git a/examples/simple-udp/Makefile b/examples/simple-udp/Makefile index 0f6aa437c8..da5cd4bbf3 100644 --- a/examples/simple-udp/Makefile +++ b/examples/simple-udp/Makefile @@ -28,10 +28,14 @@ REPOSITORY = gcr.io/agones-scale-test-1 mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) project_path := $(dir $(mkfile_path)) <<<<<<< HEAD +<<<<<<< HEAD server_tag = $(REPOSITORY)/udp-server:0.21 ======= server_tag = $(REPOSITORY)/udp-server:0.20 >>>>>>> d60a566e (E2E Tests for GameServer Player Tracking (#1541)) +======= +server_tag = $(REPOSITORY)/udp-server:0.21 +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) root_path = $(realpath $(project_path)/../..) # _____ _ diff --git a/examples/simple-udp/main.go b/examples/simple-udp/main.go index 96c41a39cb..02c631d698 100644 --- a/examples/simple-udp/main.go +++ b/examples/simple-udp/main.go @@ -217,11 +217,15 @@ func readWriteLoop(conn net.PacketConn, stop chan struct{}, s *sdk.SDK) { continue case 2: if cap, err := strconv.Atoi(parts[1]); err != nil { +<<<<<<< HEAD <<<<<<< HEAD respond(conn, sender, fmt.Sprintf("ERROR: %s\n", err)) ======= respond(conn, sender, err.Error()+"\n") >>>>>>> d60a566e (E2E Tests for GameServer Player Tracking (#1541)) +======= + respond(conn, sender, fmt.Sprintf("ERROR: %s\n", err)) +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) continue } else { setPlayerCapacity(s, int64(cap)) diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 7f2852d115..bc899da599 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -184,8 +184,12 @@ func NewFromFlags() (*Framework, error) { viper.SetDefault(gsimageFlag, "gcr.io/agones-images/simple-game-server:0.1") ======= viper.SetDefault(kubeconfigFlag, filepath.Join(usr.HomeDir, "/.kube/config")) +<<<<<<< HEAD viper.SetDefault(gsimageFlag, "gcr.io/agones-images/udp-server:0.20") >>>>>>> d60a566e (E2E Tests for GameServer Player Tracking (#1541)) +======= + viper.SetDefault(gsimageFlag, "gcr.io/agones-images/udp-server:0.21") +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) viper.SetDefault(pullSecretFlag, "") viper.SetDefault(stressTestLevelFlag, 0) viper.SetDefault(perfOutputDirFlag, "") @@ -204,7 +208,7 @@ func NewFromFlags() (*Framework, error) { ======= kubeconfig := pflag.String(kubeconfigFlag, viper.GetString(kubeconfigFlag), "kube config path, e.g. $HOME/.kube/config") - gsimage := pflag.String(gsimageFlag, viper.GetString(gsimageFlag), "gameserver image to use for those tests, gcr.io/agones-images/udp-server:0.20") + gsimage := pflag.String(gsimageFlag, viper.GetString(gsimageFlag), "gameserver image to use for those tests, gcr.io/agones-images/udp-server:0.21") pullSecret := pflag.String(pullSecretFlag, viper.GetString(pullSecretFlag), "optional secret to be used for pulling the gameserver and/or Agones SDK sidecar images") stressTestLevel := pflag.Int(stressTestLevelFlag, viper.GetInt(stressTestLevelFlag), "enable stress test at given level 0-100") perfOutputDir := pflag.String(perfOutputDirFlag, viper.GetString(perfOutputDirFlag), "write performance statistics to the specified directory") diff --git a/test/e2e/gameserver_test.go b/test/e2e/gameserver_test.go index 86d7df7659..486ecbe395 100644 --- a/test/e2e/gameserver_test.go +++ b/test/e2e/gameserver_test.go @@ -574,6 +574,18 @@ func TestGameServerWithPortsMappedToMultipleContainers(t *testing.T) { func TestGameServerReserve(t *testing.T) { t.Parallel() +<<<<<<< HEAD +======= + + // We are deliberately not trying to test the transition between Reserved -> Ready. + // + // We have found that trying to catch the GameServer in the Reserved state can be flaky, + // as we can't control the speed in which the Kubernetes API is going to reply to request, + // and we could sometimes miss when the GameServer is in the Reserved State before it goes to Ready. + // + // Therefore we are going to test for concrete states that we don't need to catch while + // in a transitive state. +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) // We are deliberately not trying to test the transition between Reserved -> Ready. // @@ -593,12 +605,18 @@ func TestGameServerReserve(t *testing.T) { assert.Equal(t, gs.Status.State, agonesv1.GameServerStateReady) reply, err := e2eframework.SendGameServerUDP(gs, "RESERVE 0") +<<<<<<< HEAD if err != nil { assert.FailNow(t, "Could not message GameServer", err.Error()) +======= + if !assert.NoError(t, err) { + assert.FailNow(t, "Could not message GameServer") +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) } assert.Equal(t, "ACK: RESERVE 0\n", reply) gs, err = framework.WaitForGameServerState(gs, agonesv1.GameServerStateReserved, 3*time.Minute) +<<<<<<< HEAD if err != nil { assert.FailNow(t, "Time out on waiting for gs in a Reserved state", err.Error()) } @@ -606,11 +624,19 @@ func TestGameServerReserve(t *testing.T) { reply, err = e2eframework.SendGameServerUDP(gs, "ALLOCATE") if err != nil { assert.FailNow(t, "Could not message GameServer", err.Error()) +======= + assert.NoError(t, err) + + reply, err = e2eframework.SendGameServerUDP(gs, "ALLOCATE") + if !assert.NoError(t, err) { + assert.FailNow(t, "Could not message GameServer") +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) } assert.Equal(t, "ACK: ALLOCATE\n", reply) // put it in a totally different state, just to reset things. gs, err = framework.WaitForGameServerState(gs, agonesv1.GameServerStateAllocated, 3*time.Minute) +<<<<<<< HEAD if err != nil { assert.FailNow(t, "Time out on waiting for gs in an Allocated state", err.Error()) } @@ -618,6 +644,13 @@ func TestGameServerReserve(t *testing.T) { reply, err = e2eframework.SendGameServerUDP(gs, "RESERVE 5s") if err != nil { assert.FailNow(t, "Could not message GameServer", err.Error()) +======= + assert.NoError(t, err) + + reply, err = e2eframework.SendGameServerUDP(gs, "RESERVE 5s") + if !assert.NoError(t, err) { + assert.FailNow(t, "Could not message GameServer") +>>>>>>> 8bdc911b (Flaky: TestGameServerReserve (#1565)) } assert.Equal(t, "ACK: RESERVE 5s\n", reply)