[lldb/API] Add CommandInterpreter::{Get,Set}PrintErrors to SBAPI (NFC)
authorMed Ismail Bennani <medismail.bennani@gmail.com>
Fri, 5 Mar 2021 18:30:10 +0000 (18:30 +0000)
committerMed Ismail Bennani <medismail.bennani@gmail.com>
Fri, 5 Mar 2021 18:33:33 +0000 (19:33 +0100)
This patch exposes the getter and setter methods for the command
interpreter `print_errors` run option.

rdar://74816984

Differential Revision: https://reviews.llvm.org/D98001

Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
lldb/bindings/interface/SBCommandInterpreterRunOptions.i
lldb/include/lldb/API/SBCommandInterpreterRunOptions.h
lldb/source/API/SBCommandInterpreterRunOptions.cpp
lldb/test/API/python_api/interpreter/TestRunCommandInterpreterAPI.py

index 1a618a2..28437ab 100644 (file)
@@ -18,6 +18,7 @@ A default SBCommandInterpreterRunOptions object has:
 * StopOnCrash:    false
 * EchoCommands:   true
 * PrintResults:   true
+* PrintErrors:    true
 * AddToHistory:   true
 
 ") SBCommandInterpreterRunOptions;
@@ -59,6 +60,12 @@ public:
     SetPrintResults (bool);
 
     bool
+    GetPrintErrors () const;
+
+    void
+    SetPrintErrors (bool);
+
+    bool
     GetAddToHistory () const;
 
     void
index 3c00513..efaacd3 100644 (file)
@@ -56,6 +56,10 @@ public:
 
   void SetPrintResults(bool);
 
+  bool GetPrintErrors() const;
+
+  void SetPrintErrors(bool);
+
   bool GetAddToHistory() const;
 
   void SetAddToHistory(bool);
index da800e8..317ec6d 100644 (file)
@@ -131,6 +131,20 @@ void SBCommandInterpreterRunOptions::SetPrintResults(bool print_results) {
   m_opaque_up->SetPrintResults(print_results);
 }
 
+bool SBCommandInterpreterRunOptions::GetPrintErrors() const {
+  LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBCommandInterpreterRunOptions,
+                                   GetPrintErrors);
+
+  return m_opaque_up->GetPrintErrors();
+}
+
+void SBCommandInterpreterRunOptions::SetPrintErrors(bool print_errors) {
+  LLDB_RECORD_METHOD(void, SBCommandInterpreterRunOptions, SetPrintErrors,
+                     (bool), print_errors);
+
+  m_opaque_up->SetPrintErrors(print_errors);
+}
+
 bool SBCommandInterpreterRunOptions::GetAddToHistory() const {
   LLDB_RECORD_METHOD_CONST_NO_ARGS(bool, SBCommandInterpreterRunOptions,
                                    GetAddToHistory);
@@ -270,6 +284,10 @@ template <> void RegisterMethods<SBCommandInterpreterRunOptions>(Registry &R) {
   LLDB_REGISTER_METHOD(void, SBCommandInterpreterRunOptions, SetPrintResults,
                        (bool));
   LLDB_REGISTER_METHOD_CONST(bool, SBCommandInterpreterRunOptions,
+                             GetPrintErrors, ());
+  LLDB_REGISTER_METHOD(void, SBCommandInterpreterRunOptions, SetPrintErrors,
+                       (bool));
+  LLDB_REGISTER_METHOD_CONST(bool, SBCommandInterpreterRunOptions,
                              GetAddToHistory, ());
   LLDB_REGISTER_METHOD(void, SBCommandInterpreterRunOptions, SetAddToHistory,
                        (bool));
index 86d7f78..2db7fdd 100644 (file)
@@ -73,3 +73,40 @@ class CommandRunInterpreterAPICase(TestBase):
         self.assertGreater(n_errors, 0)
         self.assertTrue(quit_requested)
         self.assertFalse(has_crashed)
+
+class SBCommandInterpreterRunOptionsCase(TestBase):
+
+    NO_DEBUG_INFO_TESTCASE = True
+    mydir = TestBase.compute_mydir(__file__)
+
+    def test_command_interpreter_run_options(self):
+        """Test SBCommandInterpreterRunOptions default values, getters & setters """
+
+        opts = lldb.SBCommandInterpreterRunOptions()
+
+        # Check getters with default values
+        self.assertEqual(opts.GetStopOnContinue(), False)
+        self.assertEqual(opts.GetStopOnError(), False)
+        self.assertEqual(opts.GetStopOnCrash(), False)
+        self.assertEqual(opts.GetEchoCommands(), True)
+        self.assertEqual(opts.GetPrintResults(), True)
+        self.assertEqual(opts.GetPrintErrors(), True)
+        self.assertEqual(opts.GetAddToHistory(), True)
+
+        # Invert values
+        opts.SetStopOnContinue(not opts.GetStopOnContinue())
+        opts.SetStopOnError(not opts.GetStopOnError())
+        opts.SetStopOnCrash(not opts.GetStopOnCrash())
+        opts.SetEchoCommands(not opts.GetEchoCommands())
+        opts.SetPrintResults(not opts.GetPrintResults())
+        opts.SetPrintErrors(not opts.GetPrintErrors())
+        opts.SetAddToHistory(not opts.GetAddToHistory())
+
+        # Check the value changed
+        self.assertEqual(opts.GetStopOnContinue(), True)
+        self.assertEqual(opts.GetStopOnError(), True)
+        self.assertEqual(opts.GetStopOnCrash(), True)
+        self.assertEqual(opts.GetEchoCommands(), False)
+        self.assertEqual(opts.GetPrintResults(), False)
+        self.assertEqual(opts.GetPrintErrors(), False)
+        self.assertEqual(opts.GetAddToHistory(), False)