-
Notifications
You must be signed in to change notification settings - Fork 1
/
schema.json
136 lines (136 loc) · 3.86 KB
/
schema.json
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
{
"$ref": "#/definitions/Suite",
"$schema": "http://json-schema.org/draft-07/schema#",
"definitions": {
"App": {
"additionalProperties": {
"description": "Apps may have additional configuration values which are ignored by App Identity."
},
"description": "An App Identity app.",
"properties": {
"config": {
"anyOf": [
{
"$ref": "#/definitions/Config"
},
{
"type": "null"
}
],
"description": "The optional configuration."
},
"id": {
"description": "A number or string identifier.",
"type": [
"number",
"string"
]
},
"secret": {
"description": "A binary string secret.",
"type": "string"
},
"version": {
"description": "The version of the algorithm.",
"type": "number"
}
},
"required": [
"id",
"secret",
"version"
],
"type": "object"
},
"Config": {
"additionalProperties": false,
"description": "App configuration.",
"properties": {
"fuzz": {
"description": "An optional fuzz configuration. The value must be a positive integer and is measured in seconds.",
"type": "number"
}
},
"type": "object"
},
"Suite": {
"additionalProperties": false,
"description": "An integration test suite.",
"properties": {
"description": {
"description": "The description of the suite. Marked optional for backwards compatibility, it should be considered required for newer suite generators.\n\nThis should generally be in the form `{name} {version} (spec {spec-version})`.\n\nIf a runtime package is required to run the suite, such as",
"type": "string"
},
"name": {
"description": "The name of the implementation that generated the suite.",
"type": "string"
},
"spec_version": {
"description": "The supported major specification version.",
"type": "number"
},
"tests": {
"description": "The set of tests to run.",
"items": {
"$ref": "#/definitions/Test"
},
"type": "array"
},
"version": {
"description": "The version of the implementation that generated the suite.",
"type": "string"
}
},
"required": [
"name",
"version",
"spec_version",
"tests"
],
"type": "object"
},
"Test": {
"additionalProperties": false,
"description": "An integration test to be run.",
"properties": {
"app": {
"$ref": "#/definitions/App",
"description": "The app used for the test."
},
"description": {
"description": "A description of the test. Shown as part of the output.",
"type": "string"
},
"expect": {
"description": "Whether the proof comparison should pass or fail.",
"enum": [
"pass",
"fail"
],
"type": "string"
},
"proof": {
"description": "The generated proof to test.",
"type": "string"
},
"required": {
"description": "Indicates whether this is a required test for conformance.",
"type": "boolean"
},
"spec_version": {
"description": "The major specification version for this test. Integration suite runners should mark unsupported specification versions as skipped.",
"type": "number"
}
},
"required": [
"description",
"app",
"proof",
"expect",
"required",
"spec_version"
],
"type": "object"
}
}
}