llvm-project/lldb/examples/test/.lldb-loggings

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

20 lines
618 B
Plaintext
Raw Normal View History

def pre_flight(self):
import os
import lldb
import lldbtest
[lldb] Remove LLDB session dir and just store test traces in the respective test build directory Test runs log some of their output to files inside the LLDB session dir. This session dir is shared between all tests, so all the tests have to make sure they choose a unique file name inside that directory. We currently choose by default `<test-class-name>-<test-method-name>` as the log file name. However, that means that if not every test class in the test suite has a unique class name, then we end up with a race condition as two tests will try to write to the same log file. I already tried in D83767 changing the format to use the test file basename instead (which we already require to be unique for some other functionality), but it seems the code for getting the basename didn't work on Windows. This patch instead just changes that dotest stores the log files in the build directory for the current test. We know that directory is unique for this test, so no need to generate some unique file name now. Also removes all the environment vars and parameters related to the now unused session dir. The new log paths now look like this for a failure in 'TestCppOperators`: ``` ./lldb-test-build.noindex/lang/cpp/operators/TestCppOperators.test_dwarf/Failure.log ./lldb-test-build.noindex/lang/cpp/operators/TestCppOperators.test_dsym/Failure.log ./lldb-test-build.noindex/lang/cpp/operators/TestCppOperators.test_gmodules/Failure.log ``` Reviewed By: labath Differential Revision: https://reviews.llvm.org/D92498
2020-12-04 18:42:36 +08:00
dname = os.path.join(os.environ["LLDB_TEST"])
if not os.path.isdir(dname):
os.mkdir(dname)
dest = os.path.join(dname, "lldb_log-%s-%s-%s.txt" % (self.getArchitecture(), self.getCompiler(), self.id()))
print "\nEnabling lldb logging for test case:", self
print "with log destination:", dest
self.runCmd("log enable -f %s gdb-remote packets process" % dest)
#def post_flight(test):
# __import__("lldb")
# __import__("lldbtest")
# print "\nRunning post-flight function:"
# print "for test case:", test