[lit] Reverse path list when updating environment vars.
authorZachary Turner <zturner@google.com>
Wed, 20 Sep 2017 17:08:20 +0000 (17:08 +0000)
committerZachary Turner <zturner@google.com>
Wed, 20 Sep 2017 17:08:20 +0000 (17:08 +0000)
Bug pointed out by EricWF.  This would construct a path where
items would be added in the wrong order, potentially leading
to using the wrong tools for testing.

llvm-svn: 313765

llvm/utils/lit/lit/llvm/config.py

index cd1f8ee..d1f368d 100644 (file)
@@ -106,7 +106,10 @@ class LLVMConfig(object):
             current_paths = self.config.environment.get(variable, "")
             current_paths = current_paths.split(os.path.pathsep)
             paths = [norm(p) for p in current_paths]
-            for p in paths_to_add:
+            # If we are passed a list [a b c], then iterating this list forwards
+            # and adding each to the beginning would result in b c a.  So we
+            # need to iterate in reverse to end up with the original ordering.
+            for p in reversed(paths_to_add):
                 # Move it to the front if it already exists, otherwise insert it at the
                 # beginning.
                 p = norm(p)