📄 atr_test.cpp
字号:
#include "ATR_Test.h"
static std::string arch_name = "ARM";
static std::string conf_file = "AT91X40.conf";
static std::string binary_file_1 = "1.bin";
static std::string binary_file_2 = "2.bin";
static std::string binary_file_3 = "3.bin";
static std::string binary_file_4 = "4.bin";
static std::string binary_file_5 = "5.bin";
static std::string binary_file_6 = "6.bin";
static std::string binary_file_7 = "7.bin";
static std::string binary_file_8 = "8.bin";
static std::string binary_file_9 = "9.bin";
static std::string binary_file_10 = "10.bin";
static std::string binary_file_11 = "11.bin";
static std::string binary_file_12 = "12.bin";
static std::string binary_file_13 = "13.bin";
static std::string binary_file_14 = "14.bin";
static std::string binary_file_15 = "15.bin";
static std::string binary_file_16 = "16.bin";
static std::string binary_file_17 = "17.bin";
static std::string binary_file_18 = "18.bin";
static std::string binary_file_19 = "19.bin";
CPPUNIT_TEST_SUITE_REGISTRATION( ATR_Test );
void ATR_Test::setUp()
{
Core::Wukong_Get_System().load_config(arch_name, conf_file);
Core::Config_File * cf = Core::Wukong_Get_System().get_config();
std::string cpu_name, board_name, loader_name;
cf->read("/cpu/name", cpu_name);
cf->read("/board/name", board_name);
cf->read("/loader/name", loader_name);
Core::Module * cpu = Core::Module_Manager::create_module(cpu_name);
Core::Module * board = Core::Module_Manager::create_module(board_name);
loader = Core::Module_Manager::create_module(loader_name);
Core::Wukong_Get_System().install_cpu((Core::Part *)cpu);
Core::Wukong_Get_System().install_board((Core::Part *)board);
Core::Wukong_Get_System().install_loader((Core::Binary_Loader *)loader);
}
void ATR_Test::tearDown()
{
}
void ATR_Test::test_DP()
{
Core::u32 r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r13,r14,r15,cpsr;
Core::Bytecode_Type buffer;
Core::u32 value;
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_1);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->run();
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(r6 == 0x80000000);
CPPUNIT_ASSERT(r7 == 0xffffffff);
CPPUNIT_ASSERT(r8 == 0x7fffffff);
CPPUNIT_ASSERT(r9 == 0xfffffffe);
CPPUNIT_ASSERT(r10 == 0xbffffffe);
CPPUNIT_ASSERT(cpsr == 0x90000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_2);
( (Core::CPU_32Bit *)Core::Wukong_Get_System().get_cpu() )->run();
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(r0 == 0x80000000);
CPPUNIT_ASSERT(r1 == 0x00000001);
CPPUNIT_ASSERT(r2 == 0x7fffffff);
CPPUNIT_ASSERT(r3 == 0x00000001);
CPPUNIT_ASSERT(r4 == 0x00000002);
CPPUNIT_ASSERT(r5 == 0x00000001);
CPPUNIT_ASSERT(r6 == 0x00000002);
CPPUNIT_ASSERT(r7 == 0x00000001);
CPPUNIT_ASSERT(r8 == 0x00000002);
CPPUNIT_ASSERT(r9 == 0x00000000);
CPPUNIT_ASSERT(r10 == 0x00000020);
CPPUNIT_ASSERT(r11 == 0xffffffff);
CPPUNIT_ASSERT(cpsr == 0x20000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_3);
( (Core::CPU_32Bit *)Core::Wukong_Get_System().get_cpu() )->run();
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(r0 == 0x80000000);
CPPUNIT_ASSERT(r1 == 0x00000001);
CPPUNIT_ASSERT(r2 == 0x80000001);
CPPUNIT_ASSERT(r3 == 0x00000001);
CPPUNIT_ASSERT(r4 == 0x00000002);
CPPUNIT_ASSERT(r5 == 0x00000001);
CPPUNIT_ASSERT(r6 == 0xfffffffe);
CPPUNIT_ASSERT(r7 == 0x00000001);
CPPUNIT_ASSERT(r8 == 0x00000002);
CPPUNIT_ASSERT(r9 == 0x00000000);
CPPUNIT_ASSERT(r10 == 0x00000020);
CPPUNIT_ASSERT(r11 == 0x00000001);
CPPUNIT_ASSERT(cpsr == 0x80000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_4);
( (Core::CPU_32Bit *)Core::Wukong_Get_System().get_cpu() )->run();
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(r0 == 0x80000000);
CPPUNIT_ASSERT(r1 == 0x00000001);
CPPUNIT_ASSERT(r2 == 0x80000001);
CPPUNIT_ASSERT(r3 == 0x00000001);
CPPUNIT_ASSERT(r4 == 0x00000002);
CPPUNIT_ASSERT(r5 == 0x00000001);
CPPUNIT_ASSERT(r6 == 0x00000002);
CPPUNIT_ASSERT(r7 == 0x00000001);
CPPUNIT_ASSERT(r8 == 0x00000002);
CPPUNIT_ASSERT(r9 == 0x00000000);
CPPUNIT_ASSERT(r10 == 0x00000020);
CPPUNIT_ASSERT(r11 == 0x00000003);
CPPUNIT_ASSERT(cpsr == 0x00000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_5);
( (Core::CPU_32Bit *)Core::Wukong_Get_System().get_cpu() )->run();
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(r0 == 0x80000000);
CPPUNIT_ASSERT(r1 == 0x00000001);
CPPUNIT_ASSERT(r2 == 0x00000000);
CPPUNIT_ASSERT(r3 == 0x00000001);
CPPUNIT_ASSERT(r4 == 0x00000002);
CPPUNIT_ASSERT(r5 == 0x00000001);
CPPUNIT_ASSERT(r6 == 0x00000000);
CPPUNIT_ASSERT(r7 == 0x00000001);
CPPUNIT_ASSERT(r8 == 0x00000002);
CPPUNIT_ASSERT(r9 == 0x00000000);
CPPUNIT_ASSERT(r10 == 0x00000020);
CPPUNIT_ASSERT(cpsr == 0x40000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_6);
( (Core::CPU_32Bit *)Core::Wukong_Get_System().get_cpu() )->run();
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(r0 == 0x80000000);
CPPUNIT_ASSERT(r1 == 0x00000001);
CPPUNIT_ASSERT(r2 == 0x80000001);
CPPUNIT_ASSERT(r3 == 0x00000001);
CPPUNIT_ASSERT(r4 == 0x00000002);
CPPUNIT_ASSERT(r5 == 0x00000001);
CPPUNIT_ASSERT(r6 == 0x00000002);
CPPUNIT_ASSERT(r7 == 0x00000001);
CPPUNIT_ASSERT(r8 == 0x00000002);
CPPUNIT_ASSERT(cpsr == 0x00000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_7);
( (Core::CPU_32Bit *)Core::Wukong_Get_System().get_cpu() )->run();
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(0,r0);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(1,r1);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(2,r2);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(3,r3);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(4,r4);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(5,r5);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(6,r6);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(7,r7);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(8,r8);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(9,r9);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(10,r10);
( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->read_register(11,r11);
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(r0 == 0x80000000);
CPPUNIT_ASSERT(r1 == 0x00000001);
CPPUNIT_ASSERT(r2 == 0x80000000);
CPPUNIT_ASSERT(r3 == 0x00000001);
CPPUNIT_ASSERT(r4 == 0x00000002);
CPPUNIT_ASSERT(r5 == 0x00000001);
CPPUNIT_ASSERT(r6 == 0x00000002);
CPPUNIT_ASSERT(r7 == 0x00000001);
CPPUNIT_ASSERT(r8 == 0x00000002);
CPPUNIT_ASSERT(r9 == 0x00000000);
CPPUNIT_ASSERT(r10 == 0x00000020);
CPPUNIT_ASSERT(r11 == 0x00000001);
CPPUNIT_ASSERT(cpsr == 0x00000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_8);
( (Core::CPU_32Bit *)Core::Wukong_Get_System().get_cpu() )->run();
cpsr = ( (ARM::CPU_7TDMI *)Core::Wukong_Get_System().get_cpu() )->get_cpsr().convert_to_int();
CPPUNIT_ASSERT(cpsr == 0x00000000);
Core::Wukong_Get_System().load_binary((Core::Binary_Loader &)(*loader), "ARM", binary_file_9);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -