-build lldb test with clang/totclang/gcc4.8.2 as compilers and x86_64/i386 as architecture
Details
Diff Detail
Event Timeline
buildbot/osuosl/master/config/builders.py | ||
---|---|---|
722 | Can we have two archs on the same build slave?? | |
zorg/buildbot/builders/LLDBBuilder.py | ||
246 | This should be initialized with the default system architecture. | |
248 | You should probably check for presence of clang, gcc or cc in that order and default a test compiler to that. | |
303 | You should probably have a step which cleans up the source tree and the build tree after each test step. Side effects from a previous test run could potentially affect a consequent test run. |
+r vharron just so that he is aware that multiple compilers get tested on a single build slave. He probably already knows, but just in case!
buildbot/osuosl/master/config/builders.py | ||
---|---|---|
722 | Yes, it's one of the test branches to run i386 build on x86_64 machine. | |
zorg/buildbot/builders/LLDBBuilder.py | ||
246 | The thought was that if no test arch or compilers is specified, then lldb-test will be skipped. | |
248 | Same as above. If no test_compilers were specified, lldb-test will be skipped | |
303 | Since build/test is running in a separate build folder, and I checked that there's no files added or changed to source tree after running test. |
buildbot/osuosl/master/config/builders.py | ||
---|---|---|
722 | OK. Since getLLDBUbuntuCMakeBuildFactory is a generic utility, you should check whether the architectures listed are compatible in getLLDBUbuntuCMakeBuildFactory. For example, using x86_64 lldb to debug x86_64 binaries on i386 is fine. But, using i386 LLDB is probably not OK for debugging x86_64 binaries. You could for now keep something very simple like and stick to x86_64 and i386 like this: if platform.machine() == 'x86_64': compatible_archs = ['x86_64', 'i386'] assert(all([x in compatible_archs for x in test_archs])) | |
zorg/buildbot/builders/LLDBBuilder.py | ||
236 | Plural test_archs is probably more indicative of the fact that a sequence is expected. | |
246 | In which case, this should be noted in a comment near the function header. Also, instead of making test_arch={}, the intent is more obvious if you have something like this after you add the compile step: if not test_arch: return Note: Even if you end up keeping code as is, initializing to an empty list [] is more meaningful than an empty dict {}. | |
248 | Same as my comment with test_arch. | |
303 | OK about the source tree. How about the build tree? Does running tests create any side effects in the build tree apart from lldb-test-traces? |
Clean svn source tree after running lldb-test
Put test trace logs to separate folder for each compiler/arch
buildbot/osuosl/master/config/builders.py | ||
---|---|---|
722 | This code will run on buildbot master machine, so it will return the machine architecture of master host. And assert will also fail on master side if any unsupported arch is specified. | |
zorg/buildbot/builders/LLDBBuilder.py | ||
246 | yes, i changed to empty list in the next revision. | |
303 | I take back the statement that "there's no files added or changed to source tree after running test". And yes, lldb-test-traces is the only side effect happened in build tree. |
Please address comments before committing.
buildbot/osuosl/master/config/builders.py | ||
---|---|---|
722 | OK. Sorry, I missed the fact that this runs on the master. If you do not have a simple solution for now, put a TODO about this just so that readers are aware of the problem. | |
zorg/buildbot/builders/LLDBBuilder.py | ||
232 | s/bulids/builds | |
233 | s/sequnce/sequence | |
234 | Just so that it doesn't seem I missed, you should ideally put pydoc style comments. However, it does not seem to be the style in this file. Hence, I leave it up to you. | |
234 | I think a better comment would be: If test_archs or test_compilers are None or empty, test steps will not be added to the build factory. | |
248 | Please modify lines 256 to 259 to this: if (not test_archs) or (not test_compilers): return f and move these two lines to after line 305. |
Address several nits based on feedback.
Add comments for TODO task - check listed archs are compatible with host
Correct typos in comment message
Return function early if no test arch or compiler specified
Can we have two archs on the same build slave??