File: phprunner

package info (click to toggle)
watchman 4.9.0-9
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,992 kB
  • sloc: cpp: 27,459; python: 6,538; java: 3,404; php: 3,257; ansic: 2,803; javascript: 1,116; makefile: 671; ruby: 364; sh: 124; xml: 102; lisp: 4
file content (81 lines) | stat: -rw-r--r-- 2,259 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
/* Copyright 2012-present Facebook, Inc.
 * Licensed under the Apache License, Version 2.0 */

require_once 'arcanist/lib/WatchmanTestCase.php';
require_once 'arcanist/lib/WatchmanInstance.php';
require_once 'arcanist/lib/WatchmanDirectoryFixture.php';

function phutil_is_windows() {
  return DIRECTORY_SEPARATOR != '/';
}

/**
 * Access an array index, retrieving the value stored there if it exists or
 * a default if it does not. This function allows you to concisely access an
 * index which may or may not exist without raising a warning.
 *
 * @param   array   Array to access.
 * @param   scalar  Index to access in the array.
 * @param   wild    Default value to return if the key is not present in the
 *                  array.
 * @return  wild    If $array[$key] exists, that value is returned. If not,
 *                  $default is returned without raising a warning.
 */
function idx(array $array, $key, $default = null) {
  // isset() is a micro-optimization - it is fast but fails for null values.
  if (isset($array[$key])) {
    return $array[$key];
  }

  // Comparing $default is also a micro-optimization.
  if ($default === null || array_key_exists($key, $array)) {
    return null;
  }

  return $default;
}

$first_inst = new PythonProvidedWatchmanInstance();
$root = realpath(dirname(__FILE__).'/../../');

$tests = $argv;
array_shift($tests);  # skip my own script name
foreach ($tests as $testfile) {
  require_once $testfile;
}

foreach (get_declared_classes() as $name) {
  $ref = new ReflectionClass($name);
  if (!$ref->isSubclassOf('WatchmanTestCase')) {
    continue;
  }

  // Good enough; let's use it
  $test_case = new $name();
  $test_case->setRoot($root);

  $config = $test_case->getGlobalConfig();
  if ($config) {
    $instance = new WatchmanInstance($root, false, $config);
    $instances[] = $instance;
  } else {
    $instance = $first_inst;
  }
  $test_case->setWatchmanInstance($instance);

  if (!$instance->getProcessID()) {
    try {
      $test_case->fail('watchman instance died before test started');
    } catch (Exception $e) {
    }
    break;
  }

  $test_case->setRoot($root);
  $test_case->run();
}
printf("1..%d\n", WatchmanTestCase::$test_number - 1);
exit(0);

// vim:ts=2:sw=2:et:ft=php: