From 980cec03323c0405f8e6f5083ff3605da7a00829 Mon Sep 17 00:00:00 2001 From: feyris-tan Date: Thu, 6 Nov 2025 15:34:56 +0100 Subject: [PATCH] Added sanity tests for BFBS BBFrames --- skyscraper8.Tests/GsType1SanityTest.cs | 21 ++++ .../Properties/Resources.Designer.cs | 103 ++++++------------ skyscraper8.Tests/Properties/Resources.resx | 6 + .../Frame00000008_TSGS1_MIS000_SYNC001.bbf | Bin 0 -> 6041 bytes .../Frame00001343_TSGS1_MIS000_SYNC001.bbf | Bin 0 -> 3206 bytes skyscraper8.sln.DotSettings.user | 10 ++ skyscraper8/Mpeg2/Crc32.cs | 2 +- 7 files changed, 74 insertions(+), 68 deletions(-) create mode 100644 skyscraper8.Tests/GsType1SanityTest.cs create mode 100644 skyscraper8.Tests/Resources/Frame00000008_TSGS1_MIS000_SYNC001.bbf create mode 100644 skyscraper8.Tests/Resources/Frame00001343_TSGS1_MIS000_SYNC001.bbf 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 0000000000000000000000000000000000000000..9e6a78c0240b3a9adf29aac812395486f90b5bb2 GIT binary patch literal 6041 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 sTnv>oFigb*1`HT5V8DQZuYsPe0}#;xy#N3J literal 0 HcmV?d00001 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() {