Whereas rL299560 and rL309071 call parallelism_groups.items(), under the
assumption that parallelism_groups is a dict type, the default
parameter for that attribute is a list. Change the default to a
dict for type correctness.
This regression in the unit tests would have been caught if the
unit tests were being run continously. It also would have been caught
if the lit project used a Python type checker such as mypy.
Test Plan:
As per the instructions in utils/lit/README.txt, run the lit unit
test suite:
utils/lit/lit.py \ --path /path/to/your/llvm/build/bin \ utils/lit/tests
Verify that the test lit :: unit/TestRunner.py fails before applying this
patch, but passes once this patch is applied.
Isn't this one of the classic python traps? If self.parallelism_groups is modified, it will modify the default argument used by all LitConfig objects. The usual workaround is to set this to None and test for it below or elsewhere.