From 4bab826c4a261201e4eda6c26f82d6ce0604ca6c Mon Sep 17 00:00:00 2001 From: Virx Date: Sat, 31 Jan 2026 12:35:27 -0500 Subject: [PATCH] Update to .NET 10 Update tools Fix warnings --- .config/dotnet-tools.json | 5 +++-- RLBotCS/Main.cs | 2 +- RLBotCS/RLBotCS.csproj | 6 +++--- RLBotCS/lib/Bridge.dll | Bin 142336 -> 142336 bytes RLBotCSTests/AssemblyInfo.cs | 3 +++ RLBotCSTests/BallPrediction.cs | 6 +++--- RLBotCSTests/ConfigParserTest.cs | 22 ++++++++-------------- RLBotCSTests/GameState.cs | 2 +- RLBotCSTests/PlayerMappingTest.cs | 6 +++--- RLBotCSTests/RLBotCSTests.csproj | 10 +++++----- 10 files changed, 30 insertions(+), 32 deletions(-) create mode 100644 RLBotCSTests/AssemblyInfo.cs diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 5e099aa..cdb3c8d 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,10 +3,11 @@ "isRoot": true, "tools": { "csharpier": { - "version": "1.2.0", + "version": "1.2.5", "commands": [ "csharpier" - ] + ], + "rollForward": false } } } \ No newline at end of file diff --git a/RLBotCS/Main.cs b/RLBotCS/Main.cs index 0af77f8..26ce346 100644 --- a/RLBotCS/Main.cs +++ b/RLBotCS/Main.cs @@ -10,7 +10,7 @@ if (args.Length > 0 && args[0] == "--version") { Console.WriteLine( - "RLBotServer v5.0.0-rc.2\n" + "RLBotServer v5.0.0-rc.3\n" + $"Bridge {BridgeVersion.Version}\n" + "@ https://www.rlbot.org & https://github.com/RLBot/core" ); diff --git a/RLBotCS/RLBotCS.csproj b/RLBotCS/RLBotCS.csproj index 7ad2e10..e83d211 100644 --- a/RLBotCS/RLBotCS.csproj +++ b/RLBotCS/RLBotCS.csproj @@ -1,7 +1,7 @@  Exe - net8.0 + net10.0 enable enable True @@ -20,8 +20,8 @@ true - - + + WINDOWS diff --git a/RLBotCS/lib/Bridge.dll b/RLBotCS/lib/Bridge.dll index d3a1ee3566642c40c571b7b3cf0ad8604c77ad29..df2ad452a208cdde1938d476a55f56abed3d5a08 100644 GIT binary patch delta 49366 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 delta 49177 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


L~oQ5pCWZExS?^s|%^dQW-f` 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 hWEN&-RIZ50**>*uys|}mTQhGg diff --git a/RLBotCSTests/AssemblyInfo.cs b/RLBotCSTests/AssemblyInfo.cs new file mode 100644 index 0000000..ae411c7 --- /dev/null +++ b/RLBotCSTests/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; + +[assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] diff --git a/RLBotCSTests/BallPrediction.cs b/RLBotCSTests/BallPrediction.cs index 161e97b..204cd26 100644 --- a/RLBotCSTests/BallPrediction.cs +++ b/RLBotCSTests/BallPrediction.cs @@ -44,8 +44,8 @@ public void TestBallPred() var ballPred = BallPredictor.Generate(1, gTP2.Balls[0], null, -650f); int numSlices = 6 * 120; - Assert.AreEqual(numSlices, ballPred.Slices.Count); - Assert.IsTrue(ballPred.Slices[numSlices - 1].GameSeconds > 5.9999); + Assert.HasCount(numSlices, ballPred.Slices); + Assert.IsInRange(6.9999, 7.0001, ballPred.Slices[numSlices - 1].GameSeconds); // comment out to see results of the below test // dotnet test -c "Release" for best results @@ -75,6 +75,6 @@ public void TestBallPred() ); // makes the above result print out - Assert.IsTrue(false); + Assert.Fail(); } } diff --git a/RLBotCSTests/ConfigParserTest.cs b/RLBotCSTests/ConfigParserTest.cs index 398c677..1fd9619 100644 --- a/RLBotCSTests/ConfigParserTest.cs +++ b/RLBotCSTests/ConfigParserTest.cs @@ -30,7 +30,7 @@ public static void AssertThrowsInnerException(Action action) } e = e.InnerException!; } - Assert.IsInstanceOfType(e, typeof(T)); + Assert.IsInstanceOfType(e); return; } Assert.Fail(); @@ -48,14 +48,8 @@ public void EmptyVsDefaultMatchConfig() Assert.AreEqual(emptyMC.AutoStartAgents, defaultMC.AutoStartAgents); Assert.AreEqual(emptyMC.WaitForAgents, defaultMC.WaitForAgents); Assert.AreEqual(emptyMC.GameMapUpk, defaultMC.GameMapUpk); - Assert.AreEqual( - emptyMC.PlayerConfigurations.Count, - defaultMC.PlayerConfigurations.Count - ); - Assert.AreEqual( - emptyMC.ScriptConfigurations.Count, - defaultMC.ScriptConfigurations.Count - ); + Assert.HasCount(emptyMC.PlayerConfigurations.Count, defaultMC.PlayerConfigurations); + Assert.HasCount(emptyMC.ScriptConfigurations.Count, defaultMC.ScriptConfigurations); Assert.AreEqual(emptyMC.GameMode, defaultMC.GameMode); Assert.AreEqual(emptyMC.SkipReplays, defaultMC.SkipReplays); Assert.AreEqual(emptyMC.InstantStart, defaultMC.InstantStart); @@ -107,7 +101,7 @@ public void EdgeCases() PsyonixSkill.Pro, edgeMC.PlayerConfigurations[0].Variety.AsPsyonixBot().BotSkill ); - Assert.AreEqual(null, edgeMC.PlayerConfigurations[0].Variety.AsPsyonixBot().Loadout); + Assert.IsNull(edgeMC.PlayerConfigurations[0].Variety.AsPsyonixBot().Loadout); Assert.AreEqual(PlayerClass.CustomBot, edgeMC.PlayerConfigurations[1].Variety.Type); Assert.AreEqual( @@ -167,8 +161,8 @@ public void EmptyVsDefaultBotAndScriptToml() Assert.AreEqual(0u, player.Team); Assert.AreEqual(Path.GetFullPath("TestTomls"), player.Variety.AsCustomBot().RootDir); Assert.AreEqual("", player.Variety.AsCustomBot().RunCommand); - Assert.AreEqual(null, player.Variety.AsCustomBot().Loadout); - Assert.AreEqual(false, player.Variety.AsCustomBot().Hivemind); + Assert.IsNull(player.Variety.AsCustomBot().Loadout); + Assert.IsFalse(player.Variety.AsCustomBot().Hivemind); ScriptConfigurationT script = mc.ScriptConfigurations[0]; Assert.AreEqual("", script.Name); @@ -185,7 +179,7 @@ public void Overrides() PlayerConfigurationT player = mc.PlayerConfigurations[0]; Assert.AreEqual("New Bot Name", player.Variety.AsCustomBot().Name); - Assert.AreEqual(null, player.Variety.AsCustomBot().Loadout); + Assert.IsNull(player.Variety.AsCustomBot().Loadout); ScriptConfigurationT script = mc.ScriptConfigurations[0]; Assert.AreEqual("Normal Test Script", script.Name); // Not overriden @@ -194,7 +188,7 @@ public void Overrides() [TestMethod] public void ConfigNotFound() { - ConfigParser parser = new ConfigParser(); + ConfigParser parser = new(); AssertThrowsInnerException(() => parser.LoadMatchConfig(null!)); AssertThrowsInnerException(() => diff --git a/RLBotCSTests/GameState.cs b/RLBotCSTests/GameState.cs index 0e843d4..200d680 100644 --- a/RLBotCSTests/GameState.cs +++ b/RLBotCSTests/GameState.cs @@ -47,6 +47,6 @@ public void Test() ); var flatPacket = packet.ToFlatBuffers(); - Assert.AreEqual(3, flatPacket.BoostPads.Count); + Assert.HasCount(3, flatPacket.BoostPads); } } diff --git a/RLBotCSTests/PlayerMappingTest.cs b/RLBotCSTests/PlayerMappingTest.cs index 9f4b4cc..c28b1f4 100644 --- a/RLBotCSTests/PlayerMappingTest.cs +++ b/RLBotCSTests/PlayerMappingTest.cs @@ -42,7 +42,7 @@ public void TestSpawnProcess() Assert.AreEqual(playerId, metadata.PlayerId); Assert.AreEqual(agentId, metadata.AgentId); Assert.IsTrue(metadata.IsBot); - Assert.IsTrue(!metadata.IsCustomBot); + Assert.IsFalse(metadata.IsCustomBot); // apply car spawn from unknown player var metadata2 = _playerMapping.ApplyCarSpawn(111, 222); @@ -53,8 +53,8 @@ public void TestSpawnProcess() Assert.AreEqual(0u, index); Assert.AreNotEqual(0, metadata2.PlayerId); Assert.AreEqual(desiredIndex, _playerMapping.PlayerIndexFromActorId(actorId)); - Assert.IsTrue(!metadata2.IsBot); - Assert.IsTrue(!metadata2.IsCustomBot); + Assert.IsFalse(metadata2.IsBot); + Assert.IsFalse(metadata2.IsCustomBot); uint? index2 = _playerMapping.PlayerIndexFromActorId(456); diff --git a/RLBotCSTests/RLBotCSTests.csproj b/RLBotCSTests/RLBotCSTests.csproj index 429e8c2..b0bb296 100644 --- a/RLBotCSTests/RLBotCSTests.csproj +++ b/RLBotCSTests/RLBotCSTests.csproj @@ -1,14 +1,14 @@ - net8.0 + net10.0 enable false - - - - + + + +