1 // 2 // Copyright (c) 2010-2018 Antmicro 3 // Copyright (c) 2011-2015 Realtime Embedded 4 // 5 // This file is licensed under the MIT License. 6 // Full license text is available in 'licenses/MIT.txt'. 7 // 8 using Antmicro.Renode.Core; 9 using Antmicro.Renode.Peripherals; 10 using NUnit.Framework; 11 using Antmicro.Renode.Exceptions; 12 using Antmicro.Renode.Peripherals.Bus; 13 using Antmicro.Renode.Peripherals.Memory; 14 15 namespace Antmicro.Renode.UnitTests 16 { 17 [TestFixture] 18 public class PeripheralsGroupTests 19 { 20 [Test] ShouldNotUnregisterSinglePeripheralFromGroup()21 public void ShouldNotUnregisterSinglePeripheralFromGroup() 22 { 23 using(var machine = new Machine()) 24 { 25 var peripheral = new MappedMemory(machine, 10); 26 machine.SystemBus.Register(peripheral, new BusPointRegistration(0x0)); 27 machine.SystemBus.Unregister(peripheral); 28 29 machine.SystemBus.Register(peripheral, new BusPointRegistration(0x0)); 30 machine.PeripheralsGroups.GetOrCreate("test-group", new [] { peripheral }); 31 32 try 33 { 34 machine.SystemBus.Unregister(peripheral); 35 } 36 catch (RegistrationException) 37 { 38 return; 39 } 40 41 Assert.Fail(); 42 } 43 } 44 45 [Test] ShouldUnregisterPeripheralGroups()46 public void ShouldUnregisterPeripheralGroups() 47 { 48 using(var machine = new Machine()) 49 { 50 var peripheral = new MappedMemory(machine, 10); 51 machine.SystemBus.Register(peripheral, new BusPointRegistration(0x0)); 52 var group = machine.PeripheralsGroups.GetOrCreate("test-group", new [] { peripheral }); 53 Assert.IsTrue(machine.IsRegistered(peripheral)); 54 group.Unregister(); 55 Assert.IsFalse(machine.IsRegistered(peripheral)); 56 } 57 } 58 59 [Test] ShouldNotAddUnregisteredPeripheralToGroup()60 public void ShouldNotAddUnregisteredPeripheralToGroup() 61 { 62 using(var machine = new Machine()) 63 { 64 try 65 { 66 machine.PeripheralsGroups.GetOrCreate("test-group", new [] { new MappedMemory(machine, 10) }); 67 } 68 catch (RegistrationException) 69 { 70 return; 71 } 72 73 Assert.Fail(); 74 } 75 } 76 } 77 } 78 79