📄
lib/tests/DltFileTests.cs
using Shouldly; namespace SharpDlt.Tests; /// <summary>Parses a real world DLT file recorded by a target.</summary> public class DltFileTests { private static string DataPath(string fileName) => Path.Combine(AppContext.BaseDirectory, "Data", fileName); [Fact] public void ReadMessages_Issue24File_ReducesTruncatedNumericArgument() { // The last numeric argument of the payload does not have enough bytes for its // declared type, so it is reduced to the next smaller type, like DLT Viewer does. var messages = DltReader.ReadMessages(DataPath("issue24.dlt")).ToList(); var message = messages.ShouldHaveSingleItem(); message.IsVerbose.ShouldBeTrue(); var arguments = message.VerbosePayload.ShouldNotBeNull().Arguments; arguments.Count.ShouldBe(2); arguments[0].ShouldBe(new DltStringArgument("HIST: SCU_RSTSTAT:", DltStringCoding.Ascii)); arguments[1].ShouldBe(new DltUnsignedArgument(65536, DltIntegerWidth.Bits32)); } [Fact] public async Task ReadMessagesAsync_Issue24File_YieldsTheSameMessages() { var sync = DltReader.ReadMessages(DataPath("issue24.dlt")).ToList(); var async = await DltReader.ReadMessagesAsync(DataPath("issue24.dlt")).ToListAsync(); async.ShouldBe(sync); } }