summaryrefslogtreecommitdiffstats
path: root/chrome/test/debugger/mjsunit.js
blob: 7f247e0623dd8a2bc6f2528633fca12c3c74c35e (plain)
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
82
83
84
85
86
87
88
89
90
91
92
/*
 * This file is included in all mini jsunit test cases.  The test
 * framework expects lines that signal failed tests to start with
 * the f-word and ignore all other lines.
 */

// Avoid writing the f-word, since some tests output parts of this code.
var the_f_word = "Fai" + "lure";

function fail(expected, found, name_opt) {
  var start;
  if (name_opt) {
    start = the_f_word + " (" + name_opt + "): ";
  } else {
    start = the_f_word + ":";
  }
  print(start + " expected <" + expected + "> found <" + found + ">");
}


function assertEquals(expected, found, name_opt) {
  if (expected != found) {
    fail(expected, found, name_opt);
  }
}


function assertArrayEquals(expected, found, name_opt) {
  var start = "";
  if (name_opt) {
    start = name_opt + " - ";
  }
  assertEquals(expected.length, found.length, start + "array length");
  if (expected.length == found.length) {
    for (var i = 0; i < expected.length; ++i) {
      assertEquals(expected[i], found[i], start + "array element at index " + i);
    }
  }
}


function assertTrue(value, name_opt) {
  assertEquals(true, value, name_opt);
}


function assertFalse(value, name_opt) {
  assertEquals(false, value, name_opt);
}


function assertNaN(value, name_opt) {
  if (!isNaN(value)) {
    fail("NaN", value, name_opt);
  }
}


function assertThrows(code) {
  try {
    eval(code);
    assertTrue(false, "did not throw exception");
  } catch (e) {
    // Do nothing.
  }
}


function assertInstanceof(obj, type) {
  if (!(obj instanceof type)) {
    assertTrue(false, "Object <" + obj + "> is not an instance of <" + type + ">");
  }
}


function assertDoesNotThrow(code) {
  try {
    eval(code);
  } catch (e) {
    assertTrue(false, "threw an exception");
  }
}


function assertUnreachable(name_opt) {
  var message = the_f_word + ": unreachable"
  if (name_opt) {
    message += " - " + name_opt;
  }
  print(message);
}