Clear GDB internal state after each unit test
authorYao Qi <yao.qi@linaro.org>
Wed, 24 May 2017 21:15:22 +0000 (22:15 +0100)
committerYao Qi <yao.qi@linaro.org>
Wed, 24 May 2017 21:15:22 +0000 (22:15 +0100)
GDB has some global variables, like sentinel_frame,
current_thread_arch, and etc, we need to reset them after each unit
tests.

gdb:

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

* selftest-arch.c (tests_with_arch): Call registers_changed
and reinit_frame_cache.
* selftest.c (run_self_tests): Likewise.

gdb/ChangeLog
gdb/selftest-arch.c
gdb/selftest.c

index a96e71f..e5222c6 100644 (file)
@@ -1,5 +1,11 @@
 2017-05-24  Yao Qi  <yao.qi@linaro.org>
 
+       * selftest-arch.c (tests_with_arch): Call registers_changed
+       and reinit_frame_cache.
+       * selftest.c (run_self_tests): Likewise.
+
+2017-05-24  Yao Qi  <yao.qi@linaro.org>
+
        * rs6000-tdep.c (gdb_print_insn_powerpc): Remove.
        (rs6000_gdbarch_init): Don't call set_gdbarch_print_insn.
 
index cbc8c50..c4fe60d 100644 (file)
@@ -81,6 +81,10 @@ tests_with_arch ()
                                 _("Self test failed: arch %s: "), arches[i]);
            }
          END_CATCH
+
+         /* Clear GDB internal state.  */
+         registers_changed ();
+         reinit_frame_cache ();
        }
     }
 
index adc7dda..14b76f6 100644 (file)
@@ -53,6 +53,10 @@ run_self_tests (void)
          exception_fprintf (gdb_stderr, ex, _("Self test failed: "));
        }
       END_CATCH
+
+      /* Clear GDB internal state.  */
+      registers_changed ();
+      reinit_frame_cache ();
     }
 
   printf_filtered (_("Ran %lu unit tests, %d failed\n"),