Esempio n. 1
0
        public void TestAllocAssignGetAndRelease()
        {
            var pool = new IlInstanceHolderPool(typeof(int), 16);
            var item = pool.Alloc();

            item.Value = 10;
            Assert.Equal(10, item.Value);
            Assert.Equal(15, pool.FreeCount);
            item.Free();
            Assert.Equal(16, pool.FreeCount);
        }
Esempio n. 2
0
        public void TestMethod3()
        {
            var pool1 = new IlInstanceHolderPool(typeof(int), 16);
            var pool2 = new IlInstanceHolderPool(typeof(int), 16);
            var item1 = pool1.Alloc();
            var item2 = pool2.Alloc();

            item1.Value = 11;
            item2.Value = 22;
            Assert.Equal(11, item1.Value);
            Assert.Equal(22, item2.Value);
        }
Esempio n. 3
0
        public void TestMethod2()
        {
            var pool    = new IlInstanceHolderPool(typeof(int), 16);
            var item    = pool.Alloc();
            var astNode = ast.Statements(
                ast.Assign(ast.StaticFieldAccess(item.FieldInfo), ast.Argument <int>(0, "Value")),
                ast.Return()
                );

            _testOutputHelper.WriteLine(GeneratorCSharp.GenerateString <GeneratorCSharp>(astNode));
            var generatorIl = new GeneratorIl();
            var itemSet     = generatorIl.GenerateDelegate <Action <int> >("ItemSet", astNode);

            itemSet(10);
            Assert.Equal(10, item.Value);
        }