[lldb] Explicitly use the configuration architecture when building test executables
authorRaphael Isemann <teemperor@gmail.com>
Thu, 22 Oct 2020 13:10:22 +0000 (15:10 +0200)
committerRaphael Isemann <teemperor@gmail.com>
Thu, 22 Oct 2020 13:30:25 +0000 (15:30 +0200)
commit41185226f6d80663b4a1064c6f47581ee567d78d
tree9ed2605b68f97e2481bc52be46118d4468d7149f
parente4b4543ff0c83b6f1d80064e2dcd22b2bb0bfab6
[lldb] Explicitly use the configuration architecture when building test executables

The Darwin builder currently assumes in `getArchCFlags` that the passed `arch`
value is an actual string it can string.join with vendor/os/version/env strings:

```
   triple = '-'.join([arch, vendor, os, version, env])
```

However this is not true for most tests as we just pass down the `arch=None`
default value from `TestBase.build`. This causes that if we actually end up in
this function we just error out when concatenating `None` with the other actual
strings of vendor/os/version/env. What we should do instead is check that if
there is no test-specific architecture that we fall back to the configuration's
architecture value.

It seems we already worked around this in `builder.getArchSpec` by explicitly
falling back to the architecture specified in the configuration.

This patch just moves this fallback logic to the top `build` function so that it
affects all functions called from `TestBase.build`.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D89056
lldb/packages/Python/lldbsuite/test/builders/builder.py
lldb/packages/Python/lldbsuite/test/lldbtest.py