public void AtomicIntegerArray_Load_Should_Success() { var atomicIntegerArray = new AtomicIntegerArray(new []{100}); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.Relaxed)); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.Acquire)); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.AcqRel)); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.SeqCst)); }
public void AtomicIntegerArray_Load_Should_Fail() { var atomicIntegerArray = new AtomicIntegerArray(new [] { 100 }); Assert.Throws <InvalidOperationException>(() => atomicIntegerArray.Load(0, MemoryOrder.Release)); #pragma warning disable 618 Assert.Throws <NotSupportedException>(() => atomicIntegerArray.Load(0, MemoryOrder.Consume)); #pragma warning restore 618 }
public void AtomicIntegerArray_Load_Should_Success() { var atomicIntegerArray = new AtomicIntegerArray(new [] { 100 }); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.Relaxed)); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.Acquire)); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.AcqRel)); Assert.Equal(100, atomicIntegerArray.Load(0, MemoryOrder.SeqCst)); }
public void AtomicIntegerArray_Load_Acquire_Should_Success(MemoryOrder order) { var atomicIntegerArray = new AtomicIntegerArray(new int[3], order); for (int i = 0; i < atomicIntegerArray.Count; i++) { Assert.Equal(0, atomicIntegerArray.Load(i, MemoryOrder.Acquire)); atomicIntegerArray.Store(i, i, MemoryOrder.Release); } for (int i = 0; i < atomicIntegerArray.Count; i++) { Assert.Equal(i, atomicIntegerArray.Load(i, MemoryOrder.Acquire)); } }
public void AtomicIntegerArray_Store_MemoryOrder_Should_Success(MemoryOrder order) { var atomicIntegerArray = new AtomicIntegerArray(new int[3], order); for (int i = 0; i < atomicIntegerArray.Count; i++) { atomicIntegerArray.Store(i, i, order); } for (int i = 0; i < atomicIntegerArray.Count; i++) { Assert.Equal(i, atomicIntegerArray.Load(i, order)); } for (int i = 0; i < atomicIntegerArray.Count; i++) { atomicIntegerArray.Store(i, i, order); } for (int i = 0; i < atomicIntegerArray.Count; i++) { Assert.Equal(i, atomicIntegerArray.Load(i, order)); } }
public void AtomicIntegerArray_Load_Should_Fail() { var atomicIntegerArray = new AtomicIntegerArray(new []{100}); Assert.Throws<InvalidOperationException>(() => atomicIntegerArray.Load(0, MemoryOrder.Release)); #pragma warning disable 618 Assert.Throws<NotSupportedException>(() => atomicIntegerArray.Load(0, MemoryOrder.Consume)); #pragma warning restore 618 }