Ditched xUnit and put in MSTest for automated testing instead.
Some checks failed
🚀 Pack skyscraper8 / make-zip (push) Failing after 7s
Some checks failed
🚀 Pack skyscraper8 / make-zip (push) Failing after 7s
This commit is contained in:
parent
36969eede2
commit
c0f644df1a
5
skyscraper8.Tests/AllureConfig.json
Normal file
5
skyscraper8.Tests/AllureConfig.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"allure": {
|
||||||
|
"directory": "allure-results"
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,13 +0,0 @@
|
|||||||
using Allure.Commons;
|
|
||||||
using Allure.Xunit.Attributes.Steps;
|
|
||||||
|
|
||||||
namespace skyscraper8.Tests;
|
|
||||||
|
|
||||||
public class AllureLog
|
|
||||||
{
|
|
||||||
[AllureStep("{0}")]
|
|
||||||
public static void Log(string msg)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
[assembly: CollectionBehavior(DisableTestParallelization = true)]
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
using skyscraper5.Docsis;
|
|
||||||
using skyscraper5.Docsis.MacManagement;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net;
|
|
||||||
using System.Net.NetworkInformation;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
|
|
||||||
namespace skyscraper8.Tests.ClassDependencies.DocsisTests
|
|
||||||
{
|
|
||||||
internal class DocsisEventHandlerImpl : IDocsisEventHandler
|
|
||||||
{
|
|
||||||
public void OnCmtsTimestamp(PhysicalAddress source, uint timing)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnDownstreamChannel(PhysicalAddress physicalAddress, MacDomainDescriptor.DownstreamActiveChannel downstreamActiveChannel)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnLearnedIpFromMac(PhysicalAddress arpHeaderSenderHardwareAddress, IPAddress arpHeaderSenderProtocolAddress)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnParticipantDetected(PhysicalAddress pa)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnUpstreamChannel(UpstreamChannelDescriptor mmm)
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,118 +0,0 @@
|
|||||||
using skyscraper5;
|
|
||||||
using skyscraper5.Docsis;
|
|
||||||
using skyscraper5.Docsis.AnnexC;
|
|
||||||
using skyscraper5.Docsis.MacManagement;
|
|
||||||
using skyscraper5.Mpeg2;
|
|
||||||
using skyscraper5.Skyscraper.Plugins;
|
|
||||||
using skyscraper5.Skyscraper.Scraper;
|
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage;
|
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage.Filesystem;
|
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage.InMemory;
|
|
||||||
using skyscraper8.Skyscraper.IO;
|
|
||||||
using skyscraper8.Tests.ClassDependencies.DocsisTests;
|
|
||||||
using skyscraper8.Tests.Properties;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net.NetworkInformation;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Xunit.Sdk;
|
|
||||||
|
|
||||||
namespace skyscraper8.Tests
|
|
||||||
{
|
|
||||||
public class DocsisTests
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void ModemCapabilitiesEncoding()
|
|
||||||
{
|
|
||||||
byte[] buffer = Resources.ModemCapabilitiesEncodingTest;
|
|
||||||
ModemCapabilitiesEncoding modemCapabilitiesEncoding = new ModemCapabilitiesEncoding(buffer);
|
|
||||||
Assert.True(modemCapabilitiesEncoding.Valid);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void MultipartRegistrationResponse()
|
|
||||||
{
|
|
||||||
Random rng = new Random();
|
|
||||||
|
|
||||||
byte[] sourceBuffer = new byte[6];
|
|
||||||
rng.NextBytes(sourceBuffer);
|
|
||||||
PhysicalAddress source = new PhysicalAddress(sourceBuffer);
|
|
||||||
|
|
||||||
byte[] targetBuffer = new byte[6];
|
|
||||||
rng.NextBytes(targetBuffer);
|
|
||||||
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
|
||||||
|
|
||||||
byte[] buffer = Properties.Resources.MultipartRegistrationResponseTest;
|
|
||||||
T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer);
|
|
||||||
Assert.True(test.Valid);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void MacManagement_4_45()
|
|
||||||
{
|
|
||||||
DocsisEventHandlerImpl docsisEventHandler = new DocsisEventHandlerImpl();
|
|
||||||
DocsisEnvironment environment = new DocsisEnvironment(docsisEventHandler);
|
|
||||||
|
|
||||||
byte[] testPayload = Resources.PushMacManagementMessage_Version4_Type45;
|
|
||||||
|
|
||||||
Random rng = new Random();
|
|
||||||
byte[] sourceBuffer = new byte[6];
|
|
||||||
rng.NextBytes(sourceBuffer);
|
|
||||||
PhysicalAddress source = new PhysicalAddress(sourceBuffer);
|
|
||||||
|
|
||||||
byte[] targetBuffer = new byte[6];
|
|
||||||
rng.NextBytes(targetBuffer);
|
|
||||||
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
|
||||||
|
|
||||||
environment.PushMacManagementMessage(testPayload, 4, 45, source, target, testPayload);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void InvalidUpstreamChannelDescriptorTest()
|
|
||||||
{
|
|
||||||
byte[] testPayload = Resources.UpstreamChannelDescriptorTest;
|
|
||||||
|
|
||||||
Random rng = new Random();
|
|
||||||
byte[] sourceBuffer = new byte[6];
|
|
||||||
rng.NextBytes(sourceBuffer);
|
|
||||||
PhysicalAddress source = new PhysicalAddress(sourceBuffer);
|
|
||||||
|
|
||||||
byte[] targetBuffer = new byte[6];
|
|
||||||
rng.NextBytes(targetBuffer);
|
|
||||||
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
|
||||||
|
|
||||||
UpstreamChannelDescriptor ucd = new UpstreamChannelDescriptor(source, target, testPayload);
|
|
||||||
Assert.False(ucd.Valid);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void TransmitChannelConfigurationObjectTest()
|
|
||||||
{
|
|
||||||
byte[] testPayload = Resources.TransmitChannelConfigurationObject;
|
|
||||||
|
|
||||||
CommonTlvEncodingObject.TransmitChannelConfigurationObject child = new CommonTlvEncodingObject.TransmitChannelConfigurationObject(testPayload);
|
|
||||||
Assert.True(child.Valid);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void MultipartRegistrationResponse2()
|
|
||||||
{
|
|
||||||
Random rng = new Random();
|
|
||||||
|
|
||||||
byte[] sourceBuffer = new byte[6];
|
|
||||||
rng.NextBytes(sourceBuffer);
|
|
||||||
PhysicalAddress source = new PhysicalAddress(sourceBuffer);
|
|
||||||
|
|
||||||
byte[] targetBuffer = new byte[6];
|
|
||||||
rng.NextBytes(targetBuffer);
|
|
||||||
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
|
||||||
|
|
||||||
byte[] buffer = Properties.Resources.MultipartRegistrationResponseTest2;
|
|
||||||
T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer);
|
|
||||||
Assert.True(test.Valid);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
122
skyscraper8.Tests/Feyllure.cs
Normal file
122
skyscraper8.Tests/Feyllure.cs
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Allure.Net.Commons;
|
||||||
|
using TestResult = Allure.Net.Commons.TestResult;
|
||||||
|
|
||||||
|
namespace skyscraper8.Tests;
|
||||||
|
|
||||||
|
[TestClass]
|
||||||
|
public class Feyllure
|
||||||
|
{
|
||||||
|
public TestContext TestContext { get; set; }
|
||||||
|
|
||||||
|
protected static readonly AllureLifecycle Allure = AllureLifecycle.Instance;
|
||||||
|
|
||||||
|
private bool assemblyWasInited;
|
||||||
|
private void AssemblyInit(TestContext context)
|
||||||
|
{
|
||||||
|
// Ensure allure-results exists
|
||||||
|
var resultsDir = Allure.ResultsDirectory;
|
||||||
|
Directory.CreateDirectory(resultsDir);
|
||||||
|
|
||||||
|
var envFile = Path.Combine(resultsDir, "environment.properties");
|
||||||
|
|
||||||
|
using (var writer = new StreamWriter(envFile))
|
||||||
|
{
|
||||||
|
writer.WriteLine($"SkyscraperRelease={VersionInfo.GetPublicReleaseNumber()}");
|
||||||
|
writer.WriteLine($"SkyscraperCodeVersion={VersionInfo.GetCurrentAssemblyDisplayVersion()}");
|
||||||
|
writer.WriteLine($"OS={RuntimeInformation.OSDescription}");
|
||||||
|
writer.WriteLine($".NET={Environment.Version}");
|
||||||
|
writer.WriteLine($"Machine={Environment.MachineName}");
|
||||||
|
writer.WriteLine($"User={Environment.UserName}");
|
||||||
|
writer.WriteLine($"Framework={context.Properties["TargetFramework"] ?? "net8.0"}");
|
||||||
|
writer.WriteLine($"BuildDate={DateTime.UtcNow:yyyy-MM-dd HH:mm:ss}");
|
||||||
|
}
|
||||||
|
|
||||||
|
var executorFile = Path.Combine(resultsDir, "executor.json");
|
||||||
|
var executorInfo = new
|
||||||
|
{
|
||||||
|
name = Environment.MachineName,
|
||||||
|
buildName = "My build name",
|
||||||
|
buildUrl = "http://127.0.0.2",
|
||||||
|
};
|
||||||
|
var executorJson = Newtonsoft.Json.JsonConvert.SerializeObject(executorInfo);
|
||||||
|
File.WriteAllText(executorFile, executorJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestInitialize]
|
||||||
|
public void Setup()
|
||||||
|
{
|
||||||
|
if (!assemblyWasInited){
|
||||||
|
AssemblyInit(TestContext);
|
||||||
|
assemblyWasInited = true;
|
||||||
|
}
|
||||||
|
var testName = TestContext.TestName;
|
||||||
|
var fqClass = TestContext.FullyQualifiedTestClassName;
|
||||||
|
|
||||||
|
// Extract namespace and class name
|
||||||
|
var lastDot = fqClass.LastIndexOf('.');
|
||||||
|
var ns = lastDot > 0 ? fqClass.Substring(0, lastDot) : "";
|
||||||
|
var cls = lastDot > 0 ? fqClass.Substring(lastDot + 1) : fqClass;
|
||||||
|
|
||||||
|
TestResult testResult = new TestResult();
|
||||||
|
testResult.uuid = Guid.NewGuid().ToString();
|
||||||
|
testResult.name = testName;
|
||||||
|
testResult.fullName = String.Format("{0}.{1}", TestContext.FullyQualifiedTestClassName, testName);
|
||||||
|
testResult.labels = new List<Label>()
|
||||||
|
{
|
||||||
|
//Packages Tab
|
||||||
|
new Label { name = "package", value = ns},
|
||||||
|
new Label { name = "testClass", value = cls},
|
||||||
|
new Label { name = "testMethod", value = testName},
|
||||||
|
|
||||||
|
//Suites tab
|
||||||
|
new Label { name = "parentSuite", value = ns},
|
||||||
|
new Label { name = "suite", value = cls},
|
||||||
|
};
|
||||||
|
|
||||||
|
Allure.StartTestCase(testResult);
|
||||||
|
|
||||||
|
descriptionWriter = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestCleanup]
|
||||||
|
public void TearDown()
|
||||||
|
{
|
||||||
|
switch (TestContext.CurrentTestOutcome)
|
||||||
|
{
|
||||||
|
case UnitTestOutcome.Passed:
|
||||||
|
Allure.UpdateTestCase(tc => tc.status = Status.passed);
|
||||||
|
break;
|
||||||
|
case UnitTestOutcome.Failed:
|
||||||
|
Allure.UpdateTestCase(tc => tc.status = Status.failed);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
StepResult stepResult = new StepResult();
|
||||||
|
stepResult.name = String.Format("Current Test Outcome: {0}", TestContext.CurrentTestOutcome);;
|
||||||
|
Allure.UpdateTestCase(tc =>
|
||||||
|
{
|
||||||
|
tc.status = Status.skipped;
|
||||||
|
tc.steps.Add(stepResult);
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (descriptionWriter != null)
|
||||||
|
{
|
||||||
|
Allure.UpdateTestCase(tc => { tc.description = descriptionWriter.ToString(); });
|
||||||
|
}
|
||||||
|
|
||||||
|
Allure.StopTestCase();
|
||||||
|
Allure.WriteTestCase();
|
||||||
|
}
|
||||||
|
|
||||||
|
private StringWriter descriptionWriter;
|
||||||
|
public void Print(string message, params object[] args)
|
||||||
|
{
|
||||||
|
if (descriptionWriter == null)
|
||||||
|
descriptionWriter = new StringWriter();
|
||||||
|
string formattedMessage = String.Format(message, args);
|
||||||
|
Console.WriteLine(formattedMessage);
|
||||||
|
descriptionWriter.WriteLine(formattedMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,31 +0,0 @@
|
|||||||
using System.Reflection;
|
|
||||||
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);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public void CheckBfbsCrcSpan()
|
|
||||||
{
|
|
||||||
byte[] blob = Resources.Frame00000012_TSGS1_MIS000_SYNC001;
|
|
||||||
ReadOnlySpan<byte> span = new ReadOnlySpan<byte>(blob);
|
|
||||||
bool result = DvbCrc32.ValidateCrc(span);
|
|
||||||
Assert.True(result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,160 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<root>
|
|
||||||
<!--
|
|
||||||
Microsoft ResX Schema
|
|
||||||
|
|
||||||
Version 2.0
|
|
||||||
|
|
||||||
The primary goals of this format is to allow a simple XML format
|
|
||||||
that is mostly human readable. The generation and parsing of the
|
|
||||||
various data types are done through the TypeConverter classes
|
|
||||||
associated with the data types.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
... ado.net/XML headers & schema ...
|
|
||||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
|
||||||
<resheader name="version">2.0</resheader>
|
|
||||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
|
||||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
|
||||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
|
||||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
|
||||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
|
||||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
|
||||||
</data>
|
|
||||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
|
||||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
|
||||||
<comment>This is a comment</comment>
|
|
||||||
</data>
|
|
||||||
|
|
||||||
There are any number of "resheader" rows that contain simple
|
|
||||||
name/value pairs.
|
|
||||||
|
|
||||||
Each data row contains a name, and value. The row also contains a
|
|
||||||
type or mimetype. Type corresponds to a .NET class that support
|
|
||||||
text/value conversion through the TypeConverter architecture.
|
|
||||||
Classes that don't support this are serialized and stored with the
|
|
||||||
mimetype set.
|
|
||||||
|
|
||||||
The mimetype is used for serialized objects, and tells the
|
|
||||||
ResXResourceReader how to depersist the object. This is currently not
|
|
||||||
extensible. For a given mimetype the value must be set accordingly:
|
|
||||||
|
|
||||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
|
||||||
that the ResXResourceWriter will generate, however the reader can
|
|
||||||
read any of the formats listed below.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.binary.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.soap.base64
|
|
||||||
value : The object must be serialized with
|
|
||||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
|
|
||||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
|
||||||
value : The object must be serialized into a byte array
|
|
||||||
: using a System.ComponentModel.TypeConverter
|
|
||||||
: and then encoded with base64 encoding.
|
|
||||||
-->
|
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:choice maxOccurs="unbounded">
|
|
||||||
<xsd:element name="metadata">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="assembly">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="data">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
|
||||||
<xsd:attribute ref="xml:space" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
<xsd:element name="resheader">
|
|
||||||
<xsd:complexType>
|
|
||||||
<xsd:sequence>
|
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
|
||||||
</xsd:sequence>
|
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:choice>
|
|
||||||
</xsd:complexType>
|
|
||||||
</xsd:element>
|
|
||||||
</xsd:schema>
|
|
||||||
<resheader name="resmimetype">
|
|
||||||
<value>text/microsoft-resx</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="version">
|
|
||||||
<value>2.0</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="reader">
|
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<resheader name="writer">
|
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</resheader>
|
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
|
||||||
<data name="ModemCapabilitiesEncodingTest" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\ModemCapabilitiesEncodingTest.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="MultipartRegistrationResponseTest" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\T45_V4_MultipartRegistrationResponseTest.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="PushMacManagementMessage_Version4_Type45" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\PushMacManagementMessage_Version4_Type45.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="ranging_response_test" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\ranging_response_test.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="MultipartRegistrationResponseTest2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\T45_V4_MultipartRegistrationResponseTest2.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="test-1packet-01" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\test-1packet-01.ts;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="test-2packets-02-03" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\test-2packets-02-03.ts;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="test-3packets-04-05-06" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\test-3packets-04-05-06.ts;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="TransmitChannelConfigurationObject" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\TransmitChannelConfigurationObject.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="UpstreamChannelDescriptorTest" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\UpstreamChannelDescriptorTest.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="Frame00001343_TSGS1_MIS000_SYNC001" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Frame00001343_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="Frame00000008_TSGS1_MIS000_SYNC001" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Frame00000008_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
<data name="Frame00000012_TSGS1_MIS000_SYNC001" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Frame00000012_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
|
||||||
@ -1,43 +1,22 @@
|
|||||||
using skyscraper5;
|
using skyscraper5.Docsis;
|
||||||
using skyscraper5.Docsis;
|
|
||||||
using skyscraper5.Docsis.AnnexC;
|
using skyscraper5.Docsis.AnnexC;
|
||||||
using skyscraper5.Docsis.MacManagement;
|
using skyscraper5.Docsis.MacManagement;
|
||||||
using skyscraper5.Mpeg2;
|
|
||||||
using skyscraper5.Skyscraper.Plugins;
|
|
||||||
using skyscraper5.Skyscraper.Scraper;
|
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage;
|
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage.Filesystem;
|
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage.InMemory;
|
|
||||||
using skyscraper8.Skyscraper.IO;
|
|
||||||
using skyscraper8.Tests.ClassDependencies.DocsisTests;
|
|
||||||
using skyscraper8.Tests.Properties;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Net.NetworkInformation;
|
using System.Net.NetworkInformation;
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Allure.Xunit.Attributes;
|
|
||||||
using Xunit.Sdk;
|
|
||||||
|
|
||||||
namespace skyscraper8.Tests.ResourceTests
|
namespace skyscraper8.Tests.ResourceTests
|
||||||
{
|
{
|
||||||
public class DocsisTests
|
[TestClass]
|
||||||
|
public class DocsisTests : Feyllure
|
||||||
{
|
{
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void ModemCapabilitiesEncoding()
|
public void ModemCapabilitiesEncoding()
|
||||||
{
|
{
|
||||||
byte[] buffer = Resources.ModemCapabilitiesEncodingTest;
|
byte[] buffer = Resources1.ModemCapabilitiesEncodingTest;
|
||||||
ModemCapabilitiesEncoding modemCapabilitiesEncoding = new ModemCapabilitiesEncoding(buffer);
|
ModemCapabilitiesEncoding modemCapabilitiesEncoding = new ModemCapabilitiesEncoding(buffer);
|
||||||
Assert.True(modemCapabilitiesEncoding.Valid);
|
Assert.IsTrue(modemCapabilitiesEncoding.Valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void MultipartRegistrationResponse()
|
public void MultipartRegistrationResponse()
|
||||||
{
|
{
|
||||||
Random rng = new Random();
|
Random rng = new Random();
|
||||||
@ -50,20 +29,18 @@ namespace skyscraper8.Tests.ResourceTests
|
|||||||
rng.NextBytes(targetBuffer);
|
rng.NextBytes(targetBuffer);
|
||||||
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
||||||
|
|
||||||
byte[] buffer = Properties.Resources.MultipartRegistrationResponseTest;
|
byte[] buffer = Resources1.MultipartRegistrationResponseTest;
|
||||||
T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer);
|
T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer);
|
||||||
Assert.True(test.Valid);
|
Assert.IsTrue(test.Valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void MacManagement_4_45()
|
public void MacManagement_4_45()
|
||||||
{
|
{
|
||||||
DocsisEventHandlerImpl docsisEventHandler = new DocsisEventHandlerImpl();
|
NullDocsisEventHandler docsisEventHandler = new NullDocsisEventHandler();
|
||||||
DocsisEnvironment environment = new DocsisEnvironment(docsisEventHandler);
|
DocsisEnvironment environment = new DocsisEnvironment(docsisEventHandler);
|
||||||
|
|
||||||
byte[] testPayload = Resources.PushMacManagementMessage_Version4_Type45;
|
byte[] testPayload = Resources1.PushMacManagementMessage_Version4_Type45;
|
||||||
|
|
||||||
Random rng = new Random();
|
Random rng = new Random();
|
||||||
byte[] sourceBuffer = new byte[6];
|
byte[] sourceBuffer = new byte[6];
|
||||||
@ -77,12 +54,10 @@ namespace skyscraper8.Tests.ResourceTests
|
|||||||
environment.PushMacManagementMessage(testPayload, 4, 45, source, target, testPayload);
|
environment.PushMacManagementMessage(testPayload, 4, 45, source, target, testPayload);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void InvalidUpstreamChannelDescriptorTest()
|
public void InvalidUpstreamChannelDescriptorTest()
|
||||||
{
|
{
|
||||||
byte[] testPayload = Resources.UpstreamChannelDescriptorTest;
|
byte[] testPayload = Resources1.UpstreamChannelDescriptorTest;
|
||||||
|
|
||||||
Random rng = new Random();
|
Random rng = new Random();
|
||||||
byte[] sourceBuffer = new byte[6];
|
byte[] sourceBuffer = new byte[6];
|
||||||
@ -94,23 +69,19 @@ namespace skyscraper8.Tests.ResourceTests
|
|||||||
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
||||||
|
|
||||||
UpstreamChannelDescriptor ucd = new UpstreamChannelDescriptor(source, target, testPayload);
|
UpstreamChannelDescriptor ucd = new UpstreamChannelDescriptor(source, target, testPayload);
|
||||||
Assert.False(ucd.Valid);
|
Assert.IsFalse(ucd.Valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void TransmitChannelConfigurationObjectTest()
|
public void TransmitChannelConfigurationObjectTest()
|
||||||
{
|
{
|
||||||
byte[] testPayload = Resources.TransmitChannelConfigurationObject;
|
byte[] testPayload = Resources1.TransmitChannelConfigurationObject;
|
||||||
|
|
||||||
CommonTlvEncodingObject.TransmitChannelConfigurationObject child = new CommonTlvEncodingObject.TransmitChannelConfigurationObject(testPayload);
|
CommonTlvEncodingObject.TransmitChannelConfigurationObject child = new CommonTlvEncodingObject.TransmitChannelConfigurationObject(testPayload);
|
||||||
Assert.True(child.Valid);
|
Assert.IsTrue(child.Valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void MultipartRegistrationResponse2()
|
public void MultipartRegistrationResponse2()
|
||||||
{
|
{
|
||||||
Random rng = new Random();
|
Random rng = new Random();
|
||||||
@ -123,18 +94,15 @@ namespace skyscraper8.Tests.ResourceTests
|
|||||||
rng.NextBytes(targetBuffer);
|
rng.NextBytes(targetBuffer);
|
||||||
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
PhysicalAddress target = new PhysicalAddress(targetBuffer);
|
||||||
|
|
||||||
byte[] buffer = Properties.Resources.MultipartRegistrationResponseTest2;
|
byte[] buffer = Resources1.MultipartRegistrationResponseTest2;
|
||||||
T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer);
|
T45_V4_MultipartRegistrationResponse test = new T45_V4_MultipartRegistrationResponse(source, target, buffer);
|
||||||
Assert.True(test.Valid);
|
Assert.IsTrue(test.Valid);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void OffsetBreakerTest()
|
public void OffsetBreakerTest()
|
||||||
{
|
{
|
||||||
|
byte[] blob = Resources1.ranging_response_test;
|
||||||
byte[] blob = Resources.ranging_response_test;
|
|
||||||
Random rng = new Random();
|
Random rng = new Random();
|
||||||
|
|
||||||
byte[] sourceMacBuffer = new byte[6];
|
byte[] sourceMacBuffer = new byte[6];
|
||||||
@ -146,7 +114,7 @@ namespace skyscraper8.Tests.ResourceTests
|
|||||||
PhysicalAddress targetAddress = new PhysicalAddress(targetMacBuffer);
|
PhysicalAddress targetAddress = new PhysicalAddress(targetMacBuffer);
|
||||||
|
|
||||||
RangingResponse rangingResponse = new RangingResponse(sourceAddress, targetAddress, blob);
|
RangingResponse rangingResponse = new RangingResponse(sourceAddress, targetAddress, blob);
|
||||||
Assert.True(rangingResponse.Valid);
|
Assert.IsTrue(rangingResponse.Valid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,36 +1,30 @@
|
|||||||
using System.Reflection;
|
|
||||||
using Allure.Xunit.Attributes;
|
|
||||||
using skyscraper5.Mpeg2;
|
using skyscraper5.Mpeg2;
|
||||||
using skyscraper8.Tests.Properties;
|
|
||||||
|
|
||||||
namespace skyscraper8.Tests.ResourceTests;
|
namespace skyscraper8.Tests.ResourceTests;
|
||||||
|
|
||||||
public class GsType1SanityTest
|
[TestClass]
|
||||||
|
public class GsType1SanityTest : Feyllure
|
||||||
{
|
{
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("MPEG2")]
|
|
||||||
public void CheckBfbsCrc()
|
public void CheckBfbsCrc()
|
||||||
{
|
{
|
||||||
byte[] blob = Resources.Frame00001343_TSGS1_MIS000_SYNC001;
|
byte[] blob = Resources1.Frame00001343_TSGS1_MIS000_SYNC001;
|
||||||
MemoryStream ms = new MemoryStream(blob, false);
|
MemoryStream ms = new MemoryStream(blob, false);
|
||||||
bool result = DvbCrc32.ValidateCrc(ms, 0, (int)ms.Length);
|
bool result = DvbCrc32.ValidateCrc(ms, 0, (int)ms.Length);
|
||||||
Assert.True(result);
|
Assert.IsTrue(result);
|
||||||
|
|
||||||
blob = Resources.Frame00000008_TSGS1_MIS000_SYNC001;
|
blob = Resources1.Frame00000008_TSGS1_MIS000_SYNC001;
|
||||||
ms = new MemoryStream(blob, false);
|
ms = new MemoryStream(blob, false);
|
||||||
result = DvbCrc32.ValidateCrc(ms, 0, (int)ms.Length);
|
result = DvbCrc32.ValidateCrc(ms, 0, (int)ms.Length);
|
||||||
Assert.True(result);
|
Assert.IsTrue(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("MPEG2")]
|
|
||||||
public void CheckBfbsCrcSpan()
|
public void CheckBfbsCrcSpan()
|
||||||
{
|
{
|
||||||
byte[] blob = Resources.Frame00000012_TSGS1_MIS000_SYNC001;
|
byte[] blob = Resources1.Frame00000012_TSGS1_MIS000_SYNC001;
|
||||||
ReadOnlySpan<byte> span = new ReadOnlySpan<byte>(blob);
|
ReadOnlySpan<byte> span = new ReadOnlySpan<byte>(blob);
|
||||||
bool result = DvbCrc32.ValidateCrc(span);
|
bool result = DvbCrc32.ValidateCrc(span);
|
||||||
Assert.True(result);
|
Assert.IsTrue(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1,25 +1,22 @@
|
|||||||
using skyscraper5.Mpeg2;
|
using skyscraper5.Mpeg2;
|
||||||
using skyscraper5.Skyscraper.Scraper;
|
using skyscraper5.Skyscraper.Scraper;
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage.InMemory;
|
using skyscraper5.Skyscraper.Scraper.Storage.InMemory;
|
||||||
using skyscraper8.Tests.Properties;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using Allure.Xunit.Attributes;
|
|
||||||
using skyscraper8.Skyscraper.Scraper.Storage;
|
using skyscraper8.Skyscraper.Scraper.Storage;
|
||||||
|
|
||||||
namespace skyscraper8.Tests.ResourceTests
|
namespace skyscraper8.Tests.ResourceTests
|
||||||
{
|
{
|
||||||
public class SkyscraperTests
|
[TestClass]
|
||||||
|
public class SkyscraperTests : Feyllure
|
||||||
{
|
{
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Resources")]
|
|
||||||
[AllureFeature("Skyscraper")]
|
|
||||||
public void RunTestPatterns()
|
public void RunTestPatterns()
|
||||||
{
|
{
|
||||||
byte[][] buffers = new byte[][] { Resources.test_1packet_01, Resources.test_2packets_02_03, Resources.test_3packets_04_05_06 };
|
byte[][] buffers = new byte[][]
|
||||||
|
{
|
||||||
|
Resources1.test_1packet_01,
|
||||||
|
Resources1.test_2packets_02_03,
|
||||||
|
Resources1.test_3packets_04_05_06
|
||||||
|
};
|
||||||
|
|
||||||
InMemoryScraperStorageFactory imssf = new InMemoryScraperStorageFactory();
|
InMemoryScraperStorageFactory imssf = new InMemoryScraperStorageFactory();
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
//
|
//
|
||||||
@ -7,28 +7,28 @@
|
|||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace skyscraper8.Tests.Properties {
|
namespace skyscraper8.Tests {
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||||
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
internal class Resources {
|
internal class Resources1 {
|
||||||
|
|
||||||
private static System.Resources.ResourceManager resourceMan;
|
private static System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
private static System.Globalization.CultureInfo resourceCulture;
|
private static System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
[System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
internal Resources() {
|
internal Resources1() {
|
||||||
}
|
}
|
||||||
|
|
||||||
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
internal static System.Resources.ResourceManager ResourceManager {
|
internal static System.Resources.ResourceManager ResourceManager {
|
||||||
get {
|
get {
|
||||||
if (object.Equals(null, resourceMan)) {
|
if (object.Equals(null, resourceMan)) {
|
||||||
System.Resources.ResourceManager temp = new System.Resources.ResourceManager("skyscraper8.Tests.Properties.Resources", typeof(Resources).Assembly);
|
System.Resources.ResourceManager temp = new System.Resources.ResourceManager("skyscraper8.Tests.Resources1", typeof(Resources1).Assembly);
|
||||||
resourceMan = temp;
|
resourceMan = temp;
|
||||||
}
|
}
|
||||||
return resourceMan;
|
return resourceMan;
|
||||||
60
skyscraper8.Tests/Resources1.resx
Normal file
60
skyscraper8.Tests/Resources1.resx
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
|
||||||
|
<root>
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>1.3</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="ModemCapabilitiesEncodingTest" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\ModemCapabilitiesEncodingTest.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultipartRegistrationResponseTest" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\T45_V4_MultipartRegistrationResponseTest.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="PushMacManagementMessage_Version4_Type45" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\PushMacManagementMessage_Version4_Type45.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="ranging_response_test" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\ranging_response_test.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="MultipartRegistrationResponseTest2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\T45_V4_MultipartRegistrationResponseTest2.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="test-1packet-01" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\test-1packet-01.ts;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="test-2packets-02-03" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\test-2packets-02-03.ts;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="test-3packets-04-05-06" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\test-3packets-04-05-06.ts;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="TransmitChannelConfigurationObject" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\TransmitChannelConfigurationObject.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="UpstreamChannelDescriptorTest" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\UpstreamChannelDescriptorTest.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="Frame00001343_TSGS1_MIS000_SYNC001" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\Frame00001343_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="Frame00000008_TSGS1_MIS000_SYNC001" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\Frame00000008_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name="Frame00000012_TSGS1_MIS000_SYNC001" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>Resources\Frame00000012_TSGS1_MIS000_SYNC001.bbf;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@ -1,61 +1,51 @@
|
|||||||
using Allure.Commons;
|
using System.Net.NetworkInformation;
|
||||||
using Allure.Xunit.Attributes;
|
|
||||||
using skyscraper5.Docsis;
|
using skyscraper5.Docsis;
|
||||||
using skyscraper5.Docsis.AnnexC;
|
using skyscraper5.Docsis.AnnexC;
|
||||||
|
|
||||||
namespace skyscraper8.Tests.RootTests;
|
namespace skyscraper8.Tests.RootTests;
|
||||||
|
|
||||||
public class DocsisTests
|
[TestClass]
|
||||||
|
public class DocsisTests : Feyllure
|
||||||
{
|
{
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void MacManagementMessageTypeAttributeTest()
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
void MacManagementMessageTypeAttributeTest()
|
|
||||||
{
|
{
|
||||||
MacManagementMessageTypeAttribute mmmta = new MacManagementMessageTypeAttribute(1, 2);
|
MacManagementMessageTypeAttribute mmmta = new MacManagementMessageTypeAttribute(1, 2);
|
||||||
Console.WriteLine(mmmta.ToString());
|
Print(mmmta.ToString());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void RcpIdEncodingTest()
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
void RcpIdEncodingTest()
|
|
||||||
{
|
{
|
||||||
RcpIdEncoding rie = new RcpIdEncoding(new byte[] { 7, 1, 0 });
|
RcpIdEncoding rie = new RcpIdEncoding(new byte[] { 7, 1, 0 });
|
||||||
SimplifiedReceiveChannelAssignmentEncoding simplifiedReceiveChannelAssignmentEncoding = rie.SimplifiedReceiveChannelConfiguration;
|
SimplifiedReceiveChannelAssignmentEncoding simplifiedReceiveChannelAssignmentEncoding = rie.SimplifiedReceiveChannelConfiguration;
|
||||||
Assert.NotNull(simplifiedReceiveChannelAssignmentEncoding);
|
Assert.IsNotNull(simplifiedReceiveChannelAssignmentEncoding);
|
||||||
Assert.Throws<NotImplementedException>(() => new RcpIdEncoding(new byte[] { 255, 1, 0 }));
|
Assert.ThrowsException<NotImplementedException>(() => new RcpIdEncoding(new byte[] { 255, 1, 0 }));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void EthernetLlcPacketClassificationEncodingTest()
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
void EthernetLlcPacketClassificationEncodingTest()
|
|
||||||
{
|
{
|
||||||
EthernetLlcPacketClassificationEncoding epce = new EthernetLlcPacketClassificationEncoding(new byte[] { 3, 3, 1, 0, 1 });
|
EthernetLlcPacketClassificationEncoding epce = new EthernetLlcPacketClassificationEncoding(new byte[] { 3, 3, 1, 0, 1 });
|
||||||
ushort epceEProt = epce.EProt;
|
ushort epceEProt = epce.EProt;
|
||||||
Assert.Equal(1, epce.EProt);
|
Assert.AreEqual(1, epce.EProt);
|
||||||
Assert.Equal(1, epce.Type);
|
Assert.AreEqual(1, epce.Type);
|
||||||
Assert.Throws<NotImplementedException>(() => new EthernetLlcPacketClassificationEncoding(new byte[] { 255, 1, 0 }));
|
Assert.ThrowsException<NotImplementedException>(() => new EthernetLlcPacketClassificationEncoding(new byte[] { 255, 1, 0 }));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void SimplifiedReceiveChannelAssignmentEncodingTest()
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
void SimplifiedReceiveChannelAssignmentEncodingTest()
|
|
||||||
{
|
{
|
||||||
SimplifiedReceiveChannelAssignmentEncoding srcae =
|
SimplifiedReceiveChannelAssignmentEncoding srcae =
|
||||||
new SimplifiedReceiveChannelAssignmentEncoding(new byte[] { 1, 1, 0, 2, 1, 0, 3, 1, 0 });
|
new SimplifiedReceiveChannelAssignmentEncoding(new byte[] { 1, 1, 0, 2, 1, 0, 3, 1, 0 });
|
||||||
Assert.Equal(0,srcae.DownstreamChannelAssignment[0]);
|
Assert.AreEqual(0,srcae.DownstreamChannelAssignment[0]);
|
||||||
Assert.Equal(0, srcae.DownstreamProfileAssignment[0]);
|
Assert.AreEqual(0, srcae.DownstreamProfileAssignment[0]);
|
||||||
Assert.Equal(0, srcae.PrimaryDownstreamChannelAssignment[0]);
|
Assert.AreEqual(0, srcae.PrimaryDownstreamChannelAssignment[0]);
|
||||||
Assert.Throws<NotImplementedException>(() => new SimplifiedReceiveChannelAssignmentEncoding(new byte[] { 254,0,1 }));
|
Assert.ThrowsException<NotImplementedException>(() => new SimplifiedReceiveChannelAssignmentEncoding(new byte[] { 254,0,1 }));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void TransmitChannelConfigurationObjectTest()
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
void TransmitChannelConfigurationObjectTest()
|
|
||||||
{
|
{
|
||||||
CommonTlvEncodingObject.TransmitChannelConfigurationObject tcco =
|
CommonTlvEncodingObject.TransmitChannelConfigurationObject tcco =
|
||||||
new CommonTlvEncodingObject.TransmitChannelConfigurationObject(
|
new CommonTlvEncodingObject.TransmitChannelConfigurationObject(
|
||||||
@ -71,24 +61,22 @@ public class DocsisTests
|
|||||||
10, 1, 0,
|
10, 1, 0,
|
||||||
11, 1, 0
|
11, 1, 0
|
||||||
});
|
});
|
||||||
Assert.Equal(0, tcco.TccReferenceId.Value);
|
Assert.AreEqual(0, tcco.TccReferenceId.Value);
|
||||||
Assert.Equal(CommonTlvEncodingObject.TransmitChannelConfigurationObject.UpstreamChannelActionEnum.NoAction, tcco.UpstreamChannelAction.Value);
|
Assert.AreEqual(CommonTlvEncodingObject.TransmitChannelConfigurationObject.UpstreamChannelActionEnum.NoAction, tcco.UpstreamChannelAction.Value);
|
||||||
Assert.Equal(0, tcco.UpstreamChannelId.Value);
|
Assert.AreEqual(0, tcco.UpstreamChannelId.Value);
|
||||||
Assert.NotNull(tcco.UpstreamChannelDescriptor);
|
Assert.IsNotNull(tcco.UpstreamChannelDescriptor);
|
||||||
Assert.Equal(0, tcco.RangingSid.Value);
|
Assert.AreEqual(0, tcco.RangingSid.Value);
|
||||||
Assert.Equal(InitalizationTechniqueEnum.BroadcastInitialRanging, tcco.InitializationTechnique.Value);
|
Assert.AreEqual(InitalizationTechniqueEnum.BroadcastInitialRanging, tcco.InitializationTechnique.Value);
|
||||||
Assert.Equal(0, tcco.DynamicRangeWindow);
|
Assert.AreEqual(0, tcco.DynamicRangeWindow);
|
||||||
Assert.Equal(0, tcco.P16Hi);
|
Assert.AreEqual(0, tcco.P16Hi);
|
||||||
Assert.Equal(0, tcco.ListOfIucs[0]);
|
Assert.AreEqual(0, tcco.ListOfIucs[0]);
|
||||||
|
|
||||||
Assert.Throws<NotImplementedException>(() =>
|
Assert.ThrowsException<NotImplementedException>(() =>
|
||||||
new CommonTlvEncodingObject.TransmitChannelConfigurationObject(new byte[] { 254, 1, 0 }));
|
new CommonTlvEncodingObject.TransmitChannelConfigurationObject(new byte[] { 254, 1, 0 }));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void CommonTlvEncodingObjectTest()
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
void CommonTlvEncodingObjectTest()
|
|
||||||
{
|
{
|
||||||
MemoryStream ms = new MemoryStream(new byte[]
|
MemoryStream ms = new MemoryStream(new byte[]
|
||||||
{
|
{
|
||||||
@ -101,22 +89,20 @@ public class DocsisTests
|
|||||||
52, 2, 0, 1
|
52, 2, 0, 1
|
||||||
});
|
});
|
||||||
CommonTlvEncodingObject commonTlv = new CommonTlvEncodingObject(ms);
|
CommonTlvEncodingObject commonTlv = new CommonTlvEncodingObject(ms);
|
||||||
Assert.NotNull(commonTlv.ModemCapabilitiesEncoding);
|
Assert.IsNotNull(commonTlv.ModemCapabilitiesEncoding);
|
||||||
Assert.NotNull(commonTlv.ServiceFlowSidClusterAssignment);
|
Assert.IsNotNull(commonTlv.ServiceFlowSidClusterAssignment);
|
||||||
Assert.NotNull(commonTlv.RcpId);
|
Assert.IsNotNull(commonTlv.RcpId);
|
||||||
Assert.Equal(0, commonTlv.KeySequenceNumber);
|
Assert.AreEqual(0, commonTlv.KeySequenceNumber);
|
||||||
Assert.Equal(0, commonTlv.HmacDigest[0]);
|
Assert.AreEqual(0, commonTlv.HmacDigest[0]);
|
||||||
Assert.NotNull(commonTlv.AuthorizationHint);
|
Assert.IsNotNull(commonTlv.AuthorizationHint);
|
||||||
Assert.Equal(new TimeSpan(0, 0, 1), commonTlv.InitializingChannelTimeout);
|
Assert.AreEqual(new TimeSpan(0, 0, 1), commonTlv.InitializingChannelTimeout);
|
||||||
|
|
||||||
ms = new MemoryStream(new byte[] { 254, 1, 0 });
|
ms = new MemoryStream(new byte[] { 254, 1, 0 });
|
||||||
Assert.Throws<NotImplementedException>(() => new CommonTlvEncodingObject(ms));
|
Assert.ThrowsException<NotImplementedException>(() => new CommonTlvEncodingObject(ms));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void GeneralPacketClassifierEncodingTest()
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
void GeneralPacketClassifierEncodingTest()
|
|
||||||
{
|
{
|
||||||
GeneralPacketClassifierEncoding gpce = new GeneralPacketClassifierEncoding(new byte[]
|
GeneralPacketClassifierEncoding gpce = new GeneralPacketClassifierEncoding(new byte[]
|
||||||
{
|
{
|
||||||
@ -135,31 +121,29 @@ public class DocsisTests
|
|||||||
4, 4, 127, 0, 0, 1,
|
4, 4, 127, 0, 0, 1,
|
||||||
6, 4, 127, 0, 0, 1
|
6, 4, 127, 0, 0, 1
|
||||||
});
|
});
|
||||||
Assert.True(gpce.ClassifierActivationState.Value);
|
Assert.IsTrue(gpce.ClassifierActivationState.Value);
|
||||||
Assert.Equal(0, gpce.RulePriority.Value);
|
Assert.AreEqual(0, gpce.RulePriority.Value);
|
||||||
Assert.NotNull(gpce.Ipv4PacketClassification);
|
Assert.IsNotNull(gpce.Ipv4PacketClassification);
|
||||||
Assert.Equal(1, gpce.ServiceFlowReference.Value);
|
Assert.AreEqual(1, gpce.ServiceFlowReference.Value);
|
||||||
Assert.Equal(0, gpce.ClassifierReference.Value);
|
Assert.AreEqual(0, gpce.ClassifierReference.Value);
|
||||||
Assert.Equal(1, gpce.ClassifierIdentifier.Value);
|
Assert.AreEqual(1, gpce.ClassifierIdentifier.Value);
|
||||||
Assert.Equal((uint)1, gpce.ServiceFlowIdentifier.Value);
|
Assert.AreEqual((uint)1, gpce.ServiceFlowIdentifier.Value);
|
||||||
Assert.Equal(GeneralPacketClassifierEncoding.DynamicServiceChangeActionEnum.Add, gpce.DynamicServiceChangeAction.Value);
|
Assert.AreEqual(GeneralPacketClassifierEncoding.DynamicServiceChangeActionEnum.Add, gpce.DynamicServiceChangeAction.Value);
|
||||||
Assert.NotNull(gpce.EthernetLlcPacketClassificationEncodings);
|
Assert.IsNotNull(gpce.EthernetLlcPacketClassificationEncodings);
|
||||||
|
|
||||||
Assert.Throws<NotImplementedException>(() => new GeneralPacketClassifierEncoding(new byte[]
|
Assert.ThrowsException<NotImplementedException>(() => new GeneralPacketClassifierEncoding(new byte[]
|
||||||
{
|
{
|
||||||
12, 4,
|
12, 4,
|
||||||
255, 1, 0, 0
|
255, 1, 0, 0
|
||||||
}));
|
}));
|
||||||
|
|
||||||
Assert.Throws<NotImplementedException>(() => new GeneralPacketClassifierEncoding(new byte[]
|
Assert.ThrowsException<NotImplementedException>(() => new GeneralPacketClassifierEncoding(new byte[]
|
||||||
{
|
{
|
||||||
254, 1, 0
|
254, 1, 0
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void Ipv4PacketClassificationEncodingTest()
|
public void Ipv4PacketClassificationEncodingTest()
|
||||||
{
|
{
|
||||||
GeneralPacketClassifierEncoding.Ipv4PacketClassificationEncodings ipce =
|
GeneralPacketClassifierEncoding.Ipv4PacketClassificationEncodings ipce =
|
||||||
@ -175,26 +159,24 @@ public class DocsisTests
|
|||||||
7, 2, 0, 1,
|
7, 2, 0, 1,
|
||||||
8, 2, 0, 1
|
8, 2, 0, 1
|
||||||
});
|
});
|
||||||
Assert.NotNull(ipce.Ipv4SourceAddress);
|
Assert.IsNotNull(ipce.Ipv4SourceAddress);
|
||||||
Assert.NotNull(ipce.Ipv4DestinationAddress);
|
Assert.IsNotNull(ipce.Ipv4DestinationAddress);
|
||||||
Assert.Equal(1, ipce.IpProtocol.Value);
|
Assert.AreEqual(1, ipce.IpProtocol.Value);
|
||||||
Assert.NotNull(ipce.Ipv4SourceMask);
|
Assert.IsNotNull(ipce.Ipv4SourceMask);
|
||||||
Assert.NotNull(ipce.Ipv4DestinationMask);
|
Assert.IsNotNull(ipce.Ipv4DestinationMask);
|
||||||
Assert.Equal(1, ipce.DestinationPortStart.Value);
|
Assert.AreEqual(1, ipce.DestinationPortStart.Value);
|
||||||
Assert.Equal(1, ipce.DestinationPortEnd.Value);
|
Assert.AreEqual(1, ipce.DestinationPortEnd.Value);
|
||||||
Assert.Equal(1, ipce.SourcePortStart.Value);
|
Assert.AreEqual(1, ipce.SourcePortStart.Value);
|
||||||
Assert.Equal(1, ipce.SourcePortEnd.Value);
|
Assert.AreEqual(1, ipce.SourcePortEnd.Value);
|
||||||
|
|
||||||
Assert.Throws<NotImplementedException>(() =>
|
Assert.ThrowsException<NotImplementedException>(() =>
|
||||||
new GeneralPacketClassifierEncoding.Ipv4PacketClassificationEncodings(new byte[]
|
new GeneralPacketClassifierEncoding.Ipv4PacketClassificationEncodings(new byte[]
|
||||||
{
|
{
|
||||||
255, 1, 0
|
255, 1, 0
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void ServiceFlowSidClusterAssignmentObjectTest()
|
public void ServiceFlowSidClusterAssignmentObjectTest()
|
||||||
{
|
{
|
||||||
ServiceFlowSidClusterAssignmentObject sfscao = new ServiceFlowSidClusterAssignmentObject(new byte[]
|
ServiceFlowSidClusterAssignmentObject sfscao = new ServiceFlowSidClusterAssignmentObject(new byte[]
|
||||||
@ -203,19 +185,17 @@ public class DocsisTests
|
|||||||
2, 1, 0,
|
2, 1, 0,
|
||||||
3, 1, 0,
|
3, 1, 0,
|
||||||
});
|
});
|
||||||
Assert.Equal(1u, sfscao.SFID.Value);
|
Assert.AreEqual(1u, sfscao.SFID.Value);
|
||||||
Assert.NotNull(sfscao.SidClusterEncoding);
|
Assert.IsNotNull(sfscao.SidClusterEncoding);
|
||||||
Assert.NotNull(sfscao.SidClusterSwitchoverCriteria);
|
Assert.IsNotNull(sfscao.SidClusterSwitchoverCriteria);
|
||||||
|
|
||||||
Assert.Throws<NotImplementedException>(() => new ServiceFlowSidClusterAssignmentObject(new byte[]
|
Assert.ThrowsException<NotImplementedException>(() => new ServiceFlowSidClusterAssignmentObject(new byte[]
|
||||||
{
|
{
|
||||||
255, 1, 0
|
255, 1, 0
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void SidClusterEncodingObjectTest()
|
public void SidClusterEncodingObjectTest()
|
||||||
{
|
{
|
||||||
ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject sceo =
|
ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject sceo =
|
||||||
@ -224,18 +204,16 @@ public class DocsisTests
|
|||||||
1, 1, 1,
|
1, 1, 1,
|
||||||
2, 1, 0
|
2, 1, 0
|
||||||
});
|
});
|
||||||
Assert.Equal(1, sceo.SidClusterId.Value);
|
Assert.AreEqual(1, sceo.SidClusterId.Value);
|
||||||
Assert.NotNull(sceo.SidToChannelMapping);
|
Assert.IsNotNull(sceo.SidToChannelMapping);
|
||||||
|
|
||||||
Assert.Throws<NotImplementedException>(() => new ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject(new byte[]
|
Assert.ThrowsException<NotImplementedException>(() => new ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject(new byte[]
|
||||||
{
|
{
|
||||||
255, 1, 0
|
255, 1, 0
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void SidToChannelMappingObjectTest()
|
public void SidToChannelMappingObjectTest()
|
||||||
{
|
{
|
||||||
ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject.SidToChannelMappingObject stcmo =
|
ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject.SidToChannelMappingObject stcmo =
|
||||||
@ -245,20 +223,18 @@ public class DocsisTests
|
|||||||
2,2,0,1,
|
2,2,0,1,
|
||||||
3,1,1
|
3,1,1
|
||||||
});
|
});
|
||||||
Assert.Equal(1, stcmo.UpstreamChannelId.Value);
|
Assert.AreEqual(1, stcmo.UpstreamChannelId.Value);
|
||||||
Assert.Equal(1, stcmo.SID.Value);
|
Assert.AreEqual(1, stcmo.SID.Value);
|
||||||
Assert.Equal(ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject.SidToChannelMappingObject.ActionEnum.Add,stcmo.Action.Value);
|
Assert.AreEqual(ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject.SidToChannelMappingObject.ActionEnum.Add,stcmo.Action.Value);
|
||||||
|
|
||||||
Assert.Throws<NotImplementedException>(() =>
|
Assert.ThrowsException<NotImplementedException>(() =>
|
||||||
new ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject.SidToChannelMappingObject(new byte[]
|
new ServiceFlowSidClusterAssignmentObject.SidClusterEncodingObject.SidToChannelMappingObject(new byte[]
|
||||||
{
|
{
|
||||||
255, 1, 0
|
255, 1, 0
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void Ipv6PacketClassificationEncodingTest()
|
public void Ipv6PacketClassificationEncodingTest()
|
||||||
{
|
{
|
||||||
byte[] buffer = new byte[]
|
byte[] buffer = new byte[]
|
||||||
@ -272,15 +248,13 @@ public class DocsisTests
|
|||||||
};
|
};
|
||||||
GeneralPacketClassifierEncoding gpce = new GeneralPacketClassifierEncoding(buffer);
|
GeneralPacketClassifierEncoding gpce = new GeneralPacketClassifierEncoding(buffer);
|
||||||
Ipv6PacketClassificationEncoding ipce = gpce.Ipv6PacketClassification;
|
Ipv6PacketClassificationEncoding ipce = gpce.Ipv6PacketClassification;
|
||||||
Assert.NotNull(ipce);
|
Assert.IsNotNull(ipce);
|
||||||
Assert.NotNull(ipce.Ipv6DestinationAddress);
|
Assert.IsNotNull(ipce.Ipv6DestinationAddress);
|
||||||
Assert.NotNull(ipce.Ipv6SourceAddress);
|
Assert.IsNotNull(ipce.Ipv6SourceAddress);
|
||||||
Assert.Equal(0x0800, ipce.NextHeaderType);
|
Assert.AreEqual(0x0800, ipce.NextHeaderType);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void SidClusterSwitchoverCriteriaObjectTest()
|
public void SidClusterSwitchoverCriteriaObjectTest()
|
||||||
{
|
{
|
||||||
byte[] buffer = new byte[]
|
byte[] buffer = new byte[]
|
||||||
@ -292,19 +266,17 @@ public class DocsisTests
|
|||||||
};
|
};
|
||||||
ServiceFlowSidClusterAssignmentObject.SidClusterSwitchoverCriteriaObject scsco =
|
ServiceFlowSidClusterAssignmentObject.SidClusterSwitchoverCriteriaObject scsco =
|
||||||
new ServiceFlowSidClusterAssignmentObject.SidClusterSwitchoverCriteriaObject(buffer);
|
new ServiceFlowSidClusterAssignmentObject.SidClusterSwitchoverCriteriaObject(buffer);
|
||||||
Assert.Equal((byte)1,scsco.MaximumRequestPerSidCluster);
|
Assert.AreEqual((byte)1,scsco.MaximumRequestPerSidCluster);
|
||||||
Assert.Equal((uint)1, scsco.MaximumOutstandingBytesPerSidCluster);
|
Assert.AreEqual((uint)1, scsco.MaximumOutstandingBytesPerSidCluster);
|
||||||
Assert.Equal((uint)1, scsco.MaximumTotalBytesRequestedPerSidCluster);
|
Assert.AreEqual((uint)1, scsco.MaximumTotalBytesRequestedPerSidCluster);
|
||||||
Assert.Equal((ushort)1, scsco.MaximumTimeInTheSidCluster);
|
Assert.AreEqual((ushort)1, scsco.MaximumTimeInTheSidCluster);
|
||||||
|
|
||||||
buffer = new byte[] { 254, 1, 0 };
|
buffer = new byte[] { 254, 1, 0 };
|
||||||
Assert.Throws<NotImplementedException>(() =>
|
Assert.ThrowsException<NotImplementedException>(() =>
|
||||||
new ServiceFlowSidClusterAssignmentObject.SidClusterSwitchoverCriteriaObject(buffer));
|
new ServiceFlowSidClusterAssignmentObject.SidClusterSwitchoverCriteriaObject(buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void ModemCapabilitiesEncodingTest()
|
public void ModemCapabilitiesEncodingTest()
|
||||||
{
|
{
|
||||||
byte[] buffer = new byte[]
|
byte[] buffer = new byte[]
|
||||||
@ -365,62 +337,62 @@ public class DocsisTests
|
|||||||
};
|
};
|
||||||
|
|
||||||
ModemCapabilitiesEncoding mcs = new ModemCapabilitiesEncoding(buffer);
|
ModemCapabilitiesEncoding mcs = new ModemCapabilitiesEncoding(buffer);
|
||||||
Assert.True(mcs.ConcatenationSupport);
|
Assert.IsTrue(mcs.ConcatenationSupport);
|
||||||
Assert.Equal(new Version(1, 0), mcs.DocsisVersion);
|
Assert.AreEqual(new Version(1, 0), mcs.DocsisVersion);
|
||||||
Assert.True(mcs.FragmentationSupport);
|
Assert.IsTrue(mcs.FragmentationSupport);
|
||||||
Assert.True(mcs.PayloadHeaderSuppressionSupport);
|
Assert.IsTrue(mcs.PayloadHeaderSuppressionSupport);
|
||||||
Assert.Equal(ModemCapabilitiesEncoding.PrivacySupportValue.BpiPlusSupport,mcs.PrivacySupport.Value);
|
Assert.AreEqual(ModemCapabilitiesEncoding.PrivacySupportValue.BpiPlusSupport,mcs.PrivacySupport.Value);
|
||||||
Assert.Equal(1, mcs.DownstreamSaidSupport.Value);
|
Assert.AreEqual(1, mcs.DownstreamSaidSupport.Value);
|
||||||
Assert.Equal(1, mcs.UpstreamServiceFlowSupport.Value);
|
Assert.AreEqual(1, mcs.UpstreamServiceFlowSupport.Value);
|
||||||
Assert.Equal(1, mcs.TransmitPreEqualizerTapsPerModulationInterval.Value);
|
Assert.AreEqual(1, mcs.TransmitPreEqualizerTapsPerModulationInterval.Value);
|
||||||
Assert.Equal(1, mcs.NumberOfTransmitEqualizerTaps.Value);
|
Assert.AreEqual(1, mcs.NumberOfTransmitEqualizerTaps.Value);
|
||||||
Assert.True(mcs.DccSupport);
|
Assert.IsTrue(mcs.DccSupport);
|
||||||
Assert.NotNull(mcs.RangingHoldOffSupport);
|
Assert.IsNotNull(mcs.RangingHoldOffSupport);
|
||||||
Assert.True(mcs.L2VPN);
|
Assert.IsTrue(mcs.L2VPN);
|
||||||
Assert.NotNull(mcs.ESafeHostCapability);
|
Assert.IsNotNull(mcs.ESafeHostCapability);
|
||||||
Assert.True(mcs.DownstreamUnencryptedTrafficFiltering);
|
Assert.IsTrue(mcs.DownstreamUnencryptedTrafficFiltering);
|
||||||
Assert.Equal(ModemCapabilitiesEncoding.UpstreamFrequencyRangeSupportEnum.Extended, mcs.UpstreamFrequencyRangeSupport);
|
Assert.AreEqual(ModemCapabilitiesEncoding.UpstreamFrequencyRangeSupportEnum.Extended, mcs.UpstreamFrequencyRangeSupport);
|
||||||
Assert.True(mcs._160kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._160kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._320kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._320kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._640kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._640kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._1280kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._1280kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._2560kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._2560kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._5120kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._5120kspsSymbolRateSupport);
|
||||||
Assert.True(mcs.SelectableActiveCodeMode2Support);
|
Assert.IsTrue(mcs.SelectableActiveCodeMode2Support);
|
||||||
Assert.True(mcs.CodeHoppingMode2Support);
|
Assert.IsTrue(mcs.CodeHoppingMode2Support);
|
||||||
Assert.Equal(2,mcs.ScQamMultipleTransmitChannelSupport.Value);
|
Assert.AreEqual(2,mcs.ScQamMultipleTransmitChannelSupport.Value);
|
||||||
Assert.Equal(2, mcs.TotalSidClusterSupport.Value);
|
Assert.AreEqual(2, mcs.TotalSidClusterSupport.Value);
|
||||||
Assert.Equal(2, mcs.SidClustersPerServiceFlowSupport.Value);
|
Assert.AreEqual(2, mcs.SidClustersPerServiceFlowSupport.Value);
|
||||||
Assert.Equal(2, mcs.ScQamMultipleReceiveChannelSupport.Value);
|
Assert.AreEqual(2, mcs.ScQamMultipleReceiveChannelSupport.Value);
|
||||||
Assert.Equal(3, mcs.TotalDsidSupport.Value);
|
Assert.AreEqual(3, mcs.TotalDsidSupport.Value);
|
||||||
Assert.Equal(3, mcs.ResequencingDsidSupport.Value);
|
Assert.AreEqual(3, mcs.ResequencingDsidSupport.Value);
|
||||||
Assert.Equal(3, mcs.MulticastDsidSupport.Value);
|
Assert.AreEqual(3, mcs.MulticastDsidSupport.Value);
|
||||||
Assert.Equal(ModemCapabilitiesEncoding.MulticastDsidForwardingEnum.SupportPromiscious, mcs.MulticastDsidForwarding.Value);
|
Assert.AreEqual(ModemCapabilitiesEncoding.MulticastDsidForwardingEnum.SupportPromiscious, mcs.MulticastDsidForwarding.Value);
|
||||||
Assert.True(mcs.FrameControlTypeForwardingCapability);
|
Assert.IsTrue(mcs.FrameControlTypeForwardingCapability);
|
||||||
Assert.True(mcs.DpvPerPathSuppported);
|
Assert.IsTrue(mcs.DpvPerPathSuppported);
|
||||||
Assert.True(mcs.DpvPerPacketSuppported);
|
Assert.IsTrue(mcs.DpvPerPacketSuppported);
|
||||||
Assert.Equal(3, mcs.UnsolicitedGrantServiceFlowSupport.Value);
|
Assert.AreEqual(3, mcs.UnsolicitedGrantServiceFlowSupport.Value);
|
||||||
Assert.True(mcs.MapAndUcdReceiptSupport);
|
Assert.IsTrue(mcs.MapAndUcdReceiptSupport);
|
||||||
Assert.Equal(3, mcs.UpstreamDropClassifierSupport);
|
Assert.AreEqual(3, mcs.UpstreamDropClassifierSupport);
|
||||||
Assert.True(mcs.Ipv6Support.Value);
|
Assert.IsTrue(mcs.Ipv6Support.Value);
|
||||||
Assert.Equal(4, mcs.ExtendedUpstreamTransmitPowerCapability.Value);
|
Assert.AreEqual(4, mcs.ExtendedUpstreamTransmitPowerCapability.Value);
|
||||||
Assert.True(mcs.CmStatusAck);
|
Assert.IsTrue(mcs.CmStatusAck);
|
||||||
Assert.True(mcs.EnergyManagement1x1Feature);
|
Assert.IsTrue(mcs.EnergyManagement1x1Feature);
|
||||||
Assert.True(mcs.DocsisLightSleepMode);
|
Assert.IsTrue(mcs.DocsisLightSleepMode);
|
||||||
Assert.Equal(4, mcs.ExtendedPacketLengthSupportCapability);
|
Assert.AreEqual(4, mcs.ExtendedPacketLengthSupportCapability);
|
||||||
Assert.Equal(4, mcs.OfdmMultipleReceiveChannelSupport.Value);
|
Assert.AreEqual(4, mcs.OfdmMultipleReceiveChannelSupport.Value);
|
||||||
Assert.Equal(5, mcs.OfdmaMultipleTransmitChannelSupport.Value);
|
Assert.AreEqual(5, mcs.OfdmaMultipleTransmitChannelSupport.Value);
|
||||||
Assert.Equal(5, mcs.DownstreamOfdmProfileSupport.Value);
|
Assert.AreEqual(5, mcs.DownstreamOfdmProfileSupport.Value);
|
||||||
Assert.NotNull(mcs.DownstreamOfdmChannelSubcarrierQamModulationSupport);
|
Assert.IsNotNull(mcs.DownstreamOfdmChannelSubcarrierQamModulationSupport);
|
||||||
Assert.NotNull(mcs.UpstreamOfdmaChannelSubcarrierQamModulationSupport);
|
Assert.IsNotNull(mcs.UpstreamOfdmaChannelSubcarrierQamModulationSupport);
|
||||||
Assert.Equal(108, mcs.DownstreamFrequencyRangeStarting);
|
Assert.AreEqual(108, mcs.DownstreamFrequencyRangeStarting);
|
||||||
Assert.Equal(1218, mcs.DownstreamFrequencyRangeUpTo);
|
Assert.AreEqual(1218, mcs.DownstreamFrequencyRangeUpTo);
|
||||||
Assert.Equal(42, mcs.UpstreamFrequencyRangeUpTo);
|
Assert.AreEqual(42, mcs.UpstreamFrequencyRangeUpTo);
|
||||||
Assert.Equal(ModemCapabilitiesEncoding.DtpMode.MasterOrSlave, mcs.DocsisTimeProtocolMode.Value);
|
Assert.AreEqual(ModemCapabilitiesEncoding.DtpMode.MasterOrSlave, mcs.DocsisTimeProtocolMode.Value);
|
||||||
Assert.Equal(ModemCapabilitiesEncoding.DtpPerformanceSupport.Level5, mcs.DocsisTimeProtocolPerformanceSupport.Value);
|
Assert.AreEqual(ModemCapabilitiesEncoding.DtpPerformanceSupport.Level5, mcs.DocsisTimeProtocolPerformanceSupport.Value);
|
||||||
Assert.Equal(5, mcs.Pmax);
|
Assert.AreEqual(5, mcs.Pmax);
|
||||||
Assert.True(mcs.DownstreamFullDuplex);
|
Assert.IsTrue(mcs.DownstreamFullDuplex);
|
||||||
Assert.Equal(7, mcs.LowLatencySupport.Value);
|
Assert.AreEqual(7, mcs.LowLatencySupport.Value);
|
||||||
|
|
||||||
buffer = new byte[]
|
buffer = new byte[]
|
||||||
{
|
{
|
||||||
@ -430,12 +402,12 @@ public class DocsisTests
|
|||||||
56, 1, 1,
|
56, 1, 1,
|
||||||
};
|
};
|
||||||
mcs = new ModemCapabilitiesEncoding(buffer);
|
mcs = new ModemCapabilitiesEncoding(buffer);
|
||||||
Assert.True(mcs._160kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._160kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._320kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._320kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._640kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._640kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._1280kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._1280kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._2560kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._2560kspsSymbolRateSupport);
|
||||||
Assert.True(mcs._5120kspsSymbolRateSupport);
|
Assert.IsTrue(mcs._5120kspsSymbolRateSupport);
|
||||||
|
|
||||||
|
|
||||||
buffer = new byte[]
|
buffer = new byte[]
|
||||||
@ -463,10 +435,10 @@ public class DocsisTests
|
|||||||
61, 1, 2
|
61, 1, 2
|
||||||
};
|
};
|
||||||
mcs = new ModemCapabilitiesEncoding(buffer);
|
mcs = new ModemCapabilitiesEncoding(buffer);
|
||||||
Assert.Null(mcs.DpvPerPathSuppported);
|
Assert.IsNull(mcs.DpvPerPathSuppported);
|
||||||
Assert.Null(mcs.DpvPerPacketSuppported);
|
Assert.IsNull(mcs.DpvPerPacketSuppported);
|
||||||
Assert.Null(mcs.EnergyManagement1x1Feature);
|
Assert.IsNull(mcs.EnergyManagement1x1Feature);
|
||||||
Assert.Null(mcs.DocsisLightSleepMode);
|
Assert.IsNull(mcs.DocsisLightSleepMode);
|
||||||
|
|
||||||
buffer = new byte[]
|
buffer = new byte[]
|
||||||
{
|
{
|
||||||
@ -506,12 +478,10 @@ public class DocsisTests
|
|||||||
{
|
{
|
||||||
255, 1, 1
|
255, 1, 1
|
||||||
};
|
};
|
||||||
Assert.Throws<NotImplementedException>(() => new ModemCapabilitiesEncoding(buffer));
|
Assert.ThrowsException<NotImplementedException>(() => new ModemCapabilitiesEncoding(buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
|
||||||
[AllureFeature("DOCSIS")]
|
|
||||||
public void GeneralServiceFlowEncodingTest()
|
public void GeneralServiceFlowEncodingTest()
|
||||||
{
|
{
|
||||||
byte[] buffer = new byte[]
|
byte[] buffer = new byte[]
|
||||||
@ -539,52 +509,89 @@ public class DocsisTests
|
|||||||
16, 4, 0, 0, 255, 255,
|
16, 4, 0, 0, 255, 255,
|
||||||
};
|
};
|
||||||
GeneralServiceFlowEncoding gsfe = new GeneralServiceFlowEncoding(buffer);
|
GeneralServiceFlowEncoding gsfe = new GeneralServiceFlowEncoding(buffer);
|
||||||
Assert.Equal((ushort)1, gsfe.ServiceFlowReference);
|
Assert.AreEqual((ushort)1, gsfe.ServiceFlowReference);
|
||||||
Assert.Equal((ushort)1, gsfe.ServiceFlowIdentifier);
|
Assert.AreEqual((ushort)1, gsfe.ServiceFlowIdentifier);
|
||||||
Assert.True(gsfe.ProvisionedSet);
|
Assert.IsTrue(gsfe.ProvisionedSet);
|
||||||
Assert.True(gsfe.AdmittedSet);
|
Assert.IsTrue(gsfe.AdmittedSet);
|
||||||
Assert.True(gsfe.ActiveSet);
|
Assert.IsTrue(gsfe.ActiveSet);
|
||||||
Assert.Equal((byte)1, gsfe.TrafficPriority);
|
Assert.AreEqual((byte)1, gsfe.TrafficPriority);
|
||||||
Assert.Equal((uint)1, gsfe.UpstreamMaximumSustainedTrafficRate);
|
Assert.AreEqual((uint)1, gsfe.UpstreamMaximumSustainedTrafficRate);
|
||||||
Assert.Equal((uint)1, gsfe.MaximumTrafficBurst);
|
Assert.AreEqual((uint)1, gsfe.MaximumTrafficBurst);
|
||||||
Assert.Equal((uint)1, gsfe.MinimumReservedTrafficRate);
|
Assert.AreEqual((uint)1, gsfe.MinimumReservedTrafficRate);
|
||||||
Assert.Equal((ushort)1, gsfe.AssumedMinimumReservedRatePacketSize);
|
Assert.AreEqual((ushort)1, gsfe.AssumedMinimumReservedRatePacketSize);
|
||||||
Assert.Equal((ushort)1, gsfe.TimeoutForActiveQosParameters);
|
Assert.AreEqual((ushort)1, gsfe.TimeoutForActiveQosParameters);
|
||||||
Assert.Equal(1, gsfe.MaximumConcatenatedBurst);
|
Assert.AreEqual(1, gsfe.MaximumConcatenatedBurst);
|
||||||
Assert.Equal(GeneralServiceFlowEncoding.ServiceFlowSchedulingTypeEnum.ProactiveGrantService, gsfe.ServiceFlowSchedulingType);
|
Assert.AreEqual(GeneralServiceFlowEncoding.ServiceFlowSchedulingTypeEnum.ProactiveGrantService, gsfe.ServiceFlowSchedulingType);
|
||||||
Assert.Equal(1, gsfe.DownstreamResequencing.Value);
|
Assert.AreEqual(1, gsfe.DownstreamResequencing.Value);
|
||||||
Assert.Equal(1, gsfe.UnsolicitedGrantSize.Value);
|
Assert.AreEqual(1, gsfe.UnsolicitedGrantSize.Value);
|
||||||
Assert.Equal((uint)2, gsfe.NominalGrantInterval.Value);
|
Assert.AreEqual((uint)2, gsfe.NominalGrantInterval.Value);
|
||||||
Assert.Equal((uint)2, gsfe.ToleratedGrantJitter.Value);
|
Assert.AreEqual((uint)2, gsfe.ToleratedGrantJitter.Value);
|
||||||
Assert.Equal(2, gsfe.GrantsPerInterval.Value);
|
Assert.AreEqual(2, gsfe.GrantsPerInterval.Value);
|
||||||
Assert.NotNull(gsfe.IpTypeOfServiceOverwrite);
|
Assert.IsNotNull(gsfe.IpTypeOfServiceOverwrite);
|
||||||
Assert.Equal((uint)2, gsfe.CmtsTimestamp.Value);
|
Assert.AreEqual((uint)2, gsfe.CmtsTimestamp.Value);
|
||||||
Assert.Equal(2, gsfe.MultiplierToNumberOfBytesRequested);
|
Assert.AreEqual(2, gsfe.MultiplierToNumberOfBytesRequested);
|
||||||
Assert.Equal((uint)3, gsfe.ServiceFlowForbiddenAttributeMask);
|
Assert.AreEqual((uint)3, gsfe.ServiceFlowForbiddenAttributeMask);
|
||||||
Assert.True(gsfe.DoNotUseContentionRegions);
|
Assert.IsTrue(gsfe.DoNotUseContentionRegions);
|
||||||
Assert.True(gsfe.DoNotUseSegmentHeaders);
|
Assert.IsTrue(gsfe.DoNotUseSegmentHeaders);
|
||||||
Assert.True(gsfe.DropPacketsTooBigForUnsolicitedGrant);
|
Assert.IsTrue(gsfe.DropPacketsTooBigForUnsolicitedGrant);
|
||||||
Assert.True(gsfe.DoNotSupressPayloadHeaders);
|
Assert.IsTrue(gsfe.DoNotSupressPayloadHeaders);
|
||||||
Assert.True(gsfe.DoNotFragmentData);
|
Assert.IsTrue(gsfe.DoNotFragmentData);
|
||||||
Assert.True(gsfe.DoNotConcatenateData);
|
Assert.IsTrue(gsfe.DoNotConcatenateData);
|
||||||
Assert.True(gsfe.DoNotPiggybackRequests);
|
Assert.IsTrue(gsfe.DoNotPiggybackRequests);
|
||||||
Assert.True(gsfe.DoNotUseRequest2ForData);
|
Assert.IsTrue(gsfe.DoNotUseRequest2ForData);
|
||||||
Assert.True(gsfe.DoNotUseRequest2ForRequests);
|
Assert.IsTrue(gsfe.DoNotUseRequest2ForRequests);
|
||||||
Assert.True(gsfe.DoNotUsePriorityRequest);
|
Assert.IsTrue(gsfe.DoNotUsePriorityRequest);
|
||||||
Assert.True(gsfe.DoNotUseAllCms);
|
Assert.IsTrue(gsfe.DoNotUseAllCms);
|
||||||
AllureLog.Log(gsfe.ToString());
|
this.Print(gsfe.ToString());
|
||||||
|
|
||||||
buffer = new byte[]
|
buffer = new byte[]
|
||||||
{
|
{
|
||||||
17, 4, 0, 0, 0, 1
|
17, 4, 0, 0, 0, 1
|
||||||
};
|
};
|
||||||
gsfe = new GeneralServiceFlowEncoding(buffer);
|
gsfe = new GeneralServiceFlowEncoding(buffer);
|
||||||
Assert.Equal((uint)1, gsfe.NominalPollingInterval.Value);
|
Assert.AreEqual((uint)1, gsfe.NominalPollingInterval.Value);
|
||||||
|
|
||||||
buffer = new byte[]
|
buffer = new byte[]
|
||||||
{
|
{
|
||||||
254, 1, 1
|
254, 1, 1
|
||||||
};
|
};
|
||||||
Assert.Throws<NotImplementedException>(() => new GeneralServiceFlowEncoding(buffer));
|
Assert.ThrowsException<NotImplementedException>(() => new GeneralServiceFlowEncoding(buffer));
|
||||||
|
}
|
||||||
|
|
||||||
|
[MacManagementMessageType(0x90,0x01)]
|
||||||
|
class TestableMacManagementMessage : MacManagementMessage
|
||||||
|
{
|
||||||
|
public TestableMacManagementMessage(PhysicalAddress source, PhysicalAddress destination, byte[] buffer) : base(source, destination, buffer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class UntestableMacManagementMessage : MacManagementMessage
|
||||||
|
{
|
||||||
|
public UntestableMacManagementMessage(PhysicalAddress source, PhysicalAddress destination, byte[] buffer) : base(source, destination, buffer)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void MacManagementMessageTest()
|
||||||
|
{
|
||||||
|
Random rng = new Random();
|
||||||
|
byte[] srcBuffer = new byte[6];
|
||||||
|
byte[] dstBuffer = new byte[6];
|
||||||
|
PhysicalAddress srcAddr = new PhysicalAddress(srcBuffer);
|
||||||
|
PhysicalAddress dstAddr = new PhysicalAddress(dstBuffer);
|
||||||
|
byte[] dataBuffer = new byte[0];
|
||||||
|
|
||||||
|
MacManagementMessageTypeAttribute expected = new MacManagementMessageTypeAttribute(0x90, 0x01);
|
||||||
|
TestableMacManagementMessage tmmm = new TestableMacManagementMessage(srcAddr, dstAddr, dataBuffer);
|
||||||
|
Assert.AreEqual(expected, tmmm.MessageType);
|
||||||
|
Assert.AreEqual(srcAddr, tmmm.Source);
|
||||||
|
Assert.AreEqual(dstAddr, tmmm.Destination);
|
||||||
|
|
||||||
|
Assert.ThrowsException<ArgumentNullException>(() => new TestableMacManagementMessage(srcAddr, dstAddr, null));
|
||||||
|
|
||||||
|
UntestableMacManagementMessage ummm = new UntestableMacManagementMessage(srcAddr, dstAddr, dataBuffer);
|
||||||
|
Assert.IsNull(ummm.MessageType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,14 +1,13 @@
|
|||||||
using Allure.Xunit.Attributes;
|
|
||||||
using skyscraper5.Mpeg2;
|
using skyscraper5.Mpeg2;
|
||||||
|
|
||||||
namespace skyscraper8.Tests.RootTests;
|
namespace skyscraper8.Tests.RootTests;
|
||||||
|
|
||||||
public class Mpeg2Tests
|
|
||||||
|
[TestClass]
|
||||||
|
public class Mpeg2Tests : Feyllure
|
||||||
{
|
{
|
||||||
[Fact]
|
[TestMethod]
|
||||||
[AllureSuite("Root")]
|
public void PsiSectionTest()
|
||||||
[AllureFeature("MPEG2")]
|
|
||||||
void PsiSectionTest()
|
|
||||||
{
|
{
|
||||||
PsiSection section = new PsiSection();
|
PsiSection section = new PsiSection();
|
||||||
section.Append(new byte[] { 3 });
|
section.Append(new byte[] { 3 });
|
||||||
|
|||||||
@ -1,30 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using skyscraper5.Skyscraper.IO;
|
|
||||||
|
|
||||||
namespace skyscraper8.Tests
|
|
||||||
{
|
|
||||||
public class SanityTests
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void Test15bits()
|
|
||||||
{
|
|
||||||
byte[] bcd = new byte[] { 0xa9, 0x23 };
|
|
||||||
MemoryStream ms = new MemoryStream(bcd);
|
|
||||||
byte readUInt8 = ms.ReadUInt8();
|
|
||||||
|
|
||||||
bool msbSet = (readUInt8 & 0x80) != 0;
|
|
||||||
Assert.True(msbSet);
|
|
||||||
|
|
||||||
readUInt8 &= 0b01111111;
|
|
||||||
|
|
||||||
int result = ms.ReadUInt8();
|
|
||||||
result <<= 8;
|
|
||||||
result += readUInt8;
|
|
||||||
Assert.Equal(9001, result);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
using skyscraper5.Mpeg2;
|
|
||||||
using skyscraper5.Skyscraper.Scraper;
|
|
||||||
using skyscraper5.Skyscraper.Scraper.Storage.InMemory;
|
|
||||||
using skyscraper8.Tests.Properties;
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using skyscraper8.Skyscraper.Scraper.Storage;
|
|
||||||
|
|
||||||
namespace skyscraper8.Tests
|
|
||||||
{
|
|
||||||
public class TsDuckTestPatterns
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void RunTestPatterns()
|
|
||||||
{
|
|
||||||
byte[][] buffers = new byte[][] { Resources.test_1packet_01, Resources.test_2packets_02_03, Resources.test_3packets_04_05_06 };
|
|
||||||
|
|
||||||
InMemoryScraperStorageFactory imssf = new InMemoryScraperStorageFactory();
|
|
||||||
|
|
||||||
foreach (byte[] buffer in buffers)
|
|
||||||
{
|
|
||||||
TsContext mpeg2 = new TsContext();
|
|
||||||
DataStorage ds = new InMemoryScraperStorageFactory().CreateDataStorage();
|
|
||||||
ObjectStorage os = new NullObjectStorage();
|
|
||||||
|
|
||||||
SkyscraperContext skyscraper = new SkyscraperContext(mpeg2, ds, os);
|
|
||||||
MemoryStream ms = new MemoryStream(buffer, false);
|
|
||||||
|
|
||||||
skyscraper.InitalizeFilterChain();
|
|
||||||
skyscraper.IngestFromStream(ms);
|
|
||||||
|
|
||||||
ms.Close();
|
|
||||||
ms.Dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,64 +0,0 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
|
|
||||||
<IsPackable>false</IsPackable>
|
|
||||||
<IsTestProject>true</IsTestProject>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<PackageReference Include="Allure.Commons" Version="3.5.0.73" />
|
|
||||||
<PackageReference Include="Allure.Xunit" Version="2.14.1" />
|
|
||||||
<PackageReference Include="coverlet.collector" Version="6.0.4">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.13.0" />
|
|
||||||
<PackageReference Include="xunit" Version="2.9.3" />
|
|
||||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.0">
|
|
||||||
<PrivateAssets>all</PrivateAssets>
|
|
||||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
||||||
</PackageReference>
|
|
||||||
<PackageReference Include="Xunit.SkippableFact" Version="1.5.23" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\skyscraper8\skyscraper8.csproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Using Include="Xunit" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Update="Properties\Resources.Designer.cs">
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
</Compile>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<EmbeddedResource Update="Properties\Resources.resx">
|
|
||||||
<Generator>ResXFileCodeGenerator</Generator>
|
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
|
||||||
</EmbeddedResource>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Update="xunit.runner.json">
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<None Update="allureConfig.json">
|
|
||||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
||||||
</None>
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
|
|
||||||
</Project>
|
|
||||||
@ -51,8 +51,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper5.DNS", "MpePlugi
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper5.Gimmicks.IptvCollector", "Gimmicks\skyscraper5.Gimmicks.IptvCollector\skyscraper5.Gimmicks.IptvCollector.csproj", "{8F17668C-623C-F9B3-EAD4-2922E5414B75}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper5.Gimmicks.IptvCollector", "Gimmicks\skyscraper5.Gimmicks.IptvCollector\skyscraper5.Gimmicks.IptvCollector.csproj", "{8F17668C-623C-F9B3-EAD4-2922E5414B75}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.Tests", "skyscraper8.Tests\skyscraper8.Tests.csproj", "{84EE9FCD-2C7F-DF84-C1BA-99D018CE9412}"
|
|
||||||
EndProject
|
|
||||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UIs", "UIs", "{E23457C5-3A34-48EE-8107-C91E2C174B2D}"
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UIs", "UIs", "{E23457C5-3A34-48EE-8107-C91E2C174B2D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper5.UI.WindowsForms", "GUIs\skyscraper5.UI\skyscraper5.UI.WindowsForms.csproj", "{46CACA1C-F9B2-2FE0-2068-716F381325E9}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper5.UI.WindowsForms", "GUIs\skyscraper5.UI\skyscraper5.UI.WindowsForms.csproj", "{46CACA1C-F9B2-2FE0-2068-716F381325E9}"
|
||||||
@ -67,6 +65,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.MonoGame", "
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.MonoGame.Bridge", "GUIs\skyscraper8.UI.ImGui.MonoGame.Bridge\skyscraper8.UI.MonoGame.Bridge.csproj", "{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.MonoGame.Bridge", "GUIs\skyscraper8.UI.ImGui.MonoGame.Bridge\skyscraper8.UI.MonoGame.Bridge.csproj", "{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.Tests", "skyscraper8.Tests\skyscraper8.Tests.csproj", "{011164D8-B6FF-4BAB-B78D-0A174FC691E8}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@ -141,10 +141,6 @@ Global
|
|||||||
{8F17668C-623C-F9B3-EAD4-2922E5414B75}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{8F17668C-623C-F9B3-EAD4-2922E5414B75}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{8F17668C-623C-F9B3-EAD4-2922E5414B75}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{8F17668C-623C-F9B3-EAD4-2922E5414B75}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{8F17668C-623C-F9B3-EAD4-2922E5414B75}.Release|Any CPU.Build.0 = Release|Any CPU
|
{8F17668C-623C-F9B3-EAD4-2922E5414B75}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{84EE9FCD-2C7F-DF84-C1BA-99D018CE9412}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{84EE9FCD-2C7F-DF84-C1BA-99D018CE9412}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{84EE9FCD-2C7F-DF84-C1BA-99D018CE9412}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{84EE9FCD-2C7F-DF84-C1BA-99D018CE9412}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
{46CACA1C-F9B2-2FE0-2068-716F381325E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{46CACA1C-F9B2-2FE0-2068-716F381325E9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{46CACA1C-F9B2-2FE0-2068-716F381325E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{46CACA1C-F9B2-2FE0-2068-716F381325E9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{46CACA1C-F9B2-2FE0-2068-716F381325E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{46CACA1C-F9B2-2FE0-2068-716F381325E9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
@ -169,6 +165,10 @@ Global
|
|||||||
{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}.Release|Any CPU.Build.0 = Release|Any CPU
|
{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{011164D8-B6FF-4BAB-B78D-0A174FC691E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{011164D8-B6FF-4BAB-B78D-0A174FC691E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{011164D8-B6FF-4BAB-B78D-0A174FC691E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{011164D8-B6FF-4BAB-B78D-0A174FC691E8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
@ -1,16 +1,21 @@
|
|||||||
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAllureContext_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fc09614b59cc98c343d268f55e356aaafe85d13755cd5ca217988e9c5362ff_003FAllureContext_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAllureFeatureAttribute_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F405349a6f42433abaa8b1d6d06bb6f21c66899533fa9f9648cb1cde8755143_003FAllureFeatureAttribute_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAllureFeatureAttribute_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F405349a6f42433abaa8b1d6d06bb6f21c66899533fa9f9648cb1cde8755143_003FAllureFeatureAttribute_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArray_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F6e_003Fd247db11_003FArray_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AArray_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F6e_003Fd247db11_003FArray_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssert_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F053cba69424c47858472194d509c3cdc12bb0_003F37_003F58cc70f4_003FAssert_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssert_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fa840692e98b74557bc005b38213a22c72dad0_003Fc8_003F58c2e0c9_003FAssert_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAssert_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fa840692e98b74557bc005b38213a22c72dad0_003Fc8_003F58c2e0c9_003FAssert_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADictionary_00602_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F83_003Fc73c45bc_003FDictionary_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ADictionary_00602_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F83_003Fc73c45bc_003FDictionary_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFileInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe1ab690537c44e02a014076312b886b7b2e200_003F5a_003Fcf76af61_003FFileInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AFileInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe1ab690537c44e02a014076312b886b7b2e200_003F5a_003Fcf76af61_003FFileInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AInterop_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Fea_003F7d70064b_003FInterop_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AInterop_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Fea_003F7d70064b_003FInterop_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F6b_003Fa410ee2c_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AList_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F6b_003Fa410ee2c_003FList_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMemberInfo_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Fce_003F751a2c1f_003FMemberInfo_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMemoryStream_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F0d_003F068af3a6_003FMemoryStream_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AMemoryStream_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F0d_003F068af3a6_003FMemoryStream_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullable_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F0d_003F6549c49b_003FNullable_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullable_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F0d_003F6549c49b_003FNullable_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullAsserts_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F3f4719f7ce375226774d6991a6afc2f6932e58b42fd58ff13c7c03771642e_003FNullAsserts_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ANullAsserts_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003F3f4719f7ce375226774d6991a6afc2f6932e58b42fd58ff13c7c03771642e_003FNullAsserts_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F55_003F6efc7017_003FObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AObject_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F55_003F6efc7017_003FObject_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AQueue_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Fb6_003F498e7c75_003FQueue_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AQueue_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Fb6_003F498e7c75_003FQueue_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ARuntimeInformation_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F4c_003F5f771d10_003FRuntimeInformation_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASafeFileHandle_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Fc6_003Fd8e0f2f2_003FSafeFileHandle_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASkip_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fd8c543d93f1559af2ea2be8e9d55839b5bb1a3605f22daa45ea63772e3b4bc_003FSkip_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ASkip_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FSourcesCache_003Fd8c543d93f1559af2ea2be8e9d55839b5bb1a3605f22daa45ea63772e3b4bc_003FSkip_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Feb_003F3c476997_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003Feb_003F3c476997_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe1ab690537c44e02a014076312b886b7b2e200_003F4f_003F7bfc5050_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AThrowHelper_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fe1ab690537c44e02a014076312b886b7b2e200_003F4f_003F7bfc5050_003FThrowHelper_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
@ -18,11 +23,17 @@
|
|||||||
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATuple_00602_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F9f_003F0d16f921_003FTuple_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATuple_00602_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002Econfig_003FJetBrains_003FRider2025_002E1_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F57d616db882b441b8c50720b4477e03db2e200_003F9f_003F0d16f921_003FTuple_00602_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
|
||||||
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue"><AssemblyExplorer>
|
<s:String x:Key="/Default/Environment/AssemblyExplorer/XmlDocument/@EntryValue"><AssemblyExplorer>
|
||||||
<Assembly Path="/home/schiemas/.dotnet/packs/Microsoft.NETCore.App.Ref/8.0.21/ref/net8.0/System.Windows.dll" />
|
<Assembly Path="/home/schiemas/.dotnet/packs/Microsoft.NETCore.App.Ref/8.0.21/ref/net8.0/System.Windows.dll" />
|
||||||
|
<Assembly Path="/home/schiemas/.nuget/packages/allure.net.commons/2.14.1/lib/netstandard2.0/Allure.Net.Commons.dll" />
|
||||||
</AssemblyExplorer></s:String>
|
</AssemblyExplorer></s:String>
|
||||||
<s:String x:Key="/Default/Environment/Highlighting/HighlightingSourceSnapshotLocation/@EntryValue">/home/schiemas/.cache/JetBrains/Rider2025.1/resharper-host/temp/Rider/vAny/CoverageData/_skyscraper8.1808907683/Snapshot/snapshot.utdcvr</s:String>
|
<s:String x:Key="/Default/Environment/Highlighting/HighlightingSourceSnapshotLocation/@EntryValue">/home/schiemas/.cache/JetBrains/Rider2025.1/resharper-host/temp/Rider/vAny/CoverageData/_skyscraper8.1808907683/Snapshot/snapshot.utdcvr</s:String>
|
||||||
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=92c8346e_002D5416_002D4320_002Dab1d_002D051307b205cd/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" Name="All tests from &lt;skyscraper8.Tests&gt; #2" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
|
<Project Location="/home/schiemas/RiderProjects/skyscraper8/skyscraper8.Tests" Presentation="&lt;skyscraper8.Tests&gt;" />
|
||||||
|
</SessionState></s:String>
|
||||||
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=94eea68c_002Dcaa0_002D4657_002Da521_002D7b96c8ead0ec/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from &lt;skyscraper8.Tests&gt;" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=94eea68c_002Dcaa0_002D4657_002Da521_002D7b96c8ead0ec/@EntryIndexedValue"><SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from &lt;skyscraper8.Tests&gt;" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
|
||||||
<Project Location="/home/schiemas/RiderProjects/skyscraper8/skyscraper8.Tests" Presentation="&lt;skyscraper8.Tests&gt;" />
|
<Project Location="/home/schiemas/RiderProjects/skyscraper8/skyscraper8.Tests" Presentation="&lt;skyscraper8.Tests&gt;" />
|
||||||
</SessionState></s:String>
|
</SessionState></s:String>
|
||||||
|
|
||||||
|
|
||||||
<s:String x:Key="/Default/Profiling/Configurations/=1/@EntryIndexedValue"><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></s:String></wpf:ResourceDictionary>
|
<s:String x:Key="/Default/Profiling/Configurations/=1/@EntryIndexedValue"><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></s:String>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/CheckedGroups/=skyscraper8_002ETests_002FResources1/@EntryIndexedValue">True</s:Boolean>
|
||||||
|
<s:Boolean x:Key="/Default/ResxEditorPersonal/Initialized/@EntryValue">True</s:Boolean></wpf:ResourceDictionary>
|
||||||
|
|||||||
@ -30,8 +30,6 @@ namespace skyscraper5.Docsis
|
|||||||
{
|
{
|
||||||
Type type = this.GetType();
|
Type type = this.GetType();
|
||||||
object[] customAttributes = type.GetCustomAttributes(typeof(MacManagementMessageTypeAttribute), false);
|
object[] customAttributes = type.GetCustomAttributes(typeof(MacManagementMessageTypeAttribute), false);
|
||||||
if (customAttributes == null)
|
|
||||||
return null;
|
|
||||||
if (customAttributes.Length == 0)
|
if (customAttributes.Length == 0)
|
||||||
return null;
|
return null;
|
||||||
MacManagementMessageTypeAttribute attribute = (MacManagementMessageTypeAttribute)customAttributes[0];
|
MacManagementMessageTypeAttribute attribute = (MacManagementMessageTypeAttribute)customAttributes[0];
|
||||||
|
|||||||
33
skyscraper8/Docsis/NullDocsisEventHandler.cs
Normal file
33
skyscraper8/Docsis/NullDocsisEventHandler.cs
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
using System.Net;
|
||||||
|
using System.Net.NetworkInformation;
|
||||||
|
using skyscraper5.Docsis.MacManagement;
|
||||||
|
|
||||||
|
namespace skyscraper5.Docsis;
|
||||||
|
|
||||||
|
public class NullDocsisEventHandler : IDocsisEventHandler
|
||||||
|
{
|
||||||
|
public void OnParticipantDetected(PhysicalAddress pa)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnCmtsTimestamp(PhysicalAddress source, uint timing)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnUpstreamChannel(UpstreamChannelDescriptor mmm)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnDownstreamChannel(PhysicalAddress physicalAddress, MacDomainDescriptor.DownstreamActiveChannel downstreamActiveChannel)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnLearnedIpFromMac(PhysicalAddress arpHeaderSenderHardwareAddress, IPAddress arpHeaderSenderProtocolAddress)
|
||||||
|
{
|
||||||
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -42,7 +42,7 @@ namespace skyscraper5
|
|||||||
class Program
|
class Program
|
||||||
{
|
{
|
||||||
private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name);
|
private static readonly ILog logger = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name);
|
||||||
private const int PUBLIC_RELEASE = 13;
|
|
||||||
private static void IntegrationTest()
|
private static void IntegrationTest()
|
||||||
{
|
{
|
||||||
/*List<SsdpDevice> ssdpDevices = SsdpClient.GetSsdpDevices(1000).ToList();
|
/*List<SsdpDevice> ssdpDevices = SsdpClient.GetSsdpDevices(1000).ToList();
|
||||||
@ -85,7 +85,7 @@ namespace skyscraper5
|
|||||||
{
|
{
|
||||||
IntegrationTest();
|
IntegrationTest();
|
||||||
|
|
||||||
logger.InfoFormat(String.Format("Hello! This is skyscraper8, public release #{0}, code version {1}", PUBLIC_RELEASE, GetCurrentAssemblyDisplayVersion()));
|
logger.InfoFormat(String.Format("Hello! This is skyscraper8, public release #{0}, code version {1}", VersionInfo.GetPublicReleaseNumber(), VersionInfo.GetCurrentAssemblyDisplayVersion()));
|
||||||
|
|
||||||
logger.DebugFormat("Found {0}-bit Operating system.", Environment.Is64BitOperatingSystem ? 64 : 32);
|
logger.DebugFormat("Found {0}-bit Operating system.", Environment.Is64BitOperatingSystem ? 64 : 32);
|
||||||
logger.DebugFormat("I'm a {0}-bit Process.", Environment.Is64BitProcess ? 64 : 32);
|
logger.DebugFormat("I'm a {0}-bit Process.", Environment.Is64BitProcess ? 64 : 32);
|
||||||
@ -928,23 +928,5 @@ namespace skyscraper5
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static string GetCurrentAssemblyDisplayVersion()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Assembly executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
|
|
||||||
AssemblyName assemblyName = executingAssembly.GetName();
|
|
||||||
Version version = assemblyName.Version;
|
|
||||||
DateTime buildDate = new DateTime(2000, 1, 1)
|
|
||||||
.AddDays(version.Build).AddSeconds(version.Revision * 2);
|
|
||||||
string displayableVersion = $"{version} ({buildDate})";
|
|
||||||
return displayableVersion;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
return "???";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -102,6 +102,13 @@ namespace skyscraper8.Skyscraper
|
|||||||
readError = 1;
|
readError = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (buffer[0] != 'G')
|
||||||
|
{
|
||||||
|
logger.ErrorFormat("{0} is not a valid Transport Stream file.", fi.Name);
|
||||||
|
readError = 3;
|
||||||
|
break;
|
||||||
|
}
|
||||||
tsContext.PushPacket(buffer);
|
tsContext.PushPacket(buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
31
skyscraper8/VersionInfo.cs
Normal file
31
skyscraper8/VersionInfo.cs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
namespace skyscraper8;
|
||||||
|
|
||||||
|
public class VersionInfo
|
||||||
|
{
|
||||||
|
private const int PUBLIC_RELEASE = 13;
|
||||||
|
|
||||||
|
public static int GetPublicReleaseNumber()
|
||||||
|
{
|
||||||
|
return PUBLIC_RELEASE;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetCurrentAssemblyDisplayVersion()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Assembly executingAssembly = typeof(VersionInfo).GetTypeInfo().Assembly;
|
||||||
|
AssemblyName assemblyName = executingAssembly.GetName();
|
||||||
|
Version version = assemblyName.Version;
|
||||||
|
DateTime buildDate = new DateTime(2000, 1, 1)
|
||||||
|
.AddDays(version.Build).AddSeconds(version.Revision * 2);
|
||||||
|
string displayableVersion = $"{version} ({buildDate})";
|
||||||
|
return displayableVersion;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
return "???";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user