Index: utils/lit/lit/ShCommands.py =================================================================== --- utils/lit/lit/ShCommands.py +++ utils/lit/lit/ShCommands.py @@ -52,10 +52,18 @@ import glob import os if os.path.isabs(self.pattern): - abspath = self.pattern + results = glob.glob(self.pattern) else: - abspath = os.path.join(cwd, self.pattern) - results = glob.glob(abspath) + # For a non-absolute pattern, we want to match "relative to + # cwd"; unfortunately glob.glob() will only match relative to + # the process working directory, or else an absolute path. So + # rather than change worknig directory to and from cwd in order + # to glob, we extend the relative pattern to an absolute + # pattern, then glob, then map the results back to relative + # paths using relpath. + abs_pat = os.path.join(cwd, self.pattern) + abs_glob = glob.glob(abs_pat) + results = [os.path.relpath(f, cwd) for f in abs_glob] return [self.pattern] if len(results) == 0 else results class Pipeline: