docs: backfill XML documentation across 756 files
v2-ci / build (push) Failing after 1m43s
v2-ci / unit-tests (tests/Core/ZB.MOM.WW.OtOpcUa.Cluster.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.ControlPlane.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Runtime.Tests) (push) Has been skipped
v2-ci / unit-tests (tests/Server/ZB.MOM.WW.OtOpcUa.Security.Tests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.Host.IntegrationTests) (push) Has been skipped
v2-ci / integration (tests/Server/ZB.MOM.WW.OtOpcUa.OpcUaServer.IntegrationTests) (push) Has been skipped

Adds <summary>, <param>, <typeparam>, and <inheritdoc/> tags to public
members surfaced by commentchecker — resolves 5,847 of 5,869 issues
(99.6%) across three /fixdocs passes.
This commit is contained in:
Joseph Doherty
2026-05-28 08:10:17 -04:00
parent f9fc7dd2e1
commit 64e3fbe035
756 changed files with 9876 additions and 96 deletions
@@ -14,8 +14,16 @@ public sealed class ModbusBitRmwTests
public readonly ushort[] HoldingRegisters = new ushort[256];
public readonly List<byte[]> Pdus = new();
/// <summary>Connects asynchronously (no-op for fake).</summary>
/// <param name="ct">Cancellation token (unused).</param>
/// <returns>A completed task.</returns>
public Task ConnectAsync(CancellationToken ct) => Task.CompletedTask;
/// <summary>Sends a Modbus PDU and returns a response.</summary>
/// <param name="unitId">The Modbus unit ID (unused).</param>
/// <param name="pdu">The protocol data unit to send.</param>
/// <param name="ct">Cancellation token (unused).</param>
/// <returns>A task containing the response PDU.</returns>
public Task<byte[]> SendAsync(byte unitId, byte[] pdu, CancellationToken ct)
{
Pdus.Add(pdu);
@@ -45,6 +53,8 @@ public sealed class ModbusBitRmwTests
return Task.FromException<byte[]>(new NotSupportedException($"FC 0x{pdu[0]:X2} not supported by fake"));
}
/// <summary>Disposes asynchronously (no-op for fake).</summary>
/// <returns>A completed task.</returns>
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}
@@ -60,6 +70,7 @@ public sealed class ModbusBitRmwTests
return (new ModbusDriver(opts, "modbus-1", _ => fake), fake);
}
/// <summary>Verifies that setting a bit reads the current register, ORs the bit, and writes back.</summary>
[Fact]
public async Task Bit_set_reads_current_register_ORs_bit_writes_back()
{
@@ -78,6 +89,7 @@ public sealed class ModbusBitRmwTests
fake.Pdus[1][0].ShouldBe((byte)0x06);
}
/// <summary>Verifies that clearing a bit reads the current register, ANDs the bit off, and writes back.</summary>
[Fact]
public async Task Bit_clear_reads_current_register_ANDs_bit_off_writes_back()
{
@@ -91,6 +103,7 @@ public sealed class ModbusBitRmwTests
fake.HoldingRegisters[10].ShouldBe((ushort)0b1111_1111_1111_0111); // bit 3 cleared, rest preserved
}
/// <summary>Verifies that concurrent bit writes to the same register preserve all updates via serialization.</summary>
[Fact]
public async Task Concurrent_bit_writes_to_same_register_preserve_all_updates()
{
@@ -109,6 +122,7 @@ public sealed class ModbusBitRmwTests
fake.HoldingRegisters[20].ShouldBe((ushort)0xFF); // all 8 bits set
}
/// <summary>Verifies that bit writes to different registers proceed in parallel without contention.</summary>
[Fact]
public async Task Bit_write_on_different_registers_proceeds_in_parallel_without_contention()
{
@@ -125,6 +139,7 @@ public sealed class ModbusBitRmwTests
fake.HoldingRegisters[50 + i].ShouldBe((ushort)0x01);
}
/// <summary>Verifies that bit writes preserve other bits in the same register.</summary>
[Fact]
public async Task Bit_write_preserves_other_bits_in_the_same_register()
{