public void SysV_LoadTrashedRegisters() { arch.Stub(a => a.GetRegister((string)null)).IgnoreArguments() .Do(new Func <string, RegisterStorage>(r => new RegisterStorage(r, (int)r[1], 0, PrimitiveType.Word32))); var env = new OperatingEnvironmentElement { Architectures = { new PlatformArchitectureElement { TrashedRegisters = { "r2", "r3" } } } }; Given_EnvironmentConfiguration(env); mr.ReplayAll(); var sysv = new SysVPlatform(sc, arch); var regs = sysv.CreateTrashedRegisters(); Assert.AreEqual(2, regs.Count); Assert.AreEqual("r2,r3", string.Join(",", regs.Select(r => r.Name))); }
public void SysV_LoadTrashedRegisters() { arch.Setup(a => a.Name).Returns("mmix"); arch.Setup(a => a.GetRegister(It.IsAny <string>())) .Returns((string r) => new RegisterStorage(r, (int)r[1], 0, PrimitiveType.Word32)); var env = new PlatformDefinition { Architectures = { new PlatformArchitectureDefinition() { Name = "mmix", TrashedRegisters = { "r2", "r3" } } } }; Given_EnvironmentConfiguration(env); var sysv = new SysVPlatform(sc, arch.Object); var regs = sysv.CreateTrashedRegisters(); Assert.AreEqual(2, regs.Count); Assert.AreEqual("r2,r3", string.Join(",", regs.Select(r => r.Name))); }