Fix 'FAIL: gdb.perf/disassemble.exp: python Disassemble().run()'
authorPedro Alves <pedro@palves.net>
Mon, 21 Jun 2021 21:50:18 +0000 (22:50 +0100)
committerPedro Alves <pedro@palves.net>
Fri, 24 Sep 2021 16:35:37 +0000 (17:35 +0100)
We currently have one FAIL while running "make check-perf":

  PerfTest::assemble, run ...
  python Disassemble().run()
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/home/pedro/rocm/gdb/src/gdb/testsuite/gdb.perf/lib/perftest/perftest.py", line 64, in run
      self.warm_up()
    File "<string>", line 25, in warm_up
  gdb.error: No symbol "ada_evaluate_subexp" in current context.
  Error while executing Python code.
  (gdb) FAIL: gdb.perf/disassemble.exp: python Disassemble().run()
  ...

The gdb.perf/disassemble.exp testcase debugs GDB with itself, runs to
main, and then disassembles a few GDB functions.  The problem is that
most(!) functions it is trying to disassemble are now gone...

This commit fixes the issue by simply picking some other functions to
disassemble.

It would perhaps be better to come up with some test program to
disassemble, one that would stay the same throughout the years,
instead of disassembling GDB itself.  I don't know why that wasn't
done to begin with.  I'll have to leave that for another rainy day,
though.

gdb/testsuite/
yyyy-mm-dd  Pedro Alves  <pedro@palves.net>

* gdb.perf/disassemble.py (Disassemble::warm_up): Disassemble
evaluate_subexp_do_call instead of ada_evaluate_subexp.
(Disassemble::warm_up): Disassemble "captured_main",
"run_inferior_call" and "update_global_location_list" instead of
"evaluate_subexp_standard" and "c_parse_internal".

Change-Id: I89d1cca89ce2e495dea5096e439685739cc0d3df

gdb/testsuite/gdb.perf/disassemble.py

index 89634912fbae8c827c68429a0dbf1e15986e91b9..bbb2a16fda138bf2a3006128f83d781aa3eeb461 100644 (file)
@@ -21,14 +21,15 @@ class Disassemble(perftest.TestCaseWithBasicMeasurements):
         super(Disassemble, self).__init__("disassemble")
 
     def warm_up(self):
-        do_test_command = "disassemble ada_evaluate_subexp"
+        do_test_command = "disassemble evaluate_subexp_do_call"
         gdb.execute(do_test_command, False, True)
 
     def _do_test(self, c):
         for func in [
-            "evaluate_subexp_standard",
+            "captured_main",
             "handle_inferior_event",
-            "c_parse_internal",
+            "run_inferior_call",
+            "update_global_location_list",
         ]:
             do_test_command = "disassemble %s" % func
             for _ in range(c + 1):