summaryrefslogtreecommitdiff
path: root/tests/specs/schema.json
blob: 2b35d9bd7dba4b1872eb182e50b4412f5e84a59d (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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
{
  "$id": "https://github.com/denoland/deno/blob/tests/specs/schema.json",
  "$schema": "http://json-schema.org/draft-07/schema",
  "description": "Schema file for the __test__.jsonc files",
  "required": [],
  "title": "Deno internal spec test schema",
  "type": "object",
  "definitions": {
    "single_test": {
      "type": "object",
      "required": ["args", "output"],
      "properties": {
        "args": {
          "default": "",
          "oneOf": [{
            "type": "string"
          }, {
            "type": "array",
            "items": {
              "type": "string"
            }
          }]
        },
        "cwd": {
          "type": "string"
        },
        "commandName": {
          "type": "string"
        },
        "envs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "flaky": {
          "type": "boolean"
        },
        "symlinkedTempDir": {
          "type": "boolean"
        },
        "if": {
          "type": "string",
          "examples": [
            "mac",
            "linux",
            "windows",
            "unix"
          ]
        },
        "output": {
          "type": "string"
        },
        "exitCode": {
          "type": "integer"
        },
        "ignore": {
          "type": "boolean"
        }
      }
    },
    "single_or_multi_step_test": {
      "oneOf": [{
        "required": ["steps"],
        "properties": {
          "tempDir": {
            "type": "boolean"
          },
          "base": {
            "type": "string"
          },
          "envs": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "repeat": {
            "type": "number"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/definitions/single_test"
            }
          },
          "ignore": {
            "type": "boolean"
          }
        }
      }, {
        "allOf": [{
          "properties": {
            "tempDir": {
              "type": "boolean"
            },
            "base": {
              "type": "string"
            },
            "envs": {
              "type": "object",
              "additionalProperties": {
                "type": "string"
              }
            },
            "repeat": {
              "type": "number"
            }
          }
        }, {
          "$ref": "#/definitions/single_test"
        }]
      }]
    },
    "multi_test": {
      "required": ["tests"],
      "properties": {
        "tempDir": {
          "type": "boolean"
        },
        "base": {
          "type": "string"
        },
        "envs": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "repeat": {
          "type": "number"
        },
        "tests": {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/definitions/single_or_multi_step_test"
          }
        },
        "ignore": {
          "type": "boolean"
        }
      }
    }
  },
  "oneOf": [{
    "$ref": "#/definitions/single_or_multi_step_test"
  }, {
    "$ref": "#/definitions/multi_test"
  }]
}