diff options
author | Stefan Hajnoczi <stefanha@gmail.com> | 2008-06-02 17:51:43 +0100 |
---|---|---|
committer | Michael Brown <mcb30@etherboot.org> | 2008-06-05 00:45:51 +0100 |
commit | 4180815a90c46fc3c410785d232fc0d12737a70d (patch) | |
tree | e4d85c5eb7c2dec6a0255f3d85dadc5b00e9ce35 /src/tests/gdbstub_test.gdb | |
parent | 04bc50f0253da1a8fe29ed029ee2134126b664db (diff) | |
download | ipxe-4180815a90c46fc3c410785d232fc0d12737a70d.tar.gz |
[GDB] Test suite for the GDB stub
Diffstat (limited to 'src/tests/gdbstub_test.gdb')
-rwxr-xr-x | src/tests/gdbstub_test.gdb | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/src/tests/gdbstub_test.gdb b/src/tests/gdbstub_test.gdb new file mode 100755 index 00000000..10db863e --- /dev/null +++ b/src/tests/gdbstub_test.gdb @@ -0,0 +1,80 @@ +#!/usr/bin/gdb -x +# Test suite for GDB remote debugging +# Run: +# make bin/gpxe.hd.tmp +# make +# tests/gdbstub_test.gdb + +define gpxe_load_symbols + file bin/gpxe.hd.tmp +end + +define gpxe_connect + target remote localhost:4444 +end + +define gpxe_assert + if $arg0 != $arg1 + echo FAIL $arg2\n + else + echo PASS $arg2\n + end +end + +define gpxe_start_tests + jump gdbstub_test +end + +define gpxe_test_regs_read + gpxe_assert $eax 0xea010203 "gpxe_test_regs_read eax" + gpxe_assert $ebx 0xeb040506 "gpxe_test_regs_read ebx" + gpxe_assert $ecx 0xec070809 "gpxe_test_regs_read ecx" + gpxe_assert $edx 0xed0a0b0c "gpxe_test_regs_read edx" + gpxe_assert $esi 0x510d0e0f "gpxe_test_regs_read esi" + gpxe_assert $edi 0xd1102030 "gpxe_test_regs_read edi" +end + +define gpxe_test_regs_write + set $eax = 0xea112233 + set $ebx = 0xeb445566 + set $ecx = 0xec778899 + set $edx = 0xedaabbcc + set $esi = 0x51ddeeff + set $edi = 0xd1010203 + c + gpxe_assert $eax 0xea112233 "gpxe_test_regs_write eax" + gpxe_assert $ebx 0xeb445566 "gpxe_test_regs_write ebx" + gpxe_assert $ecx 0xec778899 "gpxe_test_regs_write ecx" + gpxe_assert $edx 0xedaabbcc "gpxe_test_regs_write edx" + gpxe_assert $esi 0x51ddeeff "gpxe_test_regs_write esi" + gpxe_assert $edi 0xd1010203 "gpxe_test_regs_write edi" + + # This assumes segment selectors are always 0x10 or 0x8 (for code). + gpxe_assert $cs 0x08 "gpxe_test_regs_write cs" + gpxe_assert $ds 0x10 "gpxe_test_regs_write ds" +end + +define gpxe_test_mem_read + c + gpxe_assert ({int}($esp+4)) 0x11223344 "gpxe_test_mem_read int" + gpxe_assert ({short}($esp+2)) 0x5566 "gpxe_test_mem_read short" + gpxe_assert ({char}($esp)) 0x77 "gpxe_test_mem_read char" +end + +define gpxe_test_mem_write + set ({int}($esp+4)) = 0xaabbccdd + set ({short}($esp+2)) = 0xeeff + set ({char}($esp)) = 0x99 + c + gpxe_assert ({int}($esp+4)) 0xaabbccdd "gpxe_test_mem_write int" + gpxe_assert ({short}($esp+2)) (short)0xeeff "gpxe_test_mem_write short" + gpxe_assert ({char}($esp)) (char)0x99 "gpxe_test_mem_write char" +end + +gpxe_load_symbols +gpxe_connect +gpxe_start_tests +gpxe_test_regs_read +gpxe_test_regs_write +gpxe_test_mem_read +gpxe_test_mem_write |