remove space_map_t
This commit is contained in:
		@@ -24,8 +24,6 @@ TEST_SOURCE=\
 | 
				
			|||||||
	unit-tests/space_map_disk_t.cc \
 | 
						unit-tests/space_map_disk_t.cc \
 | 
				
			||||||
	unit-tests/transaction_manager_t.cc
 | 
						unit-tests/transaction_manager_t.cc
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#	unit-tests/space_map_t.cc \
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
TEST_PROGRAMS=$(subst .cc,,$(TEST_SOURCE))
 | 
					TEST_PROGRAMS=$(subst .cc,,$(TEST_SOURCE))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unit-test: $(TEST_PROGRAMS)
 | 
					unit-test: $(TEST_PROGRAMS)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,95 +0,0 @@
 | 
				
			|||||||
// Copyright (C) 2011 Red Hat, Inc. All rights reserved.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// This file is part of the thin-provisioning-tools source.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// thin-provisioning-tools is free software: you can redistribute it
 | 
					 | 
				
			||||||
// and/or modify it under the terms of the GNU General Public License
 | 
					 | 
				
			||||||
// as published by the Free Software Foundation, either version 3 of
 | 
					 | 
				
			||||||
// the License, or (at your option) any later version.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// thin-provisioning-tools is distributed in the hope that it will be
 | 
					 | 
				
			||||||
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
 | 
					 | 
				
			||||||
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
					 | 
				
			||||||
// GNU General Public License for more details.
 | 
					 | 
				
			||||||
//
 | 
					 | 
				
			||||||
// You should have received a copy of the GNU General Public License along
 | 
					 | 
				
			||||||
// with thin-provisioning-tools.  If not, see
 | 
					 | 
				
			||||||
// <http://www.gnu.org/licenses/>.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#include "persistent-data/space_map.h"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#define BOOST_TEST_MODULE SpaceMapTests
 | 
					 | 
				
			||||||
#include <boost/test/included/unit_test.hpp>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
using namespace std;
 | 
					 | 
				
			||||||
using namespace boost;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
unsigned const NR_BLOCKS = 1024;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
//----------------------------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOST_AUTO_TEST_CASE(test_get_nr_blocks)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	core_map sm(NR_BLOCKS);
 | 
					 | 
				
			||||||
	BOOST_CHECK_EQUAL(sm.get_nr_blocks(), NR_BLOCKS);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOST_AUTO_TEST_CASE(test_get_nr_free)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	core_map sm(NR_BLOCKS);
 | 
					 | 
				
			||||||
	BOOST_CHECK_EQUAL(sm.get_nr_free(), NR_BLOCKS);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (unsigned i = 0; i < NR_BLOCKS; i++) {
 | 
					 | 
				
			||||||
		sm.new_block();
 | 
					 | 
				
			||||||
		BOOST_CHECK_EQUAL(sm.get_nr_free(), NR_BLOCKS - i - 1);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (unsigned i = 0; i < NR_BLOCKS; i++) {
 | 
					 | 
				
			||||||
		sm.dec(i);
 | 
					 | 
				
			||||||
		BOOST_CHECK_EQUAL(sm.get_nr_free(), i + 1);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOST_AUTO_TEST_CASE(test_throws_no_space)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	core_map sm(NR_BLOCKS);
 | 
					 | 
				
			||||||
	for (unsigned i = 0; i < NR_BLOCKS; i++)
 | 
					 | 
				
			||||||
		sm.new_block();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	BOOST_CHECK_THROW(sm.new_block(), std::runtime_error);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOST_AUTO_TEST_CASE(test_inc_and_dec)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	core_map sm(NR_BLOCKS);
 | 
					 | 
				
			||||||
	block_address b = 63;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (unsigned i = 0; i < 50; i++) {
 | 
					 | 
				
			||||||
		BOOST_CHECK_EQUAL(sm.get_count(b), i);
 | 
					 | 
				
			||||||
		sm.inc(b);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	for (unsigned i = 50; i > 0; i--) {
 | 
					 | 
				
			||||||
		BOOST_CHECK_EQUAL(sm.get_count(b), i);
 | 
					 | 
				
			||||||
		sm.dec(b);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOST_AUTO_TEST_CASE(test_not_allocated_twice)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	core_map sm(NR_BLOCKS);
 | 
					 | 
				
			||||||
	block_address b = sm.new_block();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	try {
 | 
					 | 
				
			||||||
		for (;;)
 | 
					 | 
				
			||||||
			BOOST_CHECK(sm.new_block() != b);
 | 
					 | 
				
			||||||
	} catch (...) {
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BOOST_AUTO_TEST_CASE(test_set_count)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	core_map sm(NR_BLOCKS);
 | 
					 | 
				
			||||||
	sm.set_count(43, 5);
 | 
					 | 
				
			||||||
	BOOST_CHECK_EQUAL(sm.get_count(43), 5);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user