using System; using NUnit.Framework; using UnityEditor.Il2Cpp; /// /// EditMode tests for the Linux x86_64 toolchain package. /// /// /// Verifies construction, a non-null payload path, that compiler flags are not /// provided by this toolchain-only package, and that linker flags include both /// -fuse-ld=… and -static-libstdc++. /// /// class LinuxToolchainTest { /// /// Ensures the toolchain package can be instantiated without throwing. /// [Test] public void TestPackageInitialization() { Assert.NotNull(new ToolchainLinuxX86_64()); } /// /// Confirms the package reports a payload path string. /// /// /// This test only checks for a non-null string; it does not assert the path exists on disk. /// [Test] public void TestPayloadExtracted() { var toolchainPackage = new ToolchainLinuxX86_64(); Assert.NotNull(toolchainPackage.PathToPayload()); } /// /// Verifies that no compiler flags are emitted by the toolchain package. /// [Test] public void TestIL2CPPCompilerFlags() { var toolchainPackage = new ToolchainLinuxX86_64(); Assert.Null(toolchainPackage.GetIl2CppCompilerFlags()); } /// /// Checks that the linker flags include both the linker selection and static libstdc++. /// [Test] public void TestIL2CPPLinkerFlags() { var toolchainPackage = new ToolchainLinuxX86_64(); string linkerflags = toolchainPackage.GetIl2CppLinkerFlags(); bool containsFuseLd = linkerflags.Contains("-fuse-ld=", StringComparison.Ordinal); bool containsStaticCpp = linkerflags.Contains("-static-libstdc++", StringComparison.Ordinal); Assert.IsTrue(containsFuseLd && containsStaticCpp, "Linker flags should include both -fuse-ld=… and -static-libstdc++."); } }