public TRecord RoundTripRecord <TRecord>(TRecord record, Endian endian, bool debug) where TRecord : StdfRecord { using (var testStream = new MemoryStream()) { using (var writer = new StdfFileWriter(testStream, endian, debug: true)) { if (typeof(TRecord) != typeof(Far)) { writer.WriteRecord(new Far { CpuType = endian == Endian.Big ? (byte)1 : (byte)2, StdfVersion = 4, }); } writer.WriteRecord(record); } testStream.Seek(0, SeekOrigin.Begin); using (var streamManager = new TestStreamManager(testStream)) { var file = new StdfFile(streamManager, debug) { ThrowOnFormatError = true }; return(file.GetSingleRecord <TRecord>()); } } }
static void Main(string[] args) { var file = new StdfFile(args[0]); StdfFileWriter outFile = null; if (args.Length > 1) { outFile = new StdfFileWriter(args[1]); } try { int bytesWritten = 0; long bytesRead = 0; foreach (var r in file.GetRecords()) { Console.WriteLine("Read Length: {0}", r.Offset - bytesRead); bytesRead = r.Offset; Console.WriteLine("{0}", r.GetType()); DumpRecord(r); if (outFile != null) { bytesWritten = outFile.WriteRecord(r); Console.WriteLine("Written Length: {0}", bytesWritten); } } } finally { if (outFile != null) { outFile.Dispose(); } } }
public void WriteFarRecord() { FarRecord far = CreateTestFarRecord(); MemoryStream stream = new MemoryStream(4); StdfFileWriter writer = new StdfFileWriter(stream); writer.WriteRecord(far); stream.Position = 0; ReadRecord(typeof(FarRecord), stream); writer.Dispose(); }
static void Main(string[] args) { if ((args.Length < 1) || (args.Length > 2)) { Usage(); return; } var stdf = new StdfFile(args[0]); //silly query var query = from r in stdf.GetRecords() select r; Console.WriteLine("There were {0} records!", query.Count()); var testTimes = from prr in stdf.GetRecords().OfExactType <Prr>() let testTime = prr.TestTime where testTime != null select testTime.Value / 1000.0; Console.WriteLine("Average Test Time: {0}", testTimes.Average()); //Get PTR results from failing parts grouped by test number var results = from prr in stdf.GetRecords().OfExactType <Prr>() where prr.Failed ?? false from ptr in prr.GetChildRecords().OfExactType <Ptr>() let result = ptr.Result where result != null group result.Value by ptr.TestNumber into g select new { TestNumber = g.Key, Results = g }; foreach (var test in results) { Console.WriteLine("Test {0}:", test.TestNumber); foreach (var result in test.Results) { Console.WriteLine("\t{0}", result); } } // Output STDF to a new file if (args.Length == 2) { Console.WriteLine("Writing to {0}...", args[1]); using (StdfFileWriter writer = new StdfFileWriter(args[1])) { writer.WriteRecords(stdf.GetRecords()); } } }
public void WriteMoreRecords() { MemoryStream stream = new MemoryStream(4); StdfFileWriter writer = new StdfFileWriter(stream); writer.WriteRecord(CreateTestFarRecord()); writer.WriteRecord(CreateTestAtrRecord()); writer.WriteRecord(CreateTestMrrRecord()); stream.Position = 0; List <Type> recordTypeList = new List <Type>(3); recordTypeList.Add(typeof(FarRecord)); recordTypeList.Add(typeof(AtrRecord)); recordTypeList.Add(typeof(MrrRecord)); ReadRecords(recordTypeList, stream); writer.Dispose(); }
public override void OnTestPlanRunCompleted(TestPlanRun planRun, Stream logStream) { base.OnTestPlanRunCompleted(planRun, logStream); try { using (StdfFileWriter fw = new StdfFileWriter(MacroPathAttribute.Expand(FilePath, planRun))) { fw.WriteRecords(Records); } } catch (Exception ex) { Log.Error(ex); throw ex; } }
public void TestConstructor() { Stream recordStream = new MemoryStream(); prr.ElapsedTestTime.Value = DateTime.Now; prr.HardwareBin.Value = 0; prr.HeadNumber.Value = 1; prr.SiteNumber.Value = 1; prr.PartDescription.Value = "description"; prr.PartFlag.Value = Convert.ToByte("00000000", 2); prr.PartIdentification.Value = "identification"; prr.PartRepairInformation.Value = new byte[0]; prr.SoftwareBin.Value = 10; prr.TestExecutedCount.Value = 100; prr.XCoordinate.Value = 10; prr.YCoordinate.Value = 10; StdfFileWriter writer = new StdfFileWriter(recordStream); writer.WriteRecord(prr); // TODO To complete. }
public void OpenFileForReadingAfterOpenedForWriting() { writer = file.OpenForWrite(); Assert.Throws <IOException>(() => file.OpenForRead()); }
public STDFService(string STDFFilePath) { sfw = new StdfFileWriter(STDFFilePath); }
public MockStdfFileWriter(CpuType cpu) { writer = new StdfFileWriter(stream); InitializeStream(cpu); }