public void SMP_1_FAHlog() // verbosity 9 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\SMP_1\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(5, 30)); expectedRun.UnitIndexes.Add(new UnitIndex(6, 150)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 7, 30, 0, 40, 27, DateTimeKind.Utc); expectedRun.Arguments = "-smp -verbosity 9"; expectedRun.ClientVersion = "6.24beta"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "5131EA752EB60547"; expectedRun.MachineID = 1; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 261; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[0]); // Check Run 1 Positions expectedRun = new ClientRun(274); expectedRun.UnitIndexes.Add(new UnitIndex(6, 302)); expectedRun.UnitIndexes.Add(new UnitIndex(7, 402)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 7, 31, 0, 7, 43, DateTimeKind.Utc); expectedRun.Arguments = "-smp -verbosity 9"; expectedRun.ClientVersion = "6.24beta"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "5131EA752EB60547"; expectedRun.MachineID = 1; expectedRun.CompletedUnits = 2; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 263; expectedRun.Status = SlotStatus.GettingWorkPacket; DoClientRunCheck(expectedRun, clientRuns[1]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(5, logLines[33].LineData); Assert.AreEqual(2.08f, logLines[40].LineData); Assert.That(logLines[51].ToString().Contains("Project: 2677 (Run 10, Clone 29, Gen 28)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[109].LineData); }
private static UnitInfo BuildUnitInfo(QueueEntry queueEntry, ClientRun clientRun, UnitRun unitRun, UnitInfoLogData unitInfoLogData, bool matchOverride = false) { // queueEntry can be null Debug.Assert(clientRun != null); // unitInfoLogData can be null var unit = new UnitInfo(); UnitRunData unitRunData; if (unitRun == null) { if (matchOverride) { unitRunData = new UnitRunData(); } else { return(null); } } else { unit.LogLines = unitRun.ToList(); unitRunData = unitRun.Data; } unit.UnitStartTimeStamp = unitRunData.UnitStartTimeStamp ?? TimeSpan.MinValue; unit.FramesObserved = unitRunData.FramesObserved; unit.CoreVersion = unitRunData.CoreVersion; unit.UnitResult = unitRunData.WorkUnitResult; if (queueEntry != null) { UpdateUnitInfoFromQueueData(unit, queueEntry); SearchFahLogUnitDataProjects(unit, unitRunData); UpdateUnitInfoFromLogData(unit, clientRun.Data, unitRunData, unitInfoLogData); if (!ProjectsMatch(unit, unitRunData) && !ProjectsMatch(unit, unitInfoLogData) && !matchOverride) { return(null); } } else { UpdateUnitInfoFromLogData(unit, clientRun.Data, unitRunData, unitInfoLogData); } return(unit); }
/// <summary> /// Creates a new <see cref="ClientRunData"/> object from the information contained in the <see cref="ClientRun"/> object. /// </summary> protected override ClientRunData OnGetClientRunData(ClientRun clientRun) { var clientRunData = new FahClientClientRunData(); foreach (var line in clientRun.LogLines) { switch (line.LineType) { case LogLineType.LogOpen: clientRunData.StartTime = (DateTime)line.Data; break; } } return(clientRunData); }
public ClientMessageAggregatorResult AggregateData() { var result = new ClientMessageAggregatorResult(); result.CurrentUnitIndex = -1; ClientRun clientRun = FahClient.Messages.Log.ClientRuns.Last(); SlotRun slotRun = null; if (clientRun.SlotRuns.ContainsKey(SlotModel.SlotID)) { slotRun = clientRun.SlotRuns[SlotModel.SlotID]; } result.StartTime = clientRun.Data.StartTime; if (FahClient.Logger.IsDebugEnabled) { foreach (var s in LogLineEnumerable.Create(clientRun).Where(x => x.Data is LogLineDataParserError)) { FahClient.Logger.Debug(String.Format(Logger.NameFormat, FahClient.Settings.Name, $"Failed to parse log line: {s}")); } } var unitCollection = FahClient.Messages.UnitCollection; var options = FahClient.Messages.Options; var currentWorkUnit = SlotModel.WorkUnitModel.WorkUnit; var info = FahClient.Messages.Info; BuildWorkUnits(result, slotRun, unitCollection, options, currentWorkUnit, SlotModel.SlotID); result.WorkUnitQueue = BuildWorkUnitQueue(unitCollection, info, SlotModel); if (result.WorkUnits.ContainsKey(result.CurrentUnitIndex) && result.WorkUnits[result.CurrentUnitIndex].LogLines != null) { result.CurrentLogLines = result.WorkUnits[result.CurrentUnitIndex].LogLines; } else if (slotRun != null) { result.CurrentLogLines = LogLineEnumerable.Create(slotRun).ToList(); } else { result.CurrentLogLines = LogLineEnumerable.Create(clientRun).ToList(); } return(result); }
/// <summary> /// Creates a new <see cref="ClientRunData"/> object from the information contained in the <see cref="ClientRun"/> object. /// </summary> protected override ClientRunData OnGetClientRunData(ClientRun clientRun) { var clientRunData = new LegacyClientRunData(); foreach (var line in clientRun.LogLines) { switch (line.LineType) { case LogLineType.LogOpen: clientRunData.StartTime = (DateTime)line.Data; break; case LogLineType.ClientVersion: clientRunData.ClientVersion = line.Data.ToString(); break; case LogLineType.ClientArguments: clientRunData.Arguments = line.Data.ToString(); break; case LogLineType.ClientUserNameAndTeam: { var data = (ClientUserNameAndTeamData)line.Data; clientRunData.FoldingID = data.FoldingID; clientRunData.Team = data.Team; break; } case LogLineType.ClientUserID: case LogLineType.ClientReceivedUserID: clientRunData.UserID = line.Data.ToString(); break; case LogLineType.ClientMachineID: clientRunData.MachineID = (int)line.Data; break; } } return(clientRunData); }
public void Client_v7_7() { // Scan IList<LogLine> logLines = LogReader.GetLogLines(File.ReadAllLines("..\\..\\..\\TestFiles\\Client_v7_7\\log.txt"), LogFileType.FahClient).ToList(); IList<ClientRun> clientRuns = LogReader.GetClientRuns(logLines, LogFileType.FahClient); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(1, 64, 293)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 60, 439)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 261, 690)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 412, 788)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 654, 959)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 928, 1163)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 755, 1324)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 1172, 1398)); expectedRun.StartTime = new DateTime(2011, 8, 21, 23, 5, 1, DateTimeKind.Utc); expectedRun.Arguments = ""; expectedRun.FoldingID = String.Empty; expectedRun.Team = 0; expectedRun.UserID = ""; expectedRun.MachineID = 0; expectedRun.CompletedUnits = 8; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.Unknown; DoClientRunCheck(expectedRun, clientRuns[0]); var logInterpreter = new LogInterpreter(logLines, clientRuns); Assert.AreEqual(1, logInterpreter.LogLineParsingErrors.Count()); logLines = logInterpreter.GetLogLinesForQueueIndex(0, new ProjectInfo { ProjectID = 6801, ProjectRun = 6348, ProjectClone = 0, ProjectGen = 305 }); Assert.AreEqual(158, logLines.Count); FahLogUnitData fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(0, 37, 38), fahLogData.UnitStartTimeStamp); Assert.AreEqual(2.20f, fahLogData.CoreVersion); Assert.AreEqual(101, fahLogData.FrameDataList.Count); Assert.AreEqual(101, fahLogData.FramesObserved); Assert.AreEqual(6801, fahLogData.ProjectID); Assert.AreEqual(6348, fahLogData.ProjectRun); Assert.AreEqual(0, fahLogData.ProjectClone); Assert.AreEqual(305, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, fahLogData.UnitResult); logLines = logInterpreter.GetLogLinesForQueueIndex(2, new ProjectInfo { ProjectID = 11051, ProjectRun = 0, ProjectClone = 2, ProjectGen = 39 }); Assert.AreEqual(141, logLines.Count); fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(18, 29, 47), fahLogData.UnitStartTimeStamp); Assert.AreEqual(2.27f, fahLogData.CoreVersion); Assert.AreEqual(101, fahLogData.FrameDataList.Count); Assert.AreEqual(101, fahLogData.FramesObserved); Assert.AreEqual(11051, fahLogData.ProjectID); Assert.AreEqual(0, fahLogData.ProjectRun); Assert.AreEqual(2, fahLogData.ProjectClone); Assert.AreEqual(39, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.FinishedUnit, fahLogData.UnitResult); }
public void Client_v7_1() { // Scan IList<LogLine> logLines = LogReader.GetLogLines(File.ReadAllLines("..\\..\\..\\TestFiles\\Client_v7_1\\log.txt"), LogFileType.FahClient).ToList(); IList<ClientRun> clientRuns = LogReader.GetClientRuns(logLines, LogFileType.FahClient); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(1, 174, 272)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 236, 433)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 399, 609)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 561, 771)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 740, 1085)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 899, 1240)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 1208, 1400)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 1369, 1564)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 1526, 1726)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 1692, 1886)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 1853, 2063)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 2015, 2225)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 2194, 2385)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 2352, 2546)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 2511, 2707)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 2673, 2868)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 2833, 3028)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 2997, 3198)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 3154, 3360)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 3325, 3523)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 3487, 3699)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 3664, 3876)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 3827, 4053)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 4005, -1)); expectedRun.StartTime = new DateTime(2011, 5, 19, 18, 5, 3, DateTimeKind.Utc); expectedRun.Arguments = String.Empty; expectedRun.FoldingID = String.Empty; expectedRun.Team = 0; expectedRun.UserID = String.Empty; expectedRun.MachineID = 0; expectedRun.CompletedUnits = 23; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.Unknown; DoClientRunCheck(expectedRun, clientRuns[0]); var logInterpreter = new LogInterpreter(logLines, clientRuns); Assert.AreEqual(1, logInterpreter.LogLineParsingErrors.Count()); logLines = logInterpreter.GetLogLinesForQueueIndex(1, new ProjectInfo { ProjectID = 7136, ProjectRun = 0, ProjectClone = 39, ProjectGen = 103 }); Assert.AreEqual(56, logLines.Count); FahLogUnitData fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(18, 6, 54), fahLogData.UnitStartTimeStamp); Assert.AreEqual(2.27f, fahLogData.CoreVersion); Assert.AreEqual(6, fahLogData.FrameDataList.Count); Assert.AreEqual(6, fahLogData.FramesObserved); Assert.AreEqual(7136, fahLogData.ProjectID); Assert.AreEqual(0, fahLogData.ProjectRun); Assert.AreEqual(39, fahLogData.ProjectClone); Assert.AreEqual(103, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.FinishedUnit, fahLogData.UnitResult); logLines = logInterpreter.GetLogLinesForQueueIndex(0, new ProjectInfo { ProjectID = 6984, ProjectRun = 0, ProjectClone = 1, ProjectGen = 18 }); Assert.AreEqual(142, logLines.Count); fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(18, 39, 17), fahLogData.UnitStartTimeStamp); Assert.AreEqual(2.27f, fahLogData.CoreVersion); Assert.AreEqual(101, fahLogData.FrameDataList.Count); Assert.AreEqual(101, fahLogData.FramesObserved); Assert.AreEqual(6984, fahLogData.ProjectID); Assert.AreEqual(0, fahLogData.ProjectRun); Assert.AreEqual(1, fahLogData.ProjectClone); Assert.AreEqual(18, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.FinishedUnit, fahLogData.UnitResult); }
public void Standard_9_FAHlog() // v6.23 A4 Uniprocessor { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\Standard_9\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(5, 24, -1)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 3, 16, 18, 46, 15, DateTimeKind.Utc); expectedRun.Arguments = "-oneunit -verbosity 9"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "Amaruk"; expectedRun.Team = 50625; expectedRun.UserID = "1E53CB2Axxxxxxxx"; expectedRun.MachineID = 14; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 173; expectedRun.Status = SlotStatus.Stopped; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(5, logLines[31].LineData); Assert.AreEqual(2.27f, logLines[38].LineData); Assert.That(logLines[47].ToString().Contains("Project: 10741 (Run 0, Clone 1996, Gen 3)")); }
public void Standard_6_FAHlog() // verbosity normal / Gromacs 3.3 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\Standard_6\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(9, 27)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 294)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 554)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 814)); expectedRun.UnitIndexes.Add(new UnitIndex(3, 1074)); expectedRun.UnitIndexes.Add(new UnitIndex(4, 1338)); expectedRun.UnitIndexes.Add(new UnitIndex(5, 1602)); expectedRun.UnitIndexes.Add(new UnitIndex(6, 1870)); expectedRun.UnitIndexes.Add(new UnitIndex(7, 2130)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 3, 10, 15, 48, 32, DateTimeKind.Utc); expectedRun.Arguments = String.Empty; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "DrSpalding"; expectedRun.Team = 48083; expectedRun.UserID = "1E19BD450434A6ED"; expectedRun.MachineID = 1; expectedRun.CompletedUnits = 8; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 229; expectedRun.Status = SlotStatus.Paused; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 6) Assert.AreEqual(7, logLines[2133].LineData); Assert.AreEqual(1.90f, logLines[2138].LineData); Assert.That(logLines[2147].ToString().Contains("Project: 4461 (Run 886, Clone 3, Gen 56)")); // Special Check to be sure the reader is catching the Pause For Battery line Assert.AreEqual(LogLineType.WorkUnitPausedForBattery, logLines[2323].LineType); }
public void SMP_15_FAHlog() // lots of Client-core communications error { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\SMP_15\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(7, 36)); expectedRun.UnitIndexes.Add(new UnitIndex(8, 234)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 284)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 334)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 658)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 708)); expectedRun.UnitIndexes.Add(new UnitIndex(3, 758)); expectedRun.UnitIndexes.Add(new UnitIndex(4, 1082)); expectedRun.UnitIndexes.Add(new UnitIndex(5, 1147)); expectedRun.UnitIndexes.Add(new UnitIndex(6, 1219)); expectedRun.UnitIndexes.Add(new UnitIndex(7, 1269)); expectedRun.UnitIndexes.Add(new UnitIndex(8, 1341)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 1436)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 1538)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 1588)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 1638)); expectedRun.UnitIndexes.Add(new UnitIndex(3, 1710)); expectedRun.UnitIndexes.Add(new UnitIndex(4, 1760)); expectedRun.UnitIndexes.Add(new UnitIndex(5, 1825)); expectedRun.UnitIndexes.Add(new UnitIndex(6, 2149)); expectedRun.UnitIndexes.Add(new UnitIndex(7, 2199)); expectedRun.UnitIndexes.Add(new UnitIndex(8, 2418)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 2490)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 2540)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 2590)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 2914)); expectedRun.UnitIndexes.Add(new UnitIndex(3, 2964)); expectedRun.UnitIndexes.Add(new UnitIndex(4, 3014)); expectedRun.UnitIndexes.Add(new UnitIndex(5, 3353)); expectedRun.UnitIndexes.Add(new UnitIndex(6, 3448)); expectedRun.UnitIndexes.Add(new UnitIndex(7, 3498)); expectedRun.UnitIndexes.Add(new UnitIndex(8, 3645)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 3710)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 3760)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 9, 14, 2, 48, 27, DateTimeKind.Utc); expectedRun.Arguments = "-smp -verbosity 9"; expectedRun.ClientVersion = "6.30"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "DC1DAF57D91DF79"; expectedRun.MachineID = 1; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 33; expectedRun.TotalCompletedUnits = 617; expectedRun.Status = SlotStatus.EuePause; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 33) Assert.AreEqual(0, logLines[3763].LineData); Assert.AreEqual(2.22f, logLines[3770].LineData); Assert.That(logLines[3780].ToString().Contains("Project: 6071 (Run 0, Clone 39, Gen 70)")); Assert.AreEqual(WorkUnitResult.ClientCoreError, logLines[3786].LineData); }
public void GPU2_7_FAHlog() // verbosity (normal) / Project String After "+ Processing work unit" { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\GPU2_7\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(0, 24)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 1, 31, 1, 57, 21, DateTimeKind.Utc); expectedRun.Arguments = String.Empty; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "Zagen30"; expectedRun.Team = 46301; expectedRun.UserID = "xxxxxxxxxxxxxxxxxxx"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 0; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 1994; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(0, logLines[28].LineData); Assert.AreEqual(1.31f, logLines[37].LineData); Assert.That(logLines[50].ToString().Contains("Project: 5781 (Run 2, Clone 700, Gen 2)")); var unitData = LogReader.GetFahLogDataFromLogLines(logInterpreter.CurrentWorkUnitLogLines); Assert.AreEqual(new TimeSpan(1, 57, 21), unitData.UnitStartTimeStamp); Assert.AreEqual(5, unitData.FrameDataList.Count); Assert.AreEqual(5, unitData.FramesObserved); Assert.AreEqual(1.31f, unitData.CoreVersion); Assert.AreEqual(-1, unitData.ProjectInfoIndex); Assert.AreEqual(2, unitData.ProjectInfoList.Count); Assert.AreEqual(5781, unitData.ProjectID); Assert.AreEqual(2, unitData.ProjectRun); Assert.AreEqual(700, unitData.ProjectClone); Assert.AreEqual(2, unitData.ProjectGen); Assert.AreEqual(unitData.ProjectID, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectID); Assert.AreEqual(unitData.ProjectRun, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectRun); Assert.AreEqual(unitData.ProjectClone, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectClone); Assert.AreEqual(unitData.ProjectGen, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, unitData.UnitResult); }
public void Client_v7_10() { // Scan IList<LogLine> logLines = LogReader.GetLogLines(File.ReadAllLines("..\\..\\..\\TestFiles\\Client_v7_10\\log.txt"), LogFileType.FahClient).ToList(); IList<ClientRun> clientRuns = LogReader.GetClientRuns(logLines, LogFileType.FahClient); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(0, 120, 349)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 85, -1)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 319, -1)); expectedRun.StartTime = new DateTime(2012, 1, 11, 3, 24, 22, DateTimeKind.Utc); expectedRun.Arguments = ""; expectedRun.ClientVersion = ""; expectedRun.FoldingID = String.Empty; expectedRun.Team = 0; expectedRun.UserID = ""; expectedRun.MachineID = 0; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.Unknown; DoClientRunCheck(expectedRun, clientRuns[0]); var logInterpreter = new LogInterpreter(logLines, clientRuns); Assert.AreEqual(1, logInterpreter.LogLineParsingErrors.Count()); logLines = logInterpreter.GetLogLinesForQueueIndex(1, new ProjectInfo { ProjectID = 7610, ProjectRun = 630, ProjectClone = 0, ProjectGen = 59 }); Assert.AreEqual(39, logLines.Count); FahLogUnitData fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(3, 25, 32), fahLogData.UnitStartTimeStamp); Assert.AreEqual(2.27f, fahLogData.CoreVersion); Assert.AreEqual(10, fahLogData.FrameDataList.Count); Assert.AreEqual(10, fahLogData.FramesObserved); Assert.AreEqual(7610, fahLogData.ProjectID); Assert.AreEqual(630, fahLogData.ProjectRun); Assert.AreEqual(0, fahLogData.ProjectClone); Assert.AreEqual(59, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, fahLogData.UnitResult); logLines = logInterpreter.GetLogLinesForQueueIndex(2, new ProjectInfo { ProjectID = 5772, ProjectRun = 7, ProjectClone = 364, ProjectGen = 252 }); Assert.AreEqual(87, logLines.Count); fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(4, 21, 52), fahLogData.UnitStartTimeStamp); Assert.AreEqual(1.31f, fahLogData.CoreVersion); Assert.AreEqual(53, fahLogData.FrameDataList.Count); Assert.AreEqual(53, fahLogData.FramesObserved); Assert.AreEqual(5772, fahLogData.ProjectID); Assert.AreEqual(7, fahLogData.ProjectRun); Assert.AreEqual(364, fahLogData.ProjectClone); Assert.AreEqual(252, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, fahLogData.UnitResult); }
public void GPU2_2_FAHlog() // verbosity (normal) { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\GPU2_2\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(8, 34)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 208)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 382)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 14, 4, 40, 2, DateTimeKind.Utc); expectedRun.Arguments = String.Empty; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "51108B97183EA3DF"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 2; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 4221; expectedRun.Status = SlotStatus.Stopped; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(8, logLines[37].LineData); Assert.AreEqual(1.19f, logLines[42].LineData); Assert.That(logLines[56].ToString().Contains("Project: 5751 (Run 8, Clone 205, Gen 527)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[188].LineData); }
public void GPU2_3_FAHlog() // verbosity (normal) / EUE Pause Test { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\GPU2_3\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(6, 24)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 18, 3, 26, 33, DateTimeKind.Utc); expectedRun.Arguments = String.Empty; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "JollySwagman"; expectedRun.Team = 32; expectedRun.UserID = "1D1493BB0A79C9AE"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 0; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.Stopped; DoClientRunCheck(expectedRun, clientRuns[0]); // Check Run 1 Positions expectedRun = new ClientRun(56); expectedRun.UnitIndexes.Add(new UnitIndex(6, 80)); expectedRun.UnitIndexes.Add(new UnitIndex(7, 221)); expectedRun.UnitIndexes.Add(new UnitIndex(8, 271)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 320)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 373)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 421)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 18, 3, 54, 16, DateTimeKind.Utc); expectedRun.Arguments = String.Empty; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "JollySwagman"; expectedRun.Team = 32; expectedRun.UserID = "1D1493BB0A79C9AE"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 5; expectedRun.TotalCompletedUnits = 224; expectedRun.Status = SlotStatus.EuePause; DoClientRunCheck(expectedRun, clientRuns[1]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 1 - Unit Index 3) Assert.AreEqual(9, logLines[323].LineData); Assert.AreEqual(1.19f, logLines[328].LineData); Assert.That(logLines[342].ToString().Contains("Project: 5756 (Run 6, Clone 32, Gen 480)")); Assert.AreEqual(WorkUnitResult.UnstableMachine, logLines[359].LineData); // Special Check to be sure the reader is catching the EUE Pause line Assert.AreEqual(LogLineType.ClientEuePauseState, logLines[463].LineType); }
public void SMP_3_FAHlog() // verbosity (normal) / Handles Core Download on Startup / notfred's instance { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\SMP_3\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(1, 231)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 385)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 25, 18, 11, 37, DateTimeKind.Utc); expectedRun.Arguments = "-local -forceasm -smp 4"; expectedRun.ClientVersion = "6.02"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; // verbosity (normal) does not output User ID after requested from server // see ClientLogLines indexes 29 & 30 expectedRun.UserID = String.Empty; expectedRun.MachineID = 1; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; //TODO: not capturing line "+ Starting local stats count at 1" expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(1, logLines[234].LineData); Assert.AreEqual(2.08f, logLines[239].LineData); Assert.That(logLines[246].ToString().Contains("Project: 2677 (Run 4, Clone 60, Gen 40)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[368].LineData); }
public void GPU2_1_FAHlog() // verbosity 9 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\GPU2_1\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(1, 130)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 326)); expectedRun.UnitIndexes.Add(new UnitIndex(3, 387)); expectedRun.UnitIndexes.Add(new UnitIndex(4, 449)); expectedRun.UnitIndexes.Add(new UnitIndex(5, 510)); expectedRun.UnitIndexes.Add(new UnitIndex(6, 571)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 8, 5, 7, 18, DateTimeKind.Utc); expectedRun.Arguments = "-verbosity 9 -local"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "CF185086C102A47"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 5; expectedRun.TotalCompletedUnits = 0; //TODO: not capturing line "+ Starting local stats count at 1" expectedRun.Status = SlotStatus.Stopped; DoClientRunCheck(expectedRun, clientRuns[0]); // Check Run 1 Positions expectedRun = new ClientRun(618); expectedRun.UnitIndexes.Add(new UnitIndex(7, 663)); expectedRun.UnitIndexes.Add(new UnitIndex(8, 737)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 935)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 1132)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 1329)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 1526)); expectedRun.UnitIndexes.Add(new UnitIndex(3, 1724)); expectedRun.UnitIndexes.Add(new UnitIndex(4, 1926)); expectedRun.UnitIndexes.Add(new UnitIndex(5, 2123)); expectedRun.UnitIndexes.Add(new UnitIndex(6, 2321)); expectedRun.UnitIndexes.Add(new UnitIndex(7, 2518)); expectedRun.UnitIndexes.Add(new UnitIndex(8, 2715)); expectedRun.UnitIndexes.Add(new UnitIndex(9, 2917)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 8, 6, 18, 28, DateTimeKind.Utc); expectedRun.Arguments = "-verbosity 9 -local"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "CF185086C102A47"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 11; expectedRun.FailedUnits = 1; expectedRun.TotalCompletedUnits = 12; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[1]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(1, logLines[133].LineData); Assert.AreEqual(1.19f, logLines[140].LineData); Assert.That(logLines[154].ToString().Contains("Project: 5771 (Run 12, Clone 109, Gen 805)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[286].LineData); }
public void SMP_17_FAHlog() // v6.23 A4 SMP { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\SMP_17\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(0, 24, -1)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 175, -1)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 3, 20, 7, 52, 34, DateTimeKind.Utc); expectedRun.Arguments = "-smp -bigadv -betateam -verbosity 9"; expectedRun.ClientVersion = "6.34"; expectedRun.FoldingID = "GreyWhiskers"; expectedRun.Team = 0; expectedRun.UserID = "51EA5C9A7EF9D58E"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 885; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(0, logLines[32].LineData); Assert.AreEqual(2.27f, logLines[39].LineData); Assert.That(logLines[51].ToString().Contains("Project: 8022 (Run 11, Clone 318, Gen 24)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[130].LineData); }
public void SMP_2_FAHlog() // verbosity 9 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\SMP_2\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(1, 30)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 221)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 18, 2, 40, 5, DateTimeKind.Utc); expectedRun.Arguments = "-smp -verbosity 9"; expectedRun.ClientVersion = "6.24beta"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "3A49EBB303C19834"; expectedRun.MachineID = 1; expectedRun.CompletedUnits = 2; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 292; expectedRun.Status = SlotStatus.SendingWorkPacket; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(1, logLines[33].LineData); Assert.AreEqual(2.08f, logLines[40].LineData); Assert.That(logLines[47].ToString().Contains("Project: 2677 (Run 10, Clone 49, Gen 38)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[180].LineData); // Special Check to be sure the reader is catching the Attempting To Send line Assert.AreEqual(LogLineType.ClientSendStart, logLines[379].LineType); }
/// <summary> /// Aggregate Data and return UnitInfo Dictionary. /// </summary> public DataAggregatorResult AggregateData(ClientRun clientRun, UnitCollection unitCollection, Info info, Options options, SlotOptions slotOptions, UnitInfo currentUnitInfo, int slotId) { if (clientRun == null) { throw new ArgumentNullException("clientRun"); } if (unitCollection == null) { throw new ArgumentNullException("unitCollection"); } if (options == null) { throw new ArgumentNullException("options"); } if (slotOptions == null) { throw new ArgumentNullException("slotOptions"); } if (currentUnitInfo == null) { throw new ArgumentNullException("currentUnitInfo"); } var result = new DataAggregatorResult(); result.CurrentUnitIndex = -1; SlotRun slotRun = null; if (clientRun.SlotRuns.ContainsKey(slotId)) { slotRun = clientRun.SlotRuns[slotId]; } result.StartTime = clientRun.Data.StartTime; result.Arguments = clientRun.Data.Arguments; result.ClientVersion = clientRun.Data.ClientVersion; result.UserID = clientRun.Data.UserID; result.MachineID = clientRun.Data.MachineID; result.Status = slotRun != null ? slotRun.Data.Status : SlotStatus.Unknown; if (Logger.IsDebugEnabled) { foreach (var s in clientRun.Where(x => x.LineType == LogLineType.Error)) { Logger.DebugFormat(Constants.ClientNameFormat, ClientName, String.Format("Failed to parse log line: {0}", s)); } } GenerateUnitInfoDataFromQueue(result, slotRun, unitCollection, options, slotOptions, currentUnitInfo, slotId); result.Queue = BuildQueueDictionary(unitCollection, info, slotOptions, slotId); if (result.UnitInfos.ContainsKey(result.CurrentUnitIndex) && result.UnitInfos[result.CurrentUnitIndex].LogLines != null) { result.CurrentLogLines = result.UnitInfos[result.CurrentUnitIndex].LogLines; } else if (slotRun != null) { result.CurrentLogLines = slotRun.ToList(); } else { result.CurrentLogLines = clientRun.ToList(); } return(result); }
public void Client_v7_8() { // Scan IList<LogLine> logLines = LogReader.GetLogLines(File.ReadAllLines("..\\..\\..\\TestFiles\\Client_v7_8\\log.txt"), LogFileType.FahClient).ToList(); IList<ClientRun> clientRuns = LogReader.GetClientRuns(logLines, LogFileType.FahClient); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(1, 114, -1)); expectedRun.StartTime = new DateTime(2011, 9, 6, 19, 55, 42, DateTimeKind.Utc); expectedRun.Arguments = ""; expectedRun.FoldingID = String.Empty; expectedRun.Team = 0; expectedRun.UserID = ""; expectedRun.MachineID = 0; expectedRun.CompletedUnits = 0; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.Unknown; DoClientRunCheck(expectedRun, clientRuns[0]); var logInterpreter = new LogInterpreter(logLines, clientRuns); Assert.AreEqual(2, logInterpreter.LogLineParsingErrors.Count()); logLines = logInterpreter.GetLogLinesForQueueIndex(1, new ProjectInfo { ProjectID = 7704, ProjectRun = 4, ProjectClone = 7, ProjectGen = 1 }); Assert.AreEqual(27, logLines.Count); FahLogUnitData fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(22, 1, 5), fahLogData.UnitStartTimeStamp); Assert.AreEqual(2.27f, fahLogData.CoreVersion); Assert.AreEqual(0, fahLogData.FrameDataList.Count); Assert.AreEqual(0, fahLogData.FramesObserved); Assert.AreEqual(7704, fahLogData.ProjectID); Assert.AreEqual(4, fahLogData.ProjectRun); Assert.AreEqual(7, fahLogData.ProjectClone); Assert.AreEqual(1, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, fahLogData.UnitResult); }
public void Client_v7_13() { // Scan IList<LogLine> logLines = LogReader.GetLogLines(File.ReadAllLines("..\\..\\..\\TestFiles\\Client_v7_13\\log.txt"), LogFileType.FahClient).ToList(); IList<ClientRun> clientRuns = LogReader.GetClientRuns(logLines, LogFileType.FahClient); // Check Run 0 Positions var expectedRun = new ClientRun(0); expectedRun.UnitIndexes.Add(new UnitIndex(2, 74, 212)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 79, 271)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 178, 522)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 236, 581)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 488, 831)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 546, 890)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 797, 1141)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 855, 1200)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 1107, 1451)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 1165, 1510)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 1417, 1760)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 1475, 1819)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 1726, 2070)); expectedRun.UnitIndexes.Add(new UnitIndex(0, 1784, 2129)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 2095, -1)); expectedRun.UnitIndexes.Add(new UnitIndex(1, 2036, -1)); expectedRun.StartTime = new DateTime(2014, 7, 25, 13, 57, 36, DateTimeKind.Utc); expectedRun.Arguments = ""; expectedRun.ClientVersion = ""; expectedRun.FoldingID = String.Empty; expectedRun.Team = 0; expectedRun.UserID = ""; expectedRun.MachineID = 0; expectedRun.CompletedUnits = 14; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.Unknown; DoClientRunCheck(expectedRun, clientRuns[0]); var logInterpreter = new LogInterpreter(logLines, clientRuns); Assert.AreEqual(1, logInterpreter.LogLineParsingErrors.Count()); logLines = logInterpreter.GetLogLinesForQueueIndex(2, new ProjectInfo { ProjectID = 13001, ProjectRun = 430, ProjectClone = 2, ProjectGen = 48 }); Assert.AreEqual(147, logLines.Count); FahLogUnitData fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(16, 59, 51), fahLogData.UnitStartTimeStamp); Assert.AreEqual(0.0f, fahLogData.CoreVersion); Assert.AreEqual(101, fahLogData.FrameDataList.Count); Assert.AreEqual(101, fahLogData.FramesObserved); Assert.AreEqual(13001, fahLogData.ProjectID); Assert.AreEqual(430, fahLogData.ProjectRun); Assert.AreEqual(2, fahLogData.ProjectClone); Assert.AreEqual(48, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.FinishedUnit, fahLogData.UnitResult); logLines = logInterpreter.GetLogLinesForQueueIndex(2, new ProjectInfo { ProjectID = 13000, ProjectRun = 671, ProjectClone = 1, ProjectGen = 50 }); Assert.AreEqual(104, logLines.Count); fahLogData = LogReader.GetFahLogDataFromLogLines(logLines); Assert.AreEqual(new TimeSpan(4, 41, 56), fahLogData.UnitStartTimeStamp); Assert.AreEqual(0.0f, fahLogData.CoreVersion); Assert.AreEqual(86, fahLogData.FrameDataList.Count); Assert.AreEqual(86, fahLogData.FramesObserved); Assert.AreEqual(13000, fahLogData.ProjectID); Assert.AreEqual(671, fahLogData.ProjectRun); Assert.AreEqual(1, fahLogData.ProjectClone); Assert.AreEqual(50, fahLogData.ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, fahLogData.UnitResult); }
private static void DoClientRunCheck(ClientRun expectedRun, ClientRun run) { Assert.AreEqual(expectedRun.ClientStartIndex, run.ClientStartIndex); Assert.AreEqual(expectedRun.ClientVersion, run.ClientVersion); Assert.AreEqual(expectedRun.UnitIndexes.Count, run.UnitIndexes.Count); for (int i = 0; i < expectedRun.UnitIndexes.Count; i++) { Assert.AreEqual(expectedRun.UnitIndexes[i].QueueIndex, run.UnitIndexes[i].QueueIndex); Assert.AreEqual(expectedRun.UnitIndexes[i].StartIndex, run.UnitIndexes[i].StartIndex); Assert.AreEqual(expectedRun.UnitIndexes[i].EndIndex, run.UnitIndexes[i].EndIndex); } Assert.AreEqual(expectedRun.StartTime, run.StartTime); Assert.AreEqual(expectedRun.Arguments, run.Arguments); Assert.AreEqual(expectedRun.FoldingID, run.FoldingID); Assert.AreEqual(expectedRun.Team, run.Team); Assert.AreEqual(expectedRun.UserID, run.UserID); Assert.AreEqual(expectedRun.MachineID, run.MachineID); Assert.AreEqual(expectedRun.CompletedUnits, run.CompletedUnits); Assert.AreEqual(expectedRun.FailedUnits, run.FailedUnits); Assert.AreEqual(expectedRun.TotalCompletedUnits, run.TotalCompletedUnits); Assert.AreEqual(expectedRun.Status, run.Status); }
public void Standard_5_FAHlog() // verbosity 9 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\Standard_5\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 3 Positions var expectedRun = new ClientRun(788); expectedRun.UnitIndexes.Add(new UnitIndex(4, 820)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 3, 24, 0, 28, 52, DateTimeKind.Utc); expectedRun.Arguments = "-oneunit -forceasm -verbosity 9"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "borden.b"; expectedRun.Team = 131; expectedRun.UserID = "722723950C6887C2"; expectedRun.MachineID = 3; expectedRun.CompletedUnits = 0; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[3]); // Check Run 4 Positions expectedRun = new ClientRun(927); expectedRun.UnitIndexes.Add(new UnitIndex(4, 961)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 3, 24, 0, 41, 07, DateTimeKind.Utc); expectedRun.Arguments = "-forceasm -verbosity 9 -oneunit"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "borden.b"; expectedRun.Team = 131; expectedRun.UserID = "722723950C6887C2"; expectedRun.MachineID = 3; expectedRun.CompletedUnits = 0; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[4]); // Verify LogLine Properties Assert.IsNull(logInterpreter.PreviousWorkUnitLogLines); // No Previous Log Lines for this Run Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 4 - Unit Index 0) Assert.AreEqual(4, logLines[967].LineData); Assert.AreEqual(23f, logLines[978].LineData); Assert.That(logLines[963].ToString().Contains("Project: 6501 (Run 13, Clone 0, Gen 0)")); Assert.That(logLines[971].ToString().Contains("Project: 6501 (Run 15, Clone 0, Gen 0)")); Assert.That(logLines[1006].ToString().Contains("Project: 10002 (Run 19, Clone 0, Gen 51)")); var unitData = LogReader.GetFahLogDataFromLogLines(logInterpreter.CurrentWorkUnitLogLines); Assert.AreEqual(new TimeSpan(0, 41, 7), unitData.UnitStartTimeStamp); Assert.AreEqual(5, unitData.FrameDataList.Count); Assert.AreEqual(5, unitData.FramesObserved); Assert.AreEqual(23f, unitData.CoreVersion); Assert.AreEqual(-1, unitData.ProjectInfoIndex); Assert.AreEqual(3, unitData.ProjectInfoList.Count); Assert.AreEqual(10002, unitData.ProjectID); Assert.AreEqual(19, unitData.ProjectRun); Assert.AreEqual(0, unitData.ProjectClone); Assert.AreEqual(51, unitData.ProjectGen); Assert.AreEqual(unitData.ProjectID, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectID); Assert.AreEqual(unitData.ProjectRun, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectRun); Assert.AreEqual(unitData.ProjectClone, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectClone); Assert.AreEqual(unitData.ProjectGen, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, unitData.UnitResult); }
public void GPU3_2_FAHlog() // verbosity 9 / OPENMMGPU v2.19 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\GPU3_2\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.UnitIndexes.Add(new UnitIndex(3, 27)); expectedRun.UnitIndexes.Add(new UnitIndex(4, 170)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 2, 17, 17, 19, 31, DateTimeKind.Utc); expectedRun.Arguments = "-gpu 0 -verbosity 9 -local -verbosity 9"; expectedRun.ClientVersion = "6.41r2"; expectedRun.FoldingID = "HayesK"; expectedRun.Team = 32; expectedRun.UserID = "37114EB5198643C1"; expectedRun.MachineID = 2; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 847; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[0]); // Verify LogLine Properties Assert.IsNotNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 0 - Unit Index 0) Assert.AreEqual(3, logLines[34].LineData); Assert.AreEqual(2.19f, logLines[41].LineData); Assert.That(logLines[56].ToString().Contains("Project: 10634 (Run 11, Clone 24, Gen 14)")); var unitData = LogReader.GetFahLogDataFromLogLines(logInterpreter.CurrentWorkUnitLogLines); Assert.AreEqual(new TimeSpan(17, 31, 22), unitData.UnitStartTimeStamp); Assert.AreEqual(12, unitData.FrameDataList.Count); Assert.AreEqual(12, unitData.FramesObserved); Assert.AreEqual(2.19f, unitData.CoreVersion); Assert.AreEqual(-1, unitData.ProjectInfoIndex); Assert.AreEqual(1, unitData.ProjectInfoList.Count); Assert.AreEqual(10634, unitData.ProjectID); Assert.AreEqual(8, unitData.ProjectRun); Assert.AreEqual(24, unitData.ProjectClone); Assert.AreEqual(24, unitData.ProjectGen); Assert.AreEqual(unitData.ProjectID, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectID); Assert.AreEqual(unitData.ProjectRun, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectRun); Assert.AreEqual(unitData.ProjectClone, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectClone); Assert.AreEqual(unitData.ProjectGen, unitData.ProjectInfoList[unitData.ProjectInfoList.Count - 1].ProjectGen); Assert.AreEqual(WorkUnitResult.Unknown, unitData.UnitResult); }
public void SMP_10_FAHlog() // -smp 8 -bigadv verbosity 9 / Corrupted Log Section in Client Run Index 5 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\SMP_10\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 5 Positions var expectedRun = new ClientRun(401); expectedRun.UnitIndexes.Add(new UnitIndex(-1, 426)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 12, 11, 13, 20, 57, DateTimeKind.Utc); expectedRun.Arguments = "-configonly"; expectedRun.ClientVersion = "6.24R3"; expectedRun.FoldingID = "sneakysnowman"; expectedRun.Team = 32; expectedRun.UserID = "5D2DCEF06CE524B3"; expectedRun.MachineID = 1; expectedRun.CompletedUnits = 0; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; expectedRun.Status = SlotStatus.RunningNoFrameTimes; DoClientRunCheck(expectedRun, clientRuns[5]); // Verify LogLine Properties Assert.IsNull(logInterpreter.PreviousWorkUnitLogLines); Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 8 - Unit Index 0) Assert.AreEqual(6, logLines[610].LineData); Assert.AreEqual(2.10f, logLines[617].LineData); Assert.That(logLines[628].ToString().Contains("Project: 2683 (Run 4, Clone 11, Gen 18)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[660].LineData); }
/// <summary> /// Aggregate Data and return UnitInfo Dictionary. /// </summary> public DataAggregatorResult AggregateData(ClientRun clientRun, UnitCollection unitCollection, Info info, Options options, SlotOptions slotOptions, UnitInfo currentUnitInfo, int slotId) { if (clientRun == null) { throw new ArgumentNullException(nameof(clientRun)); } if (unitCollection == null) { throw new ArgumentNullException(nameof(unitCollection)); } if (options == null) { throw new ArgumentNullException(nameof(options)); } if (slotOptions == null) { throw new ArgumentNullException(nameof(slotOptions)); } if (currentUnitInfo == null) { throw new ArgumentNullException(nameof(currentUnitInfo)); } var result = new DataAggregatorResult(); result.CurrentUnitIndex = -1; SlotRun slotRun = null; if (clientRun.SlotRuns.ContainsKey(slotId)) { slotRun = clientRun.SlotRuns[slotId]; } result.StartTime = clientRun.Data.StartTime; if (Logger.IsDebugEnabled) { foreach (var s in LogLineEnumerable.Create(clientRun).Where(x => x.Data is LogLineDataParserError)) { Logger.DebugFormat(Constants.ClientNameFormat, ClientName, String.Format("Failed to parse log line: {0}", s)); } } GenerateUnitInfoDataFromQueue(result, slotRun, unitCollection, options, slotOptions, currentUnitInfo, slotId); result.Queue = BuildQueueDictionary(unitCollection, info, slotOptions, slotId); if (result.UnitInfos.ContainsKey(result.CurrentUnitIndex) && result.UnitInfos[result.CurrentUnitIndex].LogLines != null) { result.CurrentLogLines = result.UnitInfos[result.CurrentUnitIndex].LogLines; } else if (slotRun != null) { result.CurrentLogLines = LogLineEnumerable.Create(slotRun).ToList(); } else { result.CurrentLogLines = LogLineEnumerable.Create(clientRun).ToList(); } return(result); }
public void Standard_1_FAHlog() // verbosity 9 { // Scan var logLines = LogReader.GetLogLines("..\\..\\..\\TestFiles\\Standard_1\\FAHlog.txt").ToList(); var clientRuns = LogReader.GetClientRuns(logLines); var logInterpreter = new LogInterpreterLegacy(logLines, clientRuns); // Check Run 0 Positions var expectedRun = new ClientRun(2); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 18, 2, 15, 30, DateTimeKind.Utc); expectedRun.Arguments = "-configonly"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "4E34332601E26450"; expectedRun.MachineID = 5; expectedRun.CompletedUnits = 0; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; DoClientRunCheck(expectedRun, clientRuns[0]); // Check Run 1 Positions expectedRun = new ClientRun(30); expectedRun.UnitIndexes.Add(new UnitIndex(1, 179)); expectedRun.UnitIndexes.Add(new UnitIndex(2, 593)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 18, 2, 17, 46, DateTimeKind.Utc); expectedRun.Arguments = "-verbosity 9 -forceasm"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "4E34332601E26450"; expectedRun.MachineID = 5; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 0; //TODO: not capturing line "+ Starting local stats count at 1" expectedRun.Status = SlotStatus.Stopped; DoClientRunCheck(expectedRun, clientRuns[1]); // Check Run 2 Positions expectedRun = new ClientRun(839); expectedRun.UnitIndexes.Add(new UnitIndex(2, 874)); expectedRun.StartTime = new DateTime(DateTime.UtcNow.Year, 8, 20, 4, 17, 29, DateTimeKind.Utc); expectedRun.Arguments = "-verbosity 9 -forceasm -oneunit"; expectedRun.ClientVersion = "6.23"; expectedRun.FoldingID = "harlam357"; expectedRun.Team = 32; expectedRun.UserID = "4E34332601E26450"; expectedRun.MachineID = 5; expectedRun.CompletedUnits = 1; expectedRun.FailedUnits = 0; expectedRun.TotalCompletedUnits = 2; expectedRun.Status = SlotStatus.Stopped; DoClientRunCheck(expectedRun, clientRuns[2]); // Verify LogLine Properties Assert.IsNull(logInterpreter.PreviousWorkUnitLogLines); // No Previous Log Lines for this Run Assert.IsNotNull(logInterpreter.CurrentWorkUnitLogLines); // Spot Check Work Unit Data (Run Index 1 - Unit Index 0) Assert.AreEqual(1, logLines[182].LineData); Assert.AreEqual(1.90f, logLines[189].LineData); Assert.That(logLines[197].ToString().Contains("Project: 4456 (Run 173, Clone 0, Gen 31)")); Assert.AreEqual(WorkUnitResult.FinishedUnit, logLines[433].LineData); }