protected VendorSampleParser(string testedBSPDirectory, string sampleCatalogName, string subdir = null) { VendorSampleCatalogName = sampleCatalogName; var baseDirectory = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"..\..")); string problemClassifierFile = Path.Combine(baseDirectory, "KnownProblems.xml"); _KnownProblems = XmlTools.LoadObject <KnownSampleProblemDatabase>(problemClassifierFile); BSPDirectory = Path.GetFullPath(Path.Combine(baseDirectory, testedBSPDirectory)); CacheDirectory = Path.Combine(baseDirectory, "Cache"); RulesDirectory = Path.Combine(baseDirectory, "Rules"); var reportDirectory = Path.Combine(baseDirectory, "Reports"); if (!string.IsNullOrEmpty(subdir)) { CacheDirectory = Path.Combine(CacheDirectory, subdir); RulesDirectory = Path.Combine(RulesDirectory, subdir); reportDirectory = Path.Combine(reportDirectory, subdir); } Directory.CreateDirectory(CacheDirectory); Directory.CreateDirectory(reportDirectory); var toolchainType = XmlTools.LoadObject <BoardSupportPackage>(Path.Combine(BSPDirectory, LoadedBSP.PackageFileName)).GNUTargetID ?? throw new Exception("The BSP does not define GNU target ID."); TestDirectory = _SettingsKey.GetValue("TestDirectory") as string ?? throw new Exception("Registry settings not present. Please apply 'settings.reg'"); ToolchainDirectory = _SettingsKey.CreateSubKey("ToolchainDirectories").GetValue(toolchainType) as string ?? throw new Exception($"Location for {toolchainType} toolchain is not configured. Please apply 'settings.reg'"); var toolchain = LoadedToolchain.Load(new ToolchainSource.Other(Environment.ExpandEnvironmentVariables(ToolchainDirectory))); BSP = LoadedBSP.Load(new BSPEngine.BSPSummary(Environment.ExpandEnvironmentVariables(Path.GetFullPath(BSPDirectory))), toolchain); ReportFile = Path.Combine(reportDirectory, BSP.BSP.PackageVersion.Replace(".", "_") + ".xml"); if (File.Exists(ReportFile)) { _Report = XmlTools.LoadObject <VendorSampleTestReport>(ReportFile); } else { _Report = new VendorSampleTestReport { BSPVersion = BSP.BSP.PackageVersion, BSPID = BSP.BSP.PackageID } }; }
public VendorSampleFilter(VendorSampleTestReport report, IEnumerable <VendorSample> alreadyDiscoveredSamples) { Dictionary <string, string> sampleDirectories = new Dictionary <string, string>(); foreach (var s in alreadyDiscoveredSamples) { sampleDirectories[s.InternalUniqueID] = s.Path; } foreach (var rec in report.Records) { if (rec.BuildFailedExplicitly && sampleDirectories.TryGetValue(rec.UniqueID, out var dir)) { RememberSamplePath(dir.Replace('/', '\\').Split('\\')); } } }
public VendorSampleFilter(VendorSampleTestReport report) { if (report == null) { _ParseAll = true; } else { foreach (var rec in report.Records) { if (rec.BuildFailedExplicitly) { _NamesToParse.Add(rec.ID.SampleName); _IDsToParse.Add(rec.ID); } } } }