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++.");
}
}