lib/utils.js
function resolveFilePatterns (baseDir, patterns, opt_omitWarnings) {
  var resolvedFiles = [];

  if (patterns) {
    for (var i = 0; i < patterns.length; ++i) {
      var matches = glob.sync(patterns[i], {cwd: baseDir});
      if (!matches.length && !opt_omitWarnings) {
        util.puts('Warning: pattern ' + patterns[i] + ' did not match any files.');
      }
      for (var j = 0; j < matches.length; ++j) {
        resolvedFiles.push(path.resolve(baseDir, matches[j]));
      }
    }
  }
  return resolvedFiles;
}
function resolveFilePatterns (baseDir, patterns, opt_omitWarnings) {
  var resolvedFiles = [];

  if (patterns) {
    for (var i = 0; i < patterns.length; ++i) {
      var matches = glob.sync(patterns[i], {cwd: baseDir});
      if (!matches.length && !opt_omitWarnings) {
        util.puts('Warning: pattern ' + patterns[i] + ' did not match any files.');
      }
      for (var j = 0; j < matches.length; ++j) {
        resolvedFiles.push(path.resolve(baseDir, matches[j]));
      }
    }
  }
  return resolvedFiles;
}
Copied from https://github.com/angular/protractor/blob/6bc5e2945a13867ac3106bde2b787d3546ec2f5c/lib/runner.js#L227