protected void RunTest(string cSharpCode, params GeneratedType[] generatedTypes)
        {
            var(isSuccess, compilerMessages) = TestCompiler.Compile(cSharpCode, new []
            {
                typeof(Unity.Entities.SystemBase),
                typeof(Unity.Burst.BurstCompileAttribute),
                typeof(Unity.Mathematics.float3),
                typeof(Unity.Collections.ReadOnlyAttribute),
                typeof(Unity.Collections.LowLevel.Unsafe.UnsafeUtility)
            });

            if (!isSuccess)
            {
                Assert.Fail($"Compilation failed with errors {string.Join(Environment.NewLine, compilerMessages.Select(msg => msg.message))}");
            }

            RunSourceGenerationTest(generatedTypes, Path.Combine(TestCompiler.DirectoryForTestDll, TestCompiler.OutputDllName));
            TestCompiler.CleanUp();
        }