add regression testing tasks (#664)

This commit is contained in:
bmc-msft
2021-03-18 15:37:19 -04:00
committed by GitHub
parent 34b2a739cb
commit 6e60a8cf10
50 changed files with 2141 additions and 203 deletions

View File

@ -37,6 +37,7 @@ Each event will be submitted via HTTP POST to the user provided URL.
* [proxy_created](#proxy_created)
* [proxy_deleted](#proxy_deleted)
* [proxy_failed](#proxy_failed)
* [regression_reported](#regression_reported)
* [scaleset_created](#scaleset_created)
* [scaleset_deleted](#scaleset_deleted)
* [scaleset_failed](#scaleset_failed)
@ -168,7 +169,6 @@ Each event will be submitted via HTTP POST to the user provided URL.
}
},
"required": [
"input_blob",
"executable",
"crash_type",
"crash_site",
@ -475,11 +475,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"libfuzzer_coverage",
"libfuzzer_crash_report",
"libfuzzer_merge",
"libfuzzer_regression",
"generic_analysis",
"generic_supervisor",
"generic_merge",
"generic_generator",
"generic_crash_report"
"generic_crash_report",
"generic_regression"
],
"title": "TaskType"
},
@ -1030,6 +1032,261 @@ Each event will be submitted via HTTP POST to the user provided URL.
}
```
### regression_reported
#### Example
```json
{
"container": "container-name",
"filename": "example.json",
"regression_report": {
"crash_test_result": {
"crash_report": {
"asan_log": "example asan log",
"call_stack": [
"#0 line",
"#1 line",
"#2 line"
],
"call_stack_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
"crash_site": "example crash site",
"crash_type": "example crash report type",
"executable": "fuzz.exe",
"input_blob": {
"account": "contoso-storage-account",
"container": "crashes",
"name": "input.txt"
},
"input_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"job_id": "00000000-0000-0000-0000-000000000000",
"scariness_description": "example-scariness",
"scariness_score": 10,
"task_id": "00000000-0000-0000-0000-000000000000"
}
},
"original_crash_test_result": {
"crash_report": {
"asan_log": "example asan log",
"call_stack": [
"#0 line",
"#1 line",
"#2 line"
],
"call_stack_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
"crash_site": "example crash site",
"crash_type": "example crash report type",
"executable": "fuzz.exe",
"input_blob": {
"account": "contoso-storage-account",
"container": "crashes",
"name": "input.txt"
},
"input_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"job_id": "00000000-0000-0000-0000-000000000000",
"scariness_description": "example-scariness",
"scariness_score": 10,
"task_id": "00000000-0000-0000-0000-000000000000"
}
}
}
}
```
#### Schema
```json
{
"additionalProperties": false,
"definitions": {
"BlobRef": {
"properties": {
"account": {
"title": "Account",
"type": "string"
},
"container": {
"title": "Container",
"type": "string"
},
"name": {
"title": "Name",
"type": "string"
}
},
"required": [
"account",
"container",
"name"
],
"title": "BlobRef",
"type": "object"
},
"CrashTestResult": {
"properties": {
"crash_report": {
"$ref": "#/definitions/Report"
},
"no_repro": {
"$ref": "#/definitions/NoReproReport"
}
},
"title": "CrashTestResult",
"type": "object"
},
"NoReproReport": {
"properties": {
"error": {
"title": "Error",
"type": "string"
},
"executable": {
"title": "Executable",
"type": "string"
},
"input_blob": {
"$ref": "#/definitions/BlobRef"
},
"input_sha256": {
"title": "Input Sha256",
"type": "string"
},
"job_id": {
"format": "uuid",
"title": "Job Id",
"type": "string"
},
"task_id": {
"format": "uuid",
"title": "Task Id",
"type": "string"
},
"tries": {
"title": "Tries",
"type": "integer"
}
},
"required": [
"input_sha256",
"executable",
"task_id",
"job_id",
"tries"
],
"title": "NoReproReport",
"type": "object"
},
"RegressionReport": {
"properties": {
"crash_test_result": {
"$ref": "#/definitions/CrashTestResult"
},
"original_crash_test_result": {
"$ref": "#/definitions/CrashTestResult"
}
},
"required": [
"crash_test_result"
],
"title": "RegressionReport",
"type": "object"
},
"Report": {
"properties": {
"asan_log": {
"title": "Asan Log",
"type": "string"
},
"call_stack": {
"items": {
"type": "string"
},
"title": "Call Stack",
"type": "array"
},
"call_stack_sha256": {
"title": "Call Stack Sha256",
"type": "string"
},
"crash_site": {
"title": "Crash Site",
"type": "string"
},
"crash_type": {
"title": "Crash Type",
"type": "string"
},
"executable": {
"title": "Executable",
"type": "string"
},
"input_blob": {
"$ref": "#/definitions/BlobRef"
},
"input_sha256": {
"title": "Input Sha256",
"type": "string"
},
"input_url": {
"title": "Input Url",
"type": "string"
},
"job_id": {
"format": "uuid",
"title": "Job Id",
"type": "string"
},
"scariness_description": {
"title": "Scariness Description",
"type": "string"
},
"scariness_score": {
"title": "Scariness Score",
"type": "integer"
},
"task_id": {
"format": "uuid",
"title": "Task Id",
"type": "string"
}
},
"required": [
"executable",
"crash_type",
"crash_site",
"call_stack",
"call_stack_sha256",
"input_sha256",
"task_id",
"job_id"
],
"title": "Report",
"type": "object"
}
},
"properties": {
"container": {
"title": "Container",
"type": "string"
},
"filename": {
"title": "Filename",
"type": "string"
},
"regression_report": {
"$ref": "#/definitions/RegressionReport"
}
},
"required": [
"regression_report",
"container",
"filename"
],
"title": "EventRegressionReported",
"type": "object"
}
```
### scaleset_created
#### Example
@ -1283,7 +1540,8 @@ Each event will be submitted via HTTP POST to the user provided URL.
"setup",
"tools",
"unique_inputs",
"unique_reports"
"unique_reports",
"regression_reports"
],
"title": "ContainerType"
},
@ -1456,6 +1714,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "Rename Output",
"type": "boolean"
},
"report_list": {
"items": {
"type": "string"
},
"title": "Report List",
"type": "array"
},
"stats_file": {
"title": "Stats File",
"type": "string"
@ -1554,11 +1819,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"libfuzzer_coverage",
"libfuzzer_crash_report",
"libfuzzer_merge",
"libfuzzer_regression",
"generic_analysis",
"generic_supervisor",
"generic_merge",
"generic_generator",
"generic_crash_report"
"generic_crash_report",
"generic_regression"
],
"title": "TaskType"
},
@ -1715,7 +1982,8 @@ Each event will be submitted via HTTP POST to the user provided URL.
"setup",
"tools",
"unique_inputs",
"unique_reports"
"unique_reports",
"regression_reports"
],
"title": "ContainerType"
},
@ -1936,6 +2204,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "Rename Output",
"type": "boolean"
},
"report_list": {
"items": {
"type": "string"
},
"title": "Report List",
"type": "array"
},
"stats_file": {
"title": "Stats File",
"type": "string"
@ -2034,11 +2309,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"libfuzzer_coverage",
"libfuzzer_crash_report",
"libfuzzer_merge",
"libfuzzer_regression",
"generic_analysis",
"generic_supervisor",
"generic_merge",
"generic_generator",
"generic_crash_report"
"generic_crash_report",
"generic_regression"
],
"title": "TaskType"
},
@ -2188,7 +2465,8 @@ Each event will be submitted via HTTP POST to the user provided URL.
"setup",
"tools",
"unique_inputs",
"unique_reports"
"unique_reports",
"regression_reports"
],
"title": "ContainerType"
},
@ -2361,6 +2639,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "Rename Output",
"type": "boolean"
},
"report_list": {
"items": {
"type": "string"
},
"title": "Report List",
"type": "array"
},
"stats_file": {
"title": "Stats File",
"type": "string"
@ -2459,11 +2744,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"libfuzzer_coverage",
"libfuzzer_crash_report",
"libfuzzer_merge",
"libfuzzer_regression",
"generic_analysis",
"generic_supervisor",
"generic_merge",
"generic_generator",
"generic_crash_report"
"generic_crash_report",
"generic_regression"
],
"title": "TaskType"
},
@ -2587,7 +2874,8 @@ Each event will be submitted via HTTP POST to the user provided URL.
"setup",
"tools",
"unique_inputs",
"unique_reports"
"unique_reports",
"regression_reports"
],
"title": "ContainerType"
},
@ -2760,6 +3048,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "Rename Output",
"type": "boolean"
},
"report_list": {
"items": {
"type": "string"
},
"title": "Report List",
"type": "array"
},
"stats_file": {
"title": "Stats File",
"type": "string"
@ -2872,11 +3167,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"libfuzzer_coverage",
"libfuzzer_crash_report",
"libfuzzer_merge",
"libfuzzer_regression",
"generic_analysis",
"generic_supervisor",
"generic_merge",
"generic_generator",
"generic_crash_report"
"generic_crash_report",
"generic_regression"
],
"title": "TaskType"
},
@ -3013,7 +3310,8 @@ Each event will be submitted via HTTP POST to the user provided URL.
"setup",
"tools",
"unique_inputs",
"unique_reports"
"unique_reports",
"regression_reports"
],
"title": "ContainerType"
},
@ -3186,6 +3484,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "Rename Output",
"type": "boolean"
},
"report_list": {
"items": {
"type": "string"
},
"title": "Report List",
"type": "array"
},
"stats_file": {
"title": "Stats File",
"type": "string"
@ -3284,11 +3589,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"libfuzzer_coverage",
"libfuzzer_crash_report",
"libfuzzer_merge",
"libfuzzer_regression",
"generic_analysis",
"generic_supervisor",
"generic_merge",
"generic_generator",
"generic_crash_report"
"generic_crash_report",
"generic_regression"
],
"title": "TaskType"
},
@ -3468,10 +3775,23 @@ Each event will be submitted via HTTP POST to the user provided URL.
"setup",
"tools",
"unique_inputs",
"unique_reports"
"unique_reports",
"regression_reports"
],
"title": "ContainerType"
},
"CrashTestResult": {
"properties": {
"crash_report": {
"$ref": "#/definitions/Report"
},
"no_repro": {
"$ref": "#/definitions/NoReproReport"
}
},
"title": "CrashTestResult",
"type": "object"
},
"Error": {
"properties": {
"code": {
@ -3821,6 +4141,29 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "EventProxyFailed",
"type": "object"
},
"EventRegressionReported": {
"additionalProperties": false,
"properties": {
"container": {
"title": "Container",
"type": "string"
},
"filename": {
"title": "Filename",
"type": "string"
},
"regression_report": {
"$ref": "#/definitions/RegressionReport"
}
},
"required": [
"regression_report",
"container",
"filename"
],
"title": "EventRegressionReported",
"type": "object"
},
"EventScalesetCreated": {
"additionalProperties": false,
"properties": {
@ -4074,6 +4417,7 @@ Each event will be submitted via HTTP POST to the user provided URL.
"task_state_updated",
"task_stopped",
"crash_reported",
"regression_reported",
"file_added",
"task_heartbeat",
"node_heartbeat"
@ -4129,6 +4473,48 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "JobTaskStopped",
"type": "object"
},
"NoReproReport": {
"properties": {
"error": {
"title": "Error",
"type": "string"
},
"executable": {
"title": "Executable",
"type": "string"
},
"input_blob": {
"$ref": "#/definitions/BlobRef"
},
"input_sha256": {
"title": "Input Sha256",
"type": "string"
},
"job_id": {
"format": "uuid",
"title": "Job Id",
"type": "string"
},
"task_id": {
"format": "uuid",
"title": "Task Id",
"type": "string"
},
"tries": {
"title": "Tries",
"type": "integer"
}
},
"required": [
"input_sha256",
"executable",
"task_id",
"job_id",
"tries"
],
"title": "NoReproReport",
"type": "object"
},
"NodeState": {
"description": "An enumeration.",
"enum": [
@ -4152,6 +4538,21 @@ Each event will be submitted via HTTP POST to the user provided URL.
],
"title": "OS"
},
"RegressionReport": {
"properties": {
"crash_test_result": {
"$ref": "#/definitions/CrashTestResult"
},
"original_crash_test_result": {
"$ref": "#/definitions/CrashTestResult"
}
},
"required": [
"crash_test_result"
],
"title": "RegressionReport",
"type": "object"
},
"Report": {
"properties": {
"asan_log": {
@ -4212,7 +4613,6 @@ Each event will be submitted via HTTP POST to the user provided URL.
}
},
"required": [
"input_blob",
"executable",
"crash_type",
"crash_site",
@ -4394,6 +4794,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"title": "Rename Output",
"type": "boolean"
},
"report_list": {
"items": {
"type": "string"
},
"title": "Report List",
"type": "array"
},
"stats_file": {
"title": "Stats File",
"type": "string"
@ -4506,11 +4913,13 @@ Each event will be submitted via HTTP POST to the user provided URL.
"libfuzzer_coverage",
"libfuzzer_crash_report",
"libfuzzer_merge",
"libfuzzer_regression",
"generic_analysis",
"generic_supervisor",
"generic_merge",
"generic_generator",
"generic_crash_report"
"generic_crash_report",
"generic_regression"
],
"title": "TaskType"
},
@ -4638,6 +5047,9 @@ Each event will be submitted via HTTP POST to the user provided URL.
{
"$ref": "#/definitions/EventCrashReported"
},
{
"$ref": "#/definitions/EventRegressionReported"
},
{
"$ref": "#/definitions/EventFileAdded"
}