Michael137 created this revision. Michael137 added a reviewer: aprantl. Herald added a project: All. Michael137 requested review of this revision. Herald added a project: LLDB. Herald added a subscriber: lldb-commits.
**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'. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D139643 Files: lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py Index: lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py =================================================================== --- lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py +++ lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py @@ -41,6 +41,8 @@ ValueCheck(name='m_val', value='42') ]) + # Force make to rebuild the executable by deleting it. + remove_file(exe) self.build(dictionary={'CXX_SOURCES':'rebuild.cpp', 'EXE':'a.out'}) # Rerun program within the same target
Index: lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py =================================================================== --- lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py +++ lldb/test/API/functionalities/rerun_and_expr/TestRerunAndExpr.py @@ -41,6 +41,8 @@ ValueCheck(name='m_val', value='42') ]) + # Force make to rebuild the executable by deleting it. + remove_file(exe) self.build(dictionary={'CXX_SOURCES':'rebuild.cpp', 'EXE':'a.out'}) # Rerun program within the same target
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits