<div dir="ltr"><span style="font-size:13.1999998092651px;line-height:19.7999992370605px">While looking into a Windows-specific issue involving TestTargetAPI.py, I noticed that we are building the exact same executable many times.  Every single test has a line such as self.buildDwarf() or self.buildDsym().  Those functions will first run make clean and then run make, essentially rebuilding the exact same program.</span><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">Is this necessary for some reason?  Each test suite already supports suite-specific setup and tear down by implementing a suite-specific setUp and tearDown function.  Any particular reason we can't build the executables a single time in setUp and clean them a single time in tearDown?</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">I don't think we need to retro-actively do this for every single test suite as it would be churn, but in a couple of places it would actually fix test failures on Windows, and improve performance of the test suite as a side benefit (as a result of reducing the number of compilations that need to happen)</div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px"><br></div><div style="font-size:13.1999998092651px;line-height:19.7999992370605px">Thoughts?</div></div>