[Lldb-commits] [lldb] ad3870d - [lldb][Test] TestRerunAndExpr.py: explicitly delete a.out before rebuilding it

Michael Buch via lldb-commits lldb-commits at lists.llvm.org
Thu Dec 8 09:17:20 PST 2022


Author: Michael Buch
Date: 2022-12-08T17:17:05Z
New Revision: ad3870d6552305d2d6bd6aa2faca6f0644052d9a

URL: https://github.com/llvm/llvm-project/commit/ad3870d6552305d2d6bd6aa2faca6f0644052d9a
DIFF: https://github.com/llvm/llvm-project/commit/ad3870d6552305d2d6bd6aa2faca6f0644052d9a.diff

LOG: [lldb][Test] TestRerunAndExpr.py: explicitly delete a.out before rebuilding it

**Summary**

Older versions of `make` would occasionally fail to realize
that a pre-requisite for the `a.out` target has changed. This
resulted in roughly 1 out of 10 test runs to fail. Instead of
relying on `make` to resolve this dependency simply remove the
file before rebuilding; this will give make no option but to
remake `a.out`.

**Testing**

* Confirmed that the test passes on the host for 100 runs where
  without the patch it would fail after ~10

**Details**

Adding `-d` to lldbtest's `make` invocation and running the
test without this patch sometimes yielded:
```
Removing child 0x600000308ff0 PID 19915 from chain.
    Successfully remade target file `rebuild.o'.
   Finished prerequisites of target file `a.out'.
   Prerequisite `rebuild.o' is newer than target `a.out'.
  No need to remake target `a.out'.
```

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

Added: 
    

Modified: 
    lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py

Removed: 
    


################################################################################
diff  --git a/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py b/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py
index 192e13151a954..09ccf1f1a5b4c 100644
--- a/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py
+++ b/lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py
@@ -41,6 +41,8 @@ def test(self):
                 ValueCheck(name='m_val', value='42')
             ])
 
+        # Delete the executable to force make to rebuild it.
+        remove_file(exe)
         self.build(dictionary={'CXX_SOURCES':'rebuild.cpp', 'EXE':'a.out'})
 
         # Rerun program within the same target


        


More information about the lldb-commits mailing list