⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 register_test.cpp

📁 浙江大学的悟空嵌入式系统模拟器
💻 CPP
字号:
#include "stdafx.h"
#include ".\register_test.h"

using namespace std;

Register_Test::Register_Test(void)
{
}

Register_Test::~Register_Test(void)
{
}

void Register_Test::setUp()
{
	r0 = new Core::Register(32);	
}

void Register_Test::tearDown()
{
	delete r0;
}

void Register_Test::test_set_and_test()
{
	cout<<"set_and_test"<<endl;
	r0->convert_from_int(0x00000000);

	r0->set(8, 15, 1);
	CPPUNIT_ASSERT_EQUAL((u32)0x0000ff00,r0->convert_to_int());
	r0->set(8, 11, 0);
	CPPUNIT_ASSERT_EQUAL((u32)0x0000f000,r0->convert_to_int());

}

void Register_Test::test_convert()
{
	cout<<"convert"<<endl;

	r0->convert_from_int(0xffffffff);
	CPPUNIT_ASSERT_EQUAL((u32)0xffffffff,r0->convert_to_int());

	r0->convert_from_int(0x00000000);
	CPPUNIT_ASSERT_EQUAL((u32)0x00000000,r0->convert_to_int());

	r0->convert_from_int(0xfedc9876);
	CPPUNIT_ASSERT_EQUAL((u32)0xfedc9876,r0->convert_to_int());

	CPPUNIT_ASSERT_EQUAL((u32)0x6, r0->convert_to_int(0, 3));
	CPPUNIT_ASSERT_EQUAL((u32)0x7, r0->convert_to_int(4, 7));
	CPPUNIT_ASSERT_EQUAL((u32)0x8, r0->convert_to_int(8, 11));
	CPPUNIT_ASSERT_EQUAL((u32)0x9, r0->convert_to_int(12, 15));
	CPPUNIT_ASSERT_EQUAL((u32)0xc, r0->convert_to_int(16, 19));
	CPPUNIT_ASSERT_EQUAL((u32)0xd, r0->convert_to_int(20, 23));
	CPPUNIT_ASSERT_EQUAL((u32)0xe, r0->convert_to_int(24, 27));
	CPPUNIT_ASSERT_EQUAL((u32)0xf, r0->convert_to_int(28, 31));
}

#ifdef WIN32
#pragma warning (disable: 4267)
#endif

void Register_Test::test_bank()
{

	cout<<"bank"<<endl;

	cfg.clear();
	Register_File::append_profile(cfg, "r0", Register_File::REGISTER_32BIT);
	Register_File::append_profile(cfg, "r1", Register_File::REGISTER_32BIT);
	Register_File::append_profile(cfg, "r2", Register_File::REGISTER_32BIT);
	Register_File::append_profile(cfg, "fp", Register_File::REGISTER_32BIT);
	Register_File::append_profile(cfg, "pc", Register_File::REGISTER_16BIT);
	b0.configurate(cfg);

	CPPUNIT_ASSERT_EQUAL((size_t)32, b0.get_register(2).size());
	CPPUNIT_ASSERT_EQUAL((size_t)16, b0.get_register(4).size());

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -