public override void TickTest() { // create a new build UnrealBuildSource Build = new UnrealBuildSource(this.GameName, this.UsesSharedBuildType, Environment.CurrentDirectory, this.BuildPath, new string[] { "" }); // check it's valid if (!CheckResult(Build.BuildCount > 0, "staged build was invalid")) { MarkComplete(); return; } // Create devices to run the client and server ITargetDevice PCDevice = new TargetDeviceWindows("Local PC", Globals.TempDir); // Monolithic servers TestInstallThenRun(Build, UnrealTargetRole.Server, PCDevice, UnrealTargetConfiguration.Development); TestInstallThenRun(Build, UnrealTargetRole.Server, PCDevice, UnrealTargetConfiguration.Test); // Monolithic clients TestInstallThenRun(Build, UnrealTargetRole.Client, PCDevice, UnrealTargetConfiguration.Development); TestInstallThenRun(Build, UnrealTargetRole.Client, PCDevice, UnrealTargetConfiguration.Test); // editor configs TestInstallThenRun(Build, UnrealTargetRole.EditorGame, PCDevice, UnrealTargetConfiguration.Development); TestInstallThenRun(Build, UnrealTargetRole.EditorServer, PCDevice, UnrealTargetConfiguration.Development); TestInstallThenRun(Build, UnrealTargetRole.Editor, PCDevice, UnrealTargetConfiguration.Development); MarkComplete(); }
public override void TickTest() { string TempDir = Path.Combine(Environment.CurrentDirectory, "GauntletTemp"); TargetDeviceWindows Device = new TargetDeviceWindows("Local PC", Globals.TempDir); CheckEssentialFunctions(Device); MarkComplete(); }
void TestClientPlatform(UnrealTargetPlatform Platform) { string GameName = this.ProjectFile.FullName; string BuildPath = this.BuildPath; string DevKit = this.DevkitName; if (GameName.Equals("OrionGame", StringComparison.OrdinalIgnoreCase) == false) { Log.Info("Skipping test {0} due to non-Orion project!", this); MarkComplete(); return; } // create a new build UnrealBuildSource Build = new UnrealBuildSource(ProjectFile, this.UnrealPath, UsesSharedBuildType, BuildPath); // check it's valid if (!CheckResult(Build.BuildCount > 0, "staged build was invalid")) { MarkComplete(); return; } // Create devices to run the client and server ITargetDevice ServerDevice = new TargetDeviceWindows("PC Server", Gauntlet.Globals.TempDir); ITargetDevice ClientDevice = null; if (Platform == UnrealTargetPlatform.PS4) { //ClientDevice = new TargetDevicePS4(this.PS4Name); } else { ClientDevice = new TargetDeviceWindows("PC Client", Gauntlet.Globals.TempDir); } UnrealAppConfig ServerConfig = Build.CreateConfiguration(new UnrealSessionRole(UnrealTargetRole.Server, ServerDevice.Platform, UnrealTargetConfiguration.Development)); UnrealAppConfig ClientConfig = Build.CreateConfiguration(new UnrealSessionRole(UnrealTargetRole.Client, ClientDevice.Platform, UnrealTargetConfiguration.Development)); if (!CheckResult(ServerConfig != null && ServerConfig != null, "Could not create configs!")) { MarkComplete(); return; } ShortSoloOptions Options = new ShortSoloOptions(); Options.ApplyToConfig(ClientConfig); Options.ApplyToConfig(ServerConfig); IAppInstall ClientInstall = ClientDevice.InstallApplication(ClientConfig); IAppInstall ServerInstall = ServerDevice.InstallApplication(ServerConfig); if (!CheckResult(ServerConfig != null && ServerConfig != null, "Could not create configs!")) { MarkComplete(); return; } IAppInstance ClientInstance = ClientInstall.Run(); IAppInstance ServerInstance = ServerInstall.Run(); DateTime StartTime = DateTime.Now; bool RunWasSuccessful = true; while (ClientInstance.HasExited == false) { if ((DateTime.Now - StartTime).TotalSeconds > 800) { RunWasSuccessful = false; break; } } ClientInstance.Kill(); ServerInstance.Kill(); UnrealLogParser LogParser = new UnrealLogParser(ClientInstance.StdOut); UnrealLogParser.CallstackMessage ErrorInfo = LogParser.GetFatalError(); if (ErrorInfo != null) { CheckResult(false, "FatalError - {0}", ErrorInfo.Message); } RunWasSuccessful = LogParser.HasRequestExit(); CheckResult(RunWasSuccessful, "Failed to run for platform {0}", Platform); }