diff --git a/SharpGen.E2ETests/RenameTests.cs b/SharpGen.E2ETests/RenameTests.cs index 608f1f43..747c74a0 100644 --- a/SharpGen.E2ETests/RenameTests.cs +++ b/SharpGen.E2ETests/RenameTests.cs @@ -82,7 +82,46 @@ struct Test { var compilation = GetCompilationForGeneratedCode(); var structType = compilation.GetTypeByMetadataName($"{nameof(MappingNameRuleRenamesStructMember)}.Test"); - Assert.Equal(1, structType.GetMembers("MyField").Length); + Assert.Single(structType.GetMembers("MyField")); + } + + [Fact] + public void MarkingMappingFinalPreservesUnderscore() + { + var testDirectory = GenerateTestDirectory(); + var config = new Config.ConfigFile + { + Namespace = nameof(MarkingMappingFinalPreservesUnderscore), + Assembly = nameof(MarkingMappingFinalPreservesUnderscore), + IncludeDirs = { GetTestFileIncludeRule() }, + Includes = + { + CreateCppFile("simpleStruct", @" + struct Test { + int _testfield; + }; + ") + }, + Bindings = + { + new Config.BindRule("int", "System.Int32") + }, + Mappings = + { + new Config.MappingRule + { + Field = "Test::_testfield", + MappingName = "_field", + IsFinalMappingName = true + } + } + }; + var result = RunWithConfig(config); + AssertRanSuccessfully(result.success, result.output); + + var compilation = GetCompilationForGeneratedCode(); + var structType = compilation.GetTypeByMetadataName($"{nameof(MarkingMappingFinalPreservesUnderscore)}.Test"); + Assert.Single(structType.GetMembers("_field")); } } }