regcache::cooked_read unit test
authorYao Qi <yao.qi@linaro.org>
Fri, 24 Nov 2017 13:04:30 +0000 (13:04 +0000)
committerYao Qi <yao.qi@linaro.org>
Fri, 24 Nov 2017 13:04:30 +0000 (13:04 +0000)
commit1b30aaa56607a563fa263b9d2ee9eba89d79c1b4
tree9da7d4cb9ab1cc116e96f5212cfe0124ed3d88f2
parent6654d750c7c584dd83b93f062c5628f15c675480
regcache::cooked_read unit test

This patch adds a unit test to regcache::cooked_read.  This unit test is a
little different from normal unit test, it is more about conformance test
or interaction test.  This test pass both raw register number and pseudo
register number to regcache::cooked_read, in order to inspect 1) return
value of cooked_read, 2) how are target_ops to_xfer_partial,
to_{fetch,store}_registers called (because regcache is updated by means of
these three target_ops methods).  With this test here, we have a clear
picture about how each port of GDB get cooked registers.

This patch also shares some code on mock target.

gdb:

2017-11-24  Yao Qi  <yao.qi@linaro.org>

* gdbarch-selftests.c (test_target_has_registers): Move it to
target.c.
(test_target_has_stack): Likewise.
(test_target_has_memory): Likewise.
(test_target_prepare_to_store): Likewise.
(test_target_store_registers): Likewise.
(test_target_ops): Likewise.
* regcache.c: Include selftest-arch.h and gdbthread.h.
(target_ops_no_register): New class.
(test_target_fetch_registers): New.
(test_target_store_registers): New.
(test_target_xfer_partial): New.
(readwrite_regcache): New.
(cooked_read_test): New.
(_initialize_regcache): Register the test.
* target.c: (test_target_has_registers): Moved from
gdbarch-selftests.c.
(test_target_has_stack): Likewise.
(test_target_has_memory): Likewise.
(test_target_prepare_to_store): Likewise.
(test_target_store_registers): Likewise.
* target.h (test_target_ops): New class.
gdb/ChangeLog
gdb/gdbarch-selftests.c
gdb/regcache.c
gdb/target.c
gdb/target.h
This page took 0.034362 seconds and 4 git commands to generate.