diff --git a/skyscraper8.Tests/GsType1SanityTest.cs b/skyscraper8.Tests/GsType1SanityTest.cs new file mode 100644 index 0000000..77086ab --- /dev/null +++ b/skyscraper8.Tests/GsType1SanityTest.cs @@ -0,0 +1,21 @@ +using skyscraper5.Mpeg2; +using skyscraper8.Tests.Properties; + +namespace skyscraper8.Tests; + +public class GsType1SanityTest +{ + [Fact] + public void CheckBfbsCrc() + { + byte[] blob = Resources.Frame00001343_TSGS1_MIS000_SYNC001; + MemoryStream ms = new MemoryStream(blob, false); + bool result = DvbCrc32.ValidateCrc(ms, 0, (int)ms.Length); + Assert.True(result); + + blob = Resources.Frame00000008_TSGS1_MIS000_SYNC001; + ms = new MemoryStream(blob, false); + result = DvbCrc32.ValidateCrc(ms, 0, (int)ms.Length); + Assert.True(result); + } +} \ No newline at end of file diff --git a/skyscraper8.Tests/Properties/Resources.Designer.cs b/skyscraper8.Tests/Properties/Resources.Designer.cs index e70c8f6..72d011c 100644 --- a/skyscraper8.Tests/Properties/Resources.Designer.cs +++ b/skyscraper8.Tests/Properties/Resources.Designer.cs @@ -1,10 +1,9 @@ //------------------------------------------------------------------------------ // -// Dieser Code wurde von einem Tool generiert. -// Laufzeitversion:4.0.30319.42000 +// This code was generated by a tool. // -// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn -// der Code erneut generiert wird. +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. // //------------------------------------------------------------------------------ @@ -12,46 +11,32 @@ namespace skyscraper8.Tests.Properties { using System; - /// - /// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. - /// - // Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert - // -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert. - // Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen - // mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [System.Diagnostics.DebuggerNonUserCodeAttribute()] + [System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { - private static global::System.Resources.ResourceManager resourceMan; + private static System.Resources.ResourceManager resourceMan; - private static global::System.Globalization.CultureInfo resourceCulture; + private static System.Globalization.CultureInfo resourceCulture; - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + [System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] internal Resources() { } - /// - /// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Resources.ResourceManager ResourceManager { get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("skyscraper8.Tests.Properties.Resources", typeof(Resources).Assembly); + if (object.Equals(null, resourceMan)) { + System.Resources.ResourceManager temp = new System.Resources.ResourceManager("skyscraper8.Tests.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; } } - /// - /// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle - /// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)] + internal static System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -60,9 +45,6 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] ModemCapabilitiesEncodingTest { get { object obj = ResourceManager.GetObject("ModemCapabilitiesEncodingTest", resourceCulture); @@ -70,9 +52,6 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] MultipartRegistrationResponseTest { get { object obj = ResourceManager.GetObject("MultipartRegistrationResponseTest", resourceCulture); @@ -80,19 +59,6 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// - internal static byte[] MultipartRegistrationResponseTest2 { - get { - object obj = ResourceManager.GetObject("MultipartRegistrationResponseTest2", resourceCulture); - return ((byte[])(obj)); - } - } - - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] PushMacManagementMessage_Version4_Type45 { get { object obj = ResourceManager.GetObject("PushMacManagementMessage_Version4_Type45", resourceCulture); @@ -100,9 +66,6 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] ranging_response_test { get { object obj = ResourceManager.GetObject("ranging_response_test", resourceCulture); @@ -110,9 +73,13 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// + internal static byte[] MultipartRegistrationResponseTest2 { + get { + object obj = ResourceManager.GetObject("MultipartRegistrationResponseTest2", resourceCulture); + return ((byte[])(obj)); + } + } + internal static byte[] test_1packet_01 { get { object obj = ResourceManager.GetObject("test-1packet-01", resourceCulture); @@ -120,9 +87,6 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] test_2packets_02_03 { get { object obj = ResourceManager.GetObject("test-2packets-02-03", resourceCulture); @@ -130,9 +94,6 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] test_3packets_04_05_06 { get { object obj = ResourceManager.GetObject("test-3packets-04-05-06", resourceCulture); @@ -140,9 +101,6 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] TransmitChannelConfigurationObject { get { object obj = ResourceManager.GetObject("TransmitChannelConfigurationObject", resourceCulture); @@ -150,14 +108,25 @@ namespace skyscraper8.Tests.Properties { } } - /// - /// Sucht eine lokalisierte Ressource vom Typ System.Byte[]. - /// internal static byte[] UpstreamChannelDescriptorTest { get { object obj = ResourceManager.GetObject("UpstreamChannelDescriptorTest", resourceCulture); return ((byte[])(obj)); } } + + internal static byte[] Frame00001343_TSGS1_MIS000_SYNC001 { + get { + object obj = ResourceManager.GetObject("Frame00001343_TSGS1_MIS000_SYNC001", resourceCulture); + return ((byte[])(obj)); + } + } + + internal static byte[] Frame00000008_TSGS1_MIS000_SYNC001 { + get { + object obj = ResourceManager.GetObject("Frame00000008_TSGS1_MIS000_SYNC001", resourceCulture); + return ((byte[])(obj)); + } + } } } diff --git a/skyscraper8.Tests/Properties/Resources.resx b/skyscraper8.Tests/Properties/Resources.resx index 927ac85..8bdd6b7 100644 --- a/skyscraper8.Tests/Properties/Resources.resx +++ b/skyscraper8.Tests/Properties/Resources.resx @@ -148,4 +148,10 @@ ..\Resources\UpstreamChannelDescriptorTest.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\Frame00001343_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\Frame00000008_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/skyscraper8.Tests/Resources/Frame00000008_TSGS1_MIS000_SYNC001.bbf b/skyscraper8.Tests/Resources/Frame00000008_TSGS1_MIS000_SYNC001.bbf new file mode 100644 index 0000000..9e6a78c Binary files /dev/null and b/skyscraper8.Tests/Resources/Frame00000008_TSGS1_MIS000_SYNC001.bbf differ diff --git a/skyscraper8.Tests/Resources/Frame00001343_TSGS1_MIS000_SYNC001.bbf b/skyscraper8.Tests/Resources/Frame00001343_TSGS1_MIS000_SYNC001.bbf new file mode 100644 index 0000000..d9c2a13 Binary files /dev/null and b/skyscraper8.Tests/Resources/Frame00001343_TSGS1_MIS000_SYNC001.bbf differ diff --git a/skyscraper8.sln.DotSettings.user b/skyscraper8.sln.DotSettings.user index 3f27e6a..ebe4749 100644 --- a/skyscraper8.sln.DotSettings.user +++ b/skyscraper8.sln.DotSettings.user @@ -10,4 +10,14 @@ ForceIncluded ForceIncluded ForceIncluded + <SessionState ContinuousTestingMode="0" IsActive="True" Name="CheckBfbsCrc #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <TestAncestor> + <TestId>xUnit::84EE9FCD-2C7F-DF84-C1BA-99D018CE9412::net8.0::skyscraper8.Tests.GsType1SanityTest.CheckBfbsCrc</TestId> + </TestAncestor> +</SessionState> + <SessionState ContinuousTestingMode="0" Name="CheckBfbsCrc" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"> + <TestAncestor> + <TestId>xUnit::84EE9FCD-2C7F-DF84-C1BA-99D018CE9412::net8.0::skyscraper8.Tests.GsType1SanityTest.CheckBfbsCrc</TestId> + </TestAncestor> +</SessionState> <data><HostParameters type="LocalHostParameters" /><Argument type="StandaloneArgument"><Arguments IsNull="False"></Arguments><FileName IsNull="False"></FileName><WorkingDirectory IsNull="False"></WorkingDirectory><Scope><ProcessFilters /></Scope></Argument><Info type="TimelineInfo" /><CoreOptions type="CoreOptions"><CoreTempPath IsNull="False"></CoreTempPath><RemoteEndPoint IsNull="False"></RemoteEndPoint><AdditionalEnvironmentVariables /></CoreOptions><HostOptions type="HostOptions"><HostTempPath IsNull="False"></HostTempPath></HostOptions></data> \ No newline at end of file diff --git a/skyscraper8/Mpeg2/Crc32.cs b/skyscraper8/Mpeg2/Crc32.cs index 3c896f9..4e8bd75 100644 --- a/skyscraper8/Mpeg2/Crc32.cs +++ b/skyscraper8/Mpeg2/Crc32.cs @@ -4,7 +4,7 @@ using static System.Collections.Specialized.BitVector32; namespace skyscraper5.Mpeg2 { - internal class DvbCrc32 + public class DvbCrc32 { private DvbCrc32() {