Skip to content

Commit 3675b80

Browse files
committed
Add null termination test
1 parent 26d58ed commit 3675b80

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

src/Lumina.Tests/SeStringBuilderTests.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,24 @@ public void AddonIsParsedCorrectly()
443443
}
444444
}
445445

446+
[Fact]
447+
public unsafe void SpanViewNullTerminationTest()
448+
{
449+
var test = new SeStringBuilder()
450+
.AppendBold( "Test" )
451+
.Append( "Asdf" )
452+
.AppendItalicized( "Aaaaa" );
453+
var expected =
454+
"\x02\x19\x02\x02\x03"u8 + "Test"u8 + "\x02\x19\x02\x01\x03"u8 +
455+
"Asdf"u8 +
456+
"\x02\x1A\x02\x02\x03"u8 + "Aaaaa"u8 + "\x02\x1A\x02\x01\x03"u8;
457+
458+
var span = test.GetViewAsSpan();
459+
Assert.True( span.SequenceEqual( expected ) );
460+
fixed( byte* p = span )
461+
Assert.Equal( 0 , p[ span.Length ]);
462+
}
463+
446464
[Fact]
447465
public unsafe void InterpolationHandlerTest1()
448466
{
@@ -600,8 +618,7 @@ public void AllSheetsTextColumnCodec()
600618
var languages = header?.Languages ?? [Language.None];
601619
foreach( var language in languages )
602620
{
603-
if( gameData.Excel.GetSheet<RawRow>( language, sheetName ) is not { } sheet )
604-
continue;
621+
var sheet = gameData.Excel.GetSheet< RawRow >( language, sheetName );
605622

606623
var stringColumns = sheet.Columns.Where( c => c.Type == ExcelColumnDataType.String ).Select( c => c.Offset ).ToArray();
607624
foreach( var row in sheet )

0 commit comments

Comments
 (0)