Пример #1
0
        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>());
                }
            }
        }
Пример #2
0
        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();
                }
            }
        }
Пример #3
0
        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();
        }
Пример #4
0
        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());
                }
            }
        }
Пример #5
0
        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();
        }
Пример #6
0
        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;
            }
        }
Пример #7
0
        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.
        }
Пример #8
0
 public void OpenFileForReadingAfterOpenedForWriting()
 {
     writer = file.OpenForWrite();
     Assert.Throws <IOException>(() => file.OpenForRead());
 }
Пример #9
0
 public STDFService(string STDFFilePath)
 {
     sfw = new StdfFileWriter(STDFFilePath);
 }
Пример #10
0
 public MockStdfFileWriter(CpuType cpu)
 {
     writer = new StdfFileWriter(stream);
     InitializeStream(cpu);
 }