├── .gitignore ├── .gitattributes ├── ci_scripts ├── run_validator_tests.sh └── validate_spec_samples.sh ├── docs ├── pdf │ ├── hardware_testing_at_hyperscale_2021.pdf │ ├── optimizing_repair_strategies_2022.pdf │ └── ocp_test_and_validation_community_update_2022.pdf └── ocp_presentations.md ├── validators └── spec_validator │ ├── go.mod │ ├── README.md │ ├── go.sum │ ├── main.go │ ├── pkg │ └── schema_validator │ │ ├── validator.go │ │ └── validator_test.go │ └── samples │ ├── cpu_integrity_test.jsonl │ ├── mlc_test.jsonl │ ├── example_monitor_test.jsonl │ ├── cpu_power_virus_test.jsonl │ ├── memtester_test.jsonl │ ├── dimm_sanity_test.jsonl │ └── sat_test.jsonl ├── json_spec └── output │ ├── metadata.json │ ├── test_status.json │ ├── test_step_start.json │ ├── test_step_end.json │ ├── measurement_series_end.json │ ├── test_run_end.json │ ├── source_location.json │ ├── error.json │ ├── file.json │ ├── log.json │ ├── measurement_series_element.json │ ├── subcomponent.json │ ├── measurement_series_start.json │ ├── test_run_start.json │ ├── measurement.json │ ├── validator.json │ ├── diagnosis.json │ ├── test_run_artifact.json │ ├── root.json │ ├── test_step_artifact.json │ └── dut_info.json ├── .github └── workflows │ └── test_spec.yml ├── LICENSE └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .vim 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.png filter=lfs diff=lfs merge=lfs -text 2 | *.pdf filter=lfs diff=lfs merge=lfs -text 3 | -------------------------------------------------------------------------------- /ci_scripts/run_validator_tests.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | pushd validators/spec_validator 6 | go test -race ./... 7 | -------------------------------------------------------------------------------- /docs/pdf/hardware_testing_at_hyperscale_2021.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:be3d963b3ca92eb7ae501f4f54bc3243350fe10ce2195371692a3b03a56e333b 3 | size 3663099 4 | -------------------------------------------------------------------------------- /docs/pdf/optimizing_repair_strategies_2022.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:0e2792342d392ed0376fafb24ea26075b5dbb2e8f53892dfbf1d06251350f99c 3 | size 4181709 4 | -------------------------------------------------------------------------------- /docs/pdf/ocp_test_and_validation_community_update_2022.pdf: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:2059d516d6f6c6a54fd07b166dc455b6fc3bf5c694ba065edc0d3946002df121 3 | size 1308902 4 | -------------------------------------------------------------------------------- /validators/spec_validator/go.mod: -------------------------------------------------------------------------------- 1 | module github.com/opencomputeproject/test_and_validation/json_validator 2 | 3 | go 1.16 4 | 5 | require ( 6 | github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect 7 | github.com/stretchr/testify v1.7.0 // indirect 8 | ) 9 | -------------------------------------------------------------------------------- /validators/spec_validator/README.md: -------------------------------------------------------------------------------- 1 | ## OCP T&V JSON schema validation tool 2 | 3 | This is the initial tool that uses the JSON schema spec to validate JSON or JSONL documents. 4 | 5 | ### Usage: 6 | 7 | ``` 8 | $ go run . ./samples/pcie_test.jsonl 9 | ``` 10 | -------------------------------------------------------------------------------- /json_spec/output/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/metadata", 4 | "title": "Metadata", 5 | "description": "TODO: link to md doc", 6 | "type": "object" 7 | } -------------------------------------------------------------------------------- /ci_scripts/validate_spec_samples.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -eu 4 | 5 | RESULTS_SCHEMA_PATH="$(readlink -f json_spec/results_spec.json)" 6 | 7 | pushd validators/spec_validator 8 | for jsonl in ./samples/*; do 9 | echo "Running sample $(basename $jsonl)" 10 | go run . -schema "$RESULTS_SCHEMA_PATH" "$jsonl" 11 | done 12 | -------------------------------------------------------------------------------- /json_spec/output/test_status.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/testStatus", 4 | "title": "Test status enum", 5 | "description": "TODO: link to md doc", 6 | "type": "string", 7 | "enum": [ 8 | "COMPLETE", 9 | "ERROR", 10 | "SKIP" 11 | ] 12 | } -------------------------------------------------------------------------------- /json_spec/output/test_step_start.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/testStepStart", 4 | "title": "Test step start", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "name": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | } 11 | }, 12 | "required": [ 13 | "name" 14 | ], 15 | "additionalProperties": false 16 | } -------------------------------------------------------------------------------- /json_spec/output/test_step_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/testStepEnd", 4 | "title": "Test step end", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "status": { 8 | "description": "TODO: link to md doc", 9 | "$ref": "/opencomputeproject/ocp-diag-core/testStatus" 10 | } 11 | }, 12 | "required": [ 13 | "status" 14 | ], 15 | "additionalProperties": false 16 | } -------------------------------------------------------------------------------- /.github/workflows/test_spec.yml: -------------------------------------------------------------------------------- 1 | name: tests 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | 9 | jobs: 10 | spec_validator: 11 | runs-on: ubuntu-20.04 12 | steps: 13 | - uses: actions/checkout@v2 14 | - uses: actions/setup-go@v2 15 | with: 16 | go-version: "1.17.6" 17 | # TODO(mimir-d): temporary disable until json schema is fully updated for v2 18 | # - name: unittests 19 | # run: ./ci_scripts/run_validator_tests.sh 20 | # - name: validate samples 21 | # run: ./ci_scripts/validate_spec_samples.sh 22 | -------------------------------------------------------------------------------- /json_spec/output/measurement_series_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/measurementSeriesEnd", 4 | "title": "measurementSeriesEnd", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "measurementSeriesId": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | }, 11 | "totalCount": { 12 | "description": "TODO: link to md doc", 13 | "type": "integer", 14 | "minimum": 0 15 | } 16 | }, 17 | "required": [ 18 | "measurementSeriesId", 19 | "totalCount" 20 | ], 21 | "additionalProperties": false 22 | } -------------------------------------------------------------------------------- /json_spec/output/test_run_end.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/testRunEnd", 4 | "title": "Test run end", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "status": { 8 | "description": "TODO: link to md doc", 9 | "$ref": "/opencomputeproject/ocp-diag-core/testStatus" 10 | }, 11 | "result": { 12 | "description": "TODO: link to md doc", 13 | "$ref": "#/$defs/testResult" 14 | } 15 | }, 16 | "required": [ 17 | "status", 18 | "result" 19 | ], 20 | "additionalProperties": false, 21 | "$defs": { 22 | "testResult": { 23 | "description": "TODO: link to md doc", 24 | "type": "string", 25 | "enum": [ 26 | "NOT_APPLICABLE", 27 | "PASS", 28 | "FAIL" 29 | ] 30 | } 31 | } 32 | } -------------------------------------------------------------------------------- /json_spec/output/source_location.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/sourceLocation", 4 | "title": "Source Location", 5 | "description": "Provides information about which file/line of the source code in the diagnostic package generates the output. See more details: https://github.com/opencomputeproject/ocp-diag-core/blob/main/json_spec/README.md#sourcelocation", 6 | "properties": { 7 | "file": { 8 | "description": "A part of the full path of the code generates the output. See file field in https://github.com/opencomputeproject/ocp-diag-core/blob/main/json_spec/README.md#sourcelocation", 9 | "type": "string" 10 | }, 11 | "line": { 12 | "description": "The line number in the file generates the output. See line field in https://github.com/opencomputeproject/ocp-diag-core/blob/main/json_spec/README.md#sourcelocation", 13 | "type": "number" 14 | } 15 | }, 16 | "required": [ 17 | "file", 18 | "line" 19 | ], 20 | "additionalProperties": false 21 | } 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License 2 | 3 | Copyright 2022 Google LLC. 4 | All rights reserved. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in 14 | all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /validators/spec_validator/go.sum: -------------------------------------------------------------------------------- 1 | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= 2 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 3 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 4 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 5 | github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 h1:TToq11gyfNlrMFZiYujSekIsPd9AmsA2Bj/iv+s4JHE= 6 | github.com/santhosh-tekuri/jsonschema/v5 v5.0.0/go.mod h1:FKdcjfQW6rpZSnxxUvEA5H/cDPdvJ/SZJQLWWXWGrZ0= 7 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 8 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= 9 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 10 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 11 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= 12 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 13 | -------------------------------------------------------------------------------- /json_spec/output/error.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/error", 4 | "title": "Error", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "symptom": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | }, 11 | "message": { 12 | "description": "TODO: link to md doc", 13 | "type": "string" 14 | }, 15 | "softwareInfoIds": { 16 | "description": "TODO: link to md doc", 17 | "$comment": "this may need additional schema to make it an ID", 18 | "type": "array", 19 | "items": { 20 | "type": "string" 21 | } 22 | }, 23 | "sourceLocation": { 24 | "description": "SourceLocation information for debugging or tracing program execution. See sourceLocation in https://github.com/opencomputeproject/ocp-diag-core/blob/main/json_spec/README.md#error", 25 | "$ref": "/opencomputeproject/ocp-diag-core/sourceLocation" 26 | } 27 | }, 28 | "required": [ 29 | "symptom" 30 | ], 31 | "additionalProperties": false 32 | } 33 | -------------------------------------------------------------------------------- /json_spec/output/file.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/file", 4 | "title": "File", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "displayName": { 8 | "description": "TODO: link to md", 9 | "type": "string" 10 | }, 11 | "uri": { 12 | "$comment": "maybe this should be more constrained", 13 | "description": "TODO: link to md", 14 | "type": "string" 15 | }, 16 | "description": { 17 | "description": "TODO: link to md", 18 | "type": "string" 19 | }, 20 | "contentType": { 21 | "description": "TODO: link to md", 22 | "type": "string" 23 | }, 24 | "isSnapshot": { 25 | "description": "TODO: link to md", 26 | "type": "boolean" 27 | }, 28 | "metadata": { 29 | "description": "TODO: link to md", 30 | "$ref": "/opencomputeproject/ocp-diag-core/metadata" 31 | } 32 | }, 33 | "required": [ 34 | "displayName", 35 | "uri", 36 | "isSnapshot" 37 | ] 38 | } -------------------------------------------------------------------------------- /json_spec/output/log.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/log", 4 | "title": "Log", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "severity": { 8 | "description": "TODO: link to md doc", 9 | "$ref": "#/$defs/severity" 10 | }, 11 | "message": { 12 | "description": "TODO: link to md doc", 13 | "type": "string" 14 | }, 15 | "sourceLocation": { 16 | "description": "SourceLocation information for debugging or tracing program execution. See sourceLocation field in https://github.com/opencomputeproject/ocp-diag-core/blob/main/json_spec/README.md#sourcelocation", 17 | "$ref": "/opencomputeproject/ocp-diag-core/sourceLocation" 18 | } 19 | }, 20 | "required": [ 21 | "severity", 22 | "message" 23 | ], 24 | "additionalProperties": false, 25 | "$defs": { 26 | "severity": { 27 | "description": "TODO: link to md doc", 28 | "type": "string", 29 | "enum": [ 30 | "INFO", 31 | "DEBUG", 32 | "WARNING", 33 | "ERROR", 34 | "FATAL" 35 | ] 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /json_spec/output/measurement_series_element.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/measurementSeriesElement", 4 | "title": "Measurement series element", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "index": { 8 | "description": "TODO: link to md doc", 9 | "type": "integer", 10 | "minimum": 0 11 | }, 12 | "value": { 13 | "description": "TODO: link to md doc", 14 | "type": [ 15 | "string", 16 | "boolean", 17 | "number" 18 | ] 19 | }, 20 | "timestamp": { 21 | "description": "TODO: link to spec md link", 22 | "type": "string", 23 | "format": "date-time" 24 | }, 25 | "measurementSeriesId": { 26 | "description": "TODO: link to md doc", 27 | "type": "string" 28 | }, 29 | "metadata": { 30 | "description": "TODO: link to md doc", 31 | "$ref": "/opencomputeproject/ocp-diag-core/metadata" 32 | } 33 | }, 34 | "required": [ 35 | "index", 36 | "value", 37 | "timestamp", 38 | "measurementSeriesId" 39 | ], 40 | "additionalProperties": false 41 | } -------------------------------------------------------------------------------- /json_spec/output/subcomponent.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/subcomponent", 4 | "title": "Subcomponent", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "type": { 8 | "description": "TODO: link to md doc", 9 | "$ref": "#/$defs/type" 10 | }, 11 | "name": { 12 | "description": "TODO: link to md doc", 13 | "type": "string" 14 | }, 15 | "location": { 16 | "description": "TODO: link to md doc", 17 | "type": "string" 18 | }, 19 | "version": { 20 | "description": "TODO: link to md doc", 21 | "type": "string" 22 | }, 23 | "revision": { 24 | "description": "TODO: link to md doc", 25 | "type": "string" 26 | } 27 | }, 28 | "required": [ 29 | "name" 30 | ], 31 | "additionalProperties": false, 32 | "$defs": { 33 | "type": { 34 | "description": "TODO: link to md doc", 35 | "type": "string", 36 | "enum": [ 37 | "UNSPECIFIED", 38 | "ASIC", 39 | "ASIC-SUBSYSTEM", 40 | "BUS", 41 | "FUNCTION", 42 | "CONNECTOR" 43 | ] 44 | } 45 | } 46 | } -------------------------------------------------------------------------------- /json_spec/output/measurement_series_start.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/measurementSeriesStart", 4 | "title": "Measurement series start", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "name": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | }, 11 | "unit": { 12 | "description": "TODO: link to md doc", 13 | "type": "string" 14 | }, 15 | "measurementSeriesId": { 16 | "description": "TODO: link to md doc", 17 | "type": "string" 18 | }, 19 | "validators": { 20 | "description": "TODO: link to md doc", 21 | "type": "array", 22 | "items": { 23 | "$ref": "/opencomputeproject/ocp-diag-core/validator" 24 | } 25 | }, 26 | "hardwareInfoId": { 27 | "description": "TODO: link to md doc", 28 | "type": "string" 29 | }, 30 | "subcomponent": { 31 | "description": "TODO: link to md doc", 32 | "$ref": "/opencomputeproject/ocp-diag-core/subcomponent" 33 | }, 34 | "metadata": { 35 | "description": "TODO: link to md doc", 36 | "$ref": "/opencomputeproject/ocp-diag-core/metadata" 37 | } 38 | }, 39 | "required": [ 40 | "name", 41 | "measurementSeriesId" 42 | ], 43 | "additionalProperties": false 44 | } -------------------------------------------------------------------------------- /json_spec/output/test_run_start.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/testRunStart", 4 | "title": "Test run start", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "name": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | }, 11 | "version": { 12 | "description": "TODO: link to md doc", 13 | "type": "string" 14 | }, 15 | "commandLine": { 16 | "description": "TODO: link to md doc", 17 | "type": "string" 18 | }, 19 | "parameters": { 20 | "description": "TODO: link to md doc", 21 | "$ref": "#/$defs/parameters" 22 | }, 23 | "dutInfo": { 24 | "description": "TODO: link to md doc", 25 | "$ref": "/opencomputeproject/ocp-diag-core/dutInfo" 26 | }, 27 | "metadata": { 28 | "description": "TODO: link to md doc", 29 | "$ref": "/opencomputeproject/ocp-diag-core/metadata" 30 | } 31 | }, 32 | "required": [ 33 | "name", 34 | "version", 35 | "commandLine", 36 | "parameters", 37 | "dutInfo" 38 | ], 39 | "additionalProperties": false, 40 | "$defs": { 41 | "parameters": { 42 | "$comment": "will be extracted in the future, when spec is published", 43 | "description": "TODO: link to md doc", 44 | "type": "object" 45 | } 46 | } 47 | } -------------------------------------------------------------------------------- /json_spec/output/measurement.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/measurement", 4 | "title": "Measurement", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "name": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | }, 11 | "value": { 12 | "description": "TODO: link to md doc", 13 | "type": [ 14 | "string", 15 | "boolean", 16 | "number" 17 | ] 18 | }, 19 | "unit": { 20 | "description": "TODO: link to md doc", 21 | "type": "string" 22 | }, 23 | "validators": { 24 | "description": "TODO: link to md doc", 25 | "type": "array", 26 | "items": { 27 | "$ref": "/opencomputeproject/ocp-diag-core/validator" 28 | } 29 | }, 30 | "hardwareInfoId": { 31 | "description": "TODO: link to md doc", 32 | "type": "string" 33 | }, 34 | "subcomponent": { 35 | "description": "TODO: link to md doc", 36 | "$ref": "/opencomputeproject/ocp-diag-core/subcomponent" 37 | }, 38 | "metadata": { 39 | "description": "TODO: link to md doc", 40 | "$ref": "/opencomputeproject/ocp-diag-core/metadata" 41 | } 42 | }, 43 | "required": [ 44 | "name", 45 | "value" 46 | ], 47 | "additionalProperties": false 48 | } -------------------------------------------------------------------------------- /json_spec/output/validator.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/validator", 4 | "title": "Measurement validator", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "name": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | }, 11 | "type": { 12 | "description": "TODO: link to md doc", 13 | "$ref": "#/$defs/type" 14 | }, 15 | "value": { 16 | "description": "TODO: link to md doc", 17 | "type": [ 18 | "string", 19 | "boolean", 20 | "number" 21 | ] 22 | }, 23 | "metadata": { 24 | "description": "TODO: link to md doc", 25 | "$ref": "/opencomputeproject/ocp-diag-core/metadata" 26 | } 27 | }, 28 | "required": [ 29 | "type", 30 | "value" 31 | ], 32 | "additionalProperties": false, 33 | "$defs": { 34 | "type": { 35 | "description": "TODO: link to md doc", 36 | "type": "string", 37 | "enum": [ 38 | "EQUAL", 39 | "NOT_EQUAL", 40 | "LESS_THAN", 41 | "LESS_THAN_OR_EQUAL", 42 | "GREATER_THAN", 43 | "GREATER_THAN_OR_EQUAL", 44 | "REGEX_MATCH", 45 | "REGEX_NO_MATCH", 46 | "IN_SET", 47 | "NOT_IN_SET" 48 | ] 49 | } 50 | } 51 | } -------------------------------------------------------------------------------- /json_spec/output/diagnosis.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/diagnosis", 4 | "title": "Diagnosis", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "verdict": { 8 | "description": "TODO: link to md", 9 | "type": "string" 10 | }, 11 | "type": { 12 | "description": "TODO: link to md", 13 | "$ref": "#/$defs/type" 14 | }, 15 | "message": { 16 | "description": "TODO: link to md", 17 | "type": "string" 18 | }, 19 | "hardwareInfoId": { 20 | "description": "TODO: link to md", 21 | "type": "string" 22 | }, 23 | "subcomponent": { 24 | "description": "TODO: link to md", 25 | "$ref": "/opencomputeproject/ocp-diag-core/subcomponent" 26 | }, 27 | "sourceLocation": { 28 | "description": "SourceLocation information for debugging or tracing program execution. See sourceLocation field in https://github.com/opencomputeproject/ocp-diag-core/blob/main/json_spec/README.md#diagnosis", 29 | "$ref": "/opencomputeproject/ocp-diag-core/sourceLocation" 30 | } 31 | }, 32 | "required": [ 33 | "verdict", 34 | "type" 35 | ], 36 | "additionalProperties": false, 37 | "$defs": { 38 | "type": { 39 | "description": "TODO: link to md doc", 40 | "type": "string", 41 | "enum": [ 42 | "PASS", 43 | "FAIL", 44 | "UNKNOWN" 45 | ] 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /json_spec/output/test_run_artifact.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/testRunArtifact", 4 | "title": "Test run artifact", 5 | "description": "TODO: link to md doc", 6 | "oneOf": [ 7 | { 8 | "properties": { 9 | "testRunStart": { 10 | "description": "TODO: link to md", 11 | "$ref": "/opencomputeproject/ocp-diag-core/testRunStart" 12 | } 13 | }, 14 | "required": [ 15 | "testRunStart" 16 | ] 17 | }, 18 | { 19 | "properties": { 20 | "testRunEnd": { 21 | "description": "TODO: link to md", 22 | "$ref": "/opencomputeproject/ocp-diag-core/testRunEnd" 23 | } 24 | }, 25 | "required": [ 26 | "testRunEnd" 27 | ] 28 | }, 29 | { 30 | "properties": { 31 | "log": { 32 | "description": "TODO: link to md", 33 | "$ref": "/opencomputeproject/ocp-diag-core/log" 34 | } 35 | }, 36 | "required": [ 37 | "log" 38 | ] 39 | }, 40 | { 41 | "properties": { 42 | "error": { 43 | "description": "TODO: link to md", 44 | "$ref": "/opencomputeproject/ocp-diag-core/error" 45 | } 46 | }, 47 | "required": [ 48 | "error" 49 | ] 50 | } 51 | ], 52 | "unevaluatedProperties": false 53 | } -------------------------------------------------------------------------------- /docs/ocp_presentations.md: -------------------------------------------------------------------------------- 1 | # OCP Keynote Presentations 2 | 3 | This page provides a few of the keynotes that our team have presented at the OCP Global summits concerning the OCP diagnostics initiative. 4 | 5 | This is a good introduction to the motivation of our project and the goals we aim to address via this collaboration with other OCP community members. 6 | 7 | --- 8 | 9 | ## Hardware Testing at Hyperscale 10 | 11 | Provides an overview of the OCP Diagnostics framework and presents the motivations behind the initiative and the challenges it sets out to solve. If you are new to our project, this is a great first place to start to learn more. 12 | 13 | Originally presented on October 11, 2021. 14 | 15 | * Presented by: 16 | * Dan Frame, Google 17 | * Paul Ng, Meta 18 | * Vincent Matossian, Meta 19 | * Yuanlin Wen, Google 20 | 21 | [Hardware Testing at Hyperscale](./pdf/hardware_testing_at_hyperscale_2021.pdf) 22 | 23 | --- 24 | 25 | ## OCP Test and Validation Community Update 2022 26 | 27 | Provides an update to the community on the progress made in 2022 on the project and introduces 2.0 of the OCP diagnostic output specification. 28 | 29 | Originally presented on October 18, 2022. 30 | 31 | * Presented by: 32 | * Daniel Alvarez Wise, Meta 33 | * Dan Frame, Google 34 | * Arun Koshy, HPE 35 | 36 | [OCP Test and Validation Community Update 2022](./pdf/ocp_test_and_validation_community_update_2022.pdf) 37 | 38 | --- 39 | 40 | ## Optimizing Repair Strategies via OCP Diagnostics 41 | 42 | Details how the OCP Diagnostic framework can be leveraged to drive optimization of hardware repair strategies for very large fleets of machines in the context of the challenges faced by Hyperscalers and their evolving machine requirements. 43 | 44 | Originally presented on October 18, 2022. 45 | 46 | * Presented by: 47 | * Yuanlin Wen, Google 48 | * Richa Mishra, Meta 49 | * Dan Frame, Google 50 | * Ming Xia, Google 51 | 52 | [Optimizing Repair Strategies with OCP Diagnostics 2022](./pdf/optimizing_repair_strategies_2022.pdf) 53 | -------------------------------------------------------------------------------- /json_spec/output/root.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/output", 4 | "title": "OutputArtifact", 5 | "description": "TODO: link to spec md link", 6 | "properties": { 7 | "sequenceNumber": { 8 | "description": "TODO: link to spec md link", 9 | "type": "integer", 10 | "minimum": 0 11 | }, 12 | "timestamp": { 13 | "description": "TODO: link to spec md link", 14 | "type": "string", 15 | "format": "date-time" 16 | } 17 | }, 18 | "required": [ 19 | "sequenceNumber", 20 | "timestamp" 21 | ], 22 | "unevaluatedProperties": false, 23 | "oneOf": [ 24 | { 25 | "properties": { 26 | "schemaVersion": { 27 | "description": "TODO: link to spec md link", 28 | "$ref": "#/$defs/schemaVersion" 29 | } 30 | }, 31 | "required": [ 32 | "schemaVersion" 33 | ] 34 | }, 35 | { 36 | "properties": { 37 | "testRunArtifact": { 38 | "description": "TODO: link to md", 39 | "$ref": "/opencomputeproject/ocp-diag-core/testRunArtifact" 40 | } 41 | }, 42 | "required": [ 43 | "testRunArtifact" 44 | ] 45 | }, 46 | { 47 | "properties": { 48 | "testStepArtifact": { 49 | "description": "TODO: link to md", 50 | "$ref": "/opencomputeproject/ocp-diag-core/testStepArtifact" 51 | } 52 | }, 53 | "required": [ 54 | "testStepArtifact" 55 | ] 56 | } 57 | ], 58 | "$defs": { 59 | "schemaVersion": { 60 | "properties": { 61 | "major": { 62 | "const": 2 63 | }, 64 | "minor": { 65 | "const": 0 66 | } 67 | }, 68 | "required": [ 69 | "major", 70 | "minor" 71 | ] 72 | } 73 | } 74 | } -------------------------------------------------------------------------------- /validators/spec_validator/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "flag" 6 | "fmt" 7 | "log" 8 | "os" 9 | "path" 10 | 11 | schemavalidator "github.com/opencomputeproject/test_and_validation/json_validator/pkg/schema_validator" 12 | ) 13 | 14 | var ( 15 | flagSet *flag.FlagSet 16 | flagSchema *string 17 | flagJSONL *bool 18 | ) 19 | 20 | func initFlags() { 21 | cmd := os.Args[0] 22 | 23 | flagSet = flag.NewFlagSet(cmd, flag.ContinueOnError) 24 | flagSchema = flagSet.String("schema", "", "Path to schema file") 25 | flagJSONL = flagSet.Bool("jsonl", true, "Treat input data as a JSONL. Otherwise it's a whole JSON document") 26 | 27 | flagSet.Usage = func() { 28 | fmt.Fprintf(flagSet.Output(), 29 | `Usage: 30 | 31 | %s [flags] filename 32 | 33 | filename: path to file to validate, - for stdin 34 | 35 | Flags: 36 | `, path.Base(cmd)) 37 | flagSet.PrintDefaults() 38 | } 39 | 40 | if err := flagSet.Parse(os.Args[1:]); err != nil { 41 | if err == flag.ErrHelp { 42 | return 43 | } 44 | log.Fatalf("failed to parse args: %v", err) 45 | } 46 | } 47 | 48 | func main() { 49 | initFlags() 50 | 51 | if *flagSchema == "" { 52 | log.Fatalln("The flag is mandatory") 53 | } 54 | 55 | filename := flagSet.Arg(0) 56 | if filename == "" { 57 | log.Fatalln("no filename passed, see -help") 58 | } 59 | 60 | sv, err := schemavalidator.New(*flagSchema) 61 | if err != nil { 62 | log.Fatal(err) 63 | } 64 | 65 | if *flagJSONL { 66 | if err := validateJSONL(sv, filename); err != nil { 67 | log.Fatalf("JSONL validation failed: %#v", err) 68 | } 69 | } else { 70 | if err := validateJSON(sv, filename); err != nil { 71 | log.Fatalf("JSON validation failed: %#v", err) 72 | } 73 | } 74 | 75 | fmt.Println("all ok") 76 | } 77 | 78 | func validateJSON(sv *schemavalidator.SchemaValidator, filename string) error { 79 | return sv.ValidateFile(filename) 80 | } 81 | 82 | func validateJSONL(sv *schemavalidator.SchemaValidator, filename string) error { 83 | var file *os.File 84 | if filename == "-" { 85 | // no file 86 | file = os.Stdin 87 | } else { 88 | file, err := os.Open(filename) 89 | if err != nil { 90 | return err 91 | } 92 | defer file.Close() 93 | } 94 | 95 | bs := bufio.NewScanner(file) 96 | for bs.Scan() { 97 | line := bs.Text() 98 | if err := sv.ValidateBytes([]byte(line)); err != nil { 99 | log.Printf("failed on line: %s", line) 100 | return err 101 | } 102 | } 103 | 104 | return nil 105 | } 106 | -------------------------------------------------------------------------------- /validators/spec_validator/pkg/schema_validator/validator.go: -------------------------------------------------------------------------------- 1 | package schemavalidator 2 | 3 | import ( 4 | "encoding/json" 5 | "fmt" 6 | "io/fs" 7 | "io/ioutil" 8 | "log" 9 | "os" 10 | "path" 11 | "path/filepath" 12 | 13 | js "github.com/santhosh-tekuri/jsonschema/v5" 14 | ) 15 | 16 | func getSchemaURL(schemaPath string) (string, error) { 17 | if _, err := os.Lstat(schemaPath); err != nil { 18 | return "", fmt.Errorf("no such folder: %s", schemaPath) 19 | } 20 | 21 | data, err := ioutil.ReadFile(schemaPath) 22 | if err != nil { 23 | return "", fmt.Errorf("failed to read the spec file: %s, %w", schemaPath, err) 24 | } 25 | 26 | var content struct { 27 | Url string `json:"$id"` 28 | } 29 | 30 | if err := json.Unmarshal(data, &content); err != nil { 31 | return "", fmt.Errorf("input schema for <%s> was invalid json or missing $id: %w", schemaPath, err) 32 | } 33 | 34 | return content.Url, nil 35 | } 36 | 37 | type SchemaValidator struct { 38 | s *js.Schema 39 | } 40 | 41 | // New makes a new SchemaValidator given the path to a root schema json file 42 | func New(schemaPath string) (*SchemaValidator, error) { 43 | c := js.NewCompiler() 44 | 45 | err := filepath.WalkDir(path.Dir(schemaPath), func(fpath string, d fs.DirEntry, err error) error { 46 | if !d.IsDir() && filepath.Ext(fpath) == ".json" { 47 | url, err := getSchemaURL(fpath) 48 | if err != nil { 49 | return fmt.Errorf("failed to get schema $id: %w", err) 50 | } 51 | 52 | f, err := os.Open(fpath) 53 | if err != nil { 54 | return fmt.Errorf("could not open extension spec: %v", err) 55 | } 56 | defer f.Close() 57 | 58 | if err := c.AddResource(url, f); err != nil { 59 | return err 60 | } 61 | log.Printf("Registered ext schema %v -> %v\n", url, fpath) 62 | } 63 | 64 | return nil 65 | }) 66 | if err != nil { 67 | return nil, err 68 | } 69 | 70 | mainURL, err := getSchemaURL(schemaPath) 71 | if err != nil { 72 | return nil, fmt.Errorf("failed to get $id for root schema: %w", err) 73 | } 74 | 75 | s, err := c.Compile(mainURL) 76 | if err != nil { 77 | return nil, err 78 | } 79 | 80 | return &SchemaValidator{s}, nil 81 | } 82 | 83 | func (sv *SchemaValidator) ValidateBytes(input []byte) error { 84 | var obj interface{} 85 | if err := json.Unmarshal(input, &obj); err != nil { 86 | return fmt.Errorf("unable to unmarshal json: %v", err) 87 | } 88 | 89 | return sv.s.Validate(obj) 90 | } 91 | 92 | func (sv *SchemaValidator) ValidateFile(filename string) error { 93 | data, err := ioutil.ReadFile(filename) 94 | if err != nil { 95 | return fmt.Errorf("cannot open input file: %v", err) 96 | } 97 | 98 | return sv.ValidateBytes(data) 99 | } 100 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Open Compute Project - Test & Validation 2 | 3 | ## Introduction 4 | 5 | The OCP test and validation project is a collaboration between data center hyperscalers participating in the OCP to provide a diagnostic framework. This framework aims to provide a portable solution for execution of hardware diagnostics, and a rich output model which can be cleanly integrated with various test executives, manufacturing execution systems, or lab data collection systems. 6 | 7 | The project was motivated by the common desire of being able to execute the same diagnostics across all phases of an NPI hardware projects life cycle including. 8 | 9 | * Hardware design and validation phases 10 | * Hardware bringup 11 | * System integration testing 12 | * Reliability testing 13 | * Third party lab validation 14 | * Mass producton and deployment 15 | * Manufacturing 16 | * Data center operations 17 | * RMA and reverse logistics 18 | 19 | ### Just getting started and want to know more? 20 | 21 | Please checkout our [OCP Keynote presentations](./docs/ocp_presentations.md) for more information about the Test and Validation track's common diagnostic framework initiative. 22 | 23 | ## What problems does it address? 24 | 25 | * Acceleration/re-use of diagnostic development and integration efforts at all stages of the product life-cycle. 26 | * Diagnostic portability across multiple products, environments, and use-cases. 27 | * Reproduction of test and validation issues across multiple hardware and software partners. 28 | * Simple sharing of component vendor tests to accelerate RMA and root-cause analysis. 29 | 30 | ## What does this project provide? 31 | 32 | * Proven thoroughly documented data model for diagnostic output 33 | * API’s to easily produce that output. 34 | * Streaming results for long running tests 35 | * Simple but capable parameter management 36 | * An optional device communication library 37 | * An optional hardware interface layer 38 | 39 | ## What are the different repos making up this effort? 40 | 41 | **This core repository is the nexus pointing to all of the other technical artifact repositories related to the OCP T&V project.** 42 | **See the next section for a complete list of all the artifacts maintained by the core team.** 43 | 44 | Also contained within is the detailed specification covering the schema of the diagnostic output and guidance on how it should be leveraged. This schema has been designed from the ground up to provide the necessary meta data and structure to be used effectively in heuristic and ML based systems for hardware troubleshooting and repair activities. It has been proven to be a key enabler of diagnosability and repair at scale for large fleets of data center hardware when combined with downstream repair automation systems. 45 | 46 | In this repo you will find: 47 | 48 | * *docs* - All publicly available materials related to the project. These include OCP Summit presentations, slide decks and other. 49 | * [*json_spec*](./json_spec/README.md) - A complete overview of the OCP output specification in markdown for easy reference, as well as a json schema document for programmatic consumption. 50 | * *validators* - JSON output validators for the OCP output specification. 51 | 52 | ### Related repositories 53 | 54 | All technical artifacts supporting the OCP T&V project are maintained in individual git repositories, each with its own lifecycle. Following are the available APIs that interface between usercode and the specification: 55 | 56 | * [*ocp-diag-core-cpp*](https://github.com/opencomputeproject/ocp-diag-core-cpp) - A Bazel based C++ api that can be used with C++ based diagnostic packages. It can also support python projects by virtue of providing bindings to the C++ api. 57 | * [*ocp-diag-core-python*](https://github.com/opencomputeproject/ocp-diag-core-python) - A _pure python_ implementation used to produce specification compliant output. 58 | 59 | In addition, you will also find the following repositories which provide hardware diagnostics that are compliant with the OCP diagnostic specification. 60 | 61 | These include: 62 | * [*ocp-diag-sat*](https://github.com/opencomputeproject/ocp-diag-sat) - An OCP compliant version of Google's popular Stressful Application Test for server and storage burnin testing. 63 | * [*ocp-diag-memtester*](https://github.com/opencomputeproject/ocp-diag-memtester) - A comprehensive DIMM and embedded memory pattern test application. 64 | * [*ocp-diag-pcicrawler*](https://github.com/opencomputeproject/ocp-diag-pcicrawler) - A portable PCIe bus health checker with support for the advanced error reporting standard. 65 | 66 | Overtime additional *non-differentiating* diagnostics will be added for storage and hardware accelerators. 67 | 68 | ## Contact information 69 | 70 | **Team:** ocp-test-validation@OCP-All.groups.io 71 | 72 | **Code reviews:** ocpdiag-core-team+reviews@google.com 73 | -------------------------------------------------------------------------------- /json_spec/output/test_step_artifact.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/testStepArtifact", 4 | "title": "Step artifact", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "testStepId": { 8 | "description": "TODO: link to md", 9 | "type": "string" 10 | } 11 | }, 12 | "required": [ 13 | "testStepId" 14 | ], 15 | "unevaluatedProperties": false, 16 | "oneOf": [ 17 | { 18 | "properties": { 19 | "testStepStart": { 20 | "description": "TODO: link to md", 21 | "$ref": "/opencomputeproject/ocp-diag-core/testStepStart" 22 | } 23 | }, 24 | "required": [ 25 | "testStepStart" 26 | ] 27 | }, 28 | { 29 | "properties": { 30 | "testStepEnd": { 31 | "description": "TODO: link to md", 32 | "$ref": "/opencomputeproject/ocp-diag-core/testStepEnd" 33 | } 34 | }, 35 | "required": [ 36 | "testStepEnd" 37 | ] 38 | }, 39 | { 40 | "properties": { 41 | "measurement": { 42 | "description": "TODO: link to md", 43 | "$ref": "/opencomputeproject/ocp-diag-core/measurement" 44 | } 45 | }, 46 | "required": [ 47 | "measurement" 48 | ] 49 | }, 50 | { 51 | "properties": { 52 | "measurementSeriesStart": { 53 | "description": "TODO: link to md", 54 | "$ref": "/opencomputeproject/ocp-diag-core/measurementSeriesStart" 55 | } 56 | }, 57 | "required": [ 58 | "measurementSeriesStart" 59 | ] 60 | }, 61 | { 62 | "properties": { 63 | "measurementSeriesEnd": { 64 | "description": "TODO: link to md", 65 | "$ref": "/opencomputeproject/ocp-diag-core/measurementSeriesEnd" 66 | } 67 | }, 68 | "required": [ 69 | "measurementSeriesEnd" 70 | ] 71 | }, 72 | { 73 | "properties": { 74 | "measurementSeriesElement": { 75 | "description": "TODO: link to md", 76 | "$ref": "/opencomputeproject/ocp-diag-core/measurementSeriesElement" 77 | } 78 | }, 79 | "required": [ 80 | "measurementSeriesElement" 81 | ] 82 | }, 83 | { 84 | "properties": { 85 | "error": { 86 | "description": "TODO: link to md", 87 | "$ref": "/opencomputeproject/ocp-diag-core/error" 88 | } 89 | }, 90 | "required": [ 91 | "error" 92 | ] 93 | }, 94 | { 95 | "properties": { 96 | "log": { 97 | "description": "TODO: link to md", 98 | "$ref": "/opencomputeproject/ocp-diag-core/log" 99 | } 100 | }, 101 | "required": [ 102 | "log" 103 | ] 104 | }, 105 | { 106 | "properties": { 107 | "diagnosis": { 108 | "description": "TODO: link to md", 109 | "$ref": "/opencomputeproject/ocp-diag-core/diagnosis" 110 | } 111 | }, 112 | "required": [ 113 | "diagnosis" 114 | ] 115 | }, 116 | { 117 | "properties": { 118 | "file": { 119 | "description": "TODO: link to md", 120 | "$ref": "/opencomputeproject/ocp-diag-core/file" 121 | } 122 | }, 123 | "required": [ 124 | "file" 125 | ] 126 | }, 127 | { 128 | "properties": { 129 | "extension": { 130 | "$ref": "#/$defs/extension" 131 | } 132 | }, 133 | "required": [ 134 | "extension" 135 | ] 136 | } 137 | ], 138 | "$defs": { 139 | "extension": { 140 | "properties": { 141 | "name": { 142 | "description": "TODO: link to md", 143 | "type": "string" 144 | }, 145 | "content": { 146 | "description": "TODO: link to md", 147 | "type": "object" 148 | } 149 | }, 150 | "required": [ 151 | "name", 152 | "content" 153 | ] 154 | } 155 | } 156 | } -------------------------------------------------------------------------------- /json_spec/output/dut_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json-schema.org/draft/2020-12/schema", 3 | "$id": "https://github.com/opencomputeproject/ocp-diag-core/dutInfo", 4 | "title": "Dut info", 5 | "description": "TODO: link to md doc", 6 | "properties": { 7 | "dutInfoId": { 8 | "description": "TODO: link to md doc", 9 | "type": "string" 10 | }, 11 | "name": { 12 | "description": "TODO: link to md doc", 13 | "type": "string" 14 | }, 15 | "platformInfos": { 16 | "description": "TODO: link to md doc", 17 | "type": "array", 18 | "items": { 19 | "$ref": "#/$defs/platformInfo" 20 | } 21 | }, 22 | "softwareInfos": { 23 | "description": "TODO: link to md doc", 24 | "type": "array", 25 | "items": { 26 | "$ref": "#/$defs/softwareInfo" 27 | } 28 | }, 29 | "hardwareInfos": { 30 | "description": "TODO: link to md doc", 31 | "type": "array", 32 | "items": { 33 | "$ref": "#/$defs/hardwareInfo" 34 | } 35 | }, 36 | "metadata": { 37 | "description": "TODO: link to md doc", 38 | "$ref": "/opencomputeproject/ocp-diag-core/metadata" 39 | } 40 | }, 41 | "required": [ 42 | "dutInfoId" 43 | ], 44 | "additionalProperties": false, 45 | "$defs": { 46 | "platformInfo": { 47 | "properties": { 48 | "info": { 49 | "description": "TODO: link to md doc", 50 | "type": "string" 51 | } 52 | }, 53 | "required": [ 54 | "info" 55 | ], 56 | "additionalProperties": false 57 | }, 58 | "softwareInfo": { 59 | "properties": { 60 | "name": { 61 | "description": "TODO: link to md doc", 62 | "type": "string" 63 | }, 64 | "version": { 65 | "description": "TODO: link to md doc", 66 | "type": "string" 67 | }, 68 | "revision": { 69 | "description": "TODO: link to md doc", 70 | "type": "string" 71 | }, 72 | "softwareType": { 73 | "description": "TODO: link to md doc", 74 | "type": "string", 75 | "enum": [ 76 | "UNSPECIFIED", 77 | "FIRMWARE", 78 | "SYSTEM", 79 | "APPLICATION" 80 | ] 81 | }, 82 | "softwareInfoId": { 83 | "description": "TODO: link to md doc", 84 | "type": "string" 85 | }, 86 | "computerSystem": { 87 | "description": "TODO: link to md doc", 88 | "type": "string" 89 | } 90 | }, 91 | "required": [ 92 | "name", 93 | "softwareInfoId" 94 | ], 95 | "additionalProperties": false 96 | }, 97 | "hardwareInfo": { 98 | "properties": { 99 | "name": { 100 | "description": "TODO: link to md doc", 101 | "type": "string" 102 | }, 103 | "version": { 104 | "description": "TODO: link to md doc", 105 | "type": "string" 106 | }, 107 | "revision": { 108 | "description": "TODO: link to md doc", 109 | "type": "string" 110 | }, 111 | "location": { 112 | "description": "TODO: link to md doc", 113 | "type": "string" 114 | }, 115 | "hardwareInfoId": { 116 | "description": "TODO: link to md doc", 117 | "type": "string" 118 | }, 119 | "serialNumber": { 120 | "description": "TODO: link to md doc", 121 | "type": "string" 122 | }, 123 | "partNumber": { 124 | "description": "TODO: link to md doc", 125 | "type": "string" 126 | }, 127 | "partType": { 128 | "description": "TODO: link to md doc", 129 | "type": "string" 130 | }, 131 | "manufacturer": { 132 | "description": "TODO: link to md doc", 133 | "type": "string" 134 | }, 135 | "manufacturerPartNumber": { 136 | "description": "TODO: link to md doc", 137 | "type": "string" 138 | }, 139 | "odataId": { 140 | "description": "TODO: link to md doc", 141 | "type": "string" 142 | }, 143 | "computerSystem": { 144 | "description": "TODO: link to md doc", 145 | "type": "string" 146 | }, 147 | "manager": { 148 | "description": "TODO: link to md doc", 149 | "type": "string" 150 | } 151 | }, 152 | "required": [ 153 | "name", 154 | "hardwareInfoId" 155 | ], 156 | "additionalProperties": false 157 | } 158 | } 159 | } -------------------------------------------------------------------------------- /validators/spec_validator/samples/cpu_integrity_test.jsonl: -------------------------------------------------------------------------------- 1 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Started CpuIntegrity"}},"sequenceNumber":0,"timestamp":"2021-07-02T00:42:10.663058547Z"} 2 | {"testRunArtifact":{"testRunStart":{"name":"CpuIntegrity","version":"382526885","parameters":{"@type":"type.googleapis.com/google.protobuf.Empty"},"dutInfo":[{"hostname":"mvcs28","hardwareComponents":[{"hardwareInfoId":"0","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"","manufacturer":"cpu_vendor","mfgPartNumber":"cpu_model","partType":"cpu"},{"hardwareInfoId":"1","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"","manufacturer":"cpu_vendor","mfgPartNumber":"cpu_model","partType":"cpu"}],"softwareInfos":[]}]}},"sequenceNumber":1,"timestamp":"2021-07-02T00:42:10.864863949Z"} 3 | {"testStepArtifact":{"testStepStart":{"name":"determine CPU arch"},"testStepId":"0"},"sequenceNumber":2,"timestamp":"2021-07-02T00:42:10.865093260Z"} 4 | {"testStepArtifact":{"testStepEnd":{"name":"determine CPU arch","status":"COMPLETE"},"testStepId":"0"},"sequenceNumber":3,"timestamp":"2021-07-02T00:42:10.865212095Z"} 5 | {"testStepArtifact":{"testStepStart":{"name":"read cpuinfo file"},"testStepId":"1"},"sequenceNumber":4,"timestamp":"2021-07-02T00:42:10.865272365Z"} 6 | {"testStepArtifact":{"testStepEnd":{"name":"read cpuinfo file","status":"COMPLETE"},"testStepId":"1"},"sequenceNumber":5,"timestamp":"2021-07-02T00:42:10.881422756Z"} 7 | {"testStepArtifact":{"testStepStart":{"name":"analyze cpuinfo contents"},"testStepId":"2"},"sequenceNumber":6,"timestamp":"2021-07-02T00:42:10.881559346Z"} 8 | {"testStepArtifact":{"log":{"severity":"INFO","text":"All checked cpuinfo entries' value are identical."},"testStepId":"2"},"sequenceNumber":7,"timestamp":"2021-07-02T00:42:10.881619854Z"} 9 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Cpu MHz differs, checking if CPU scaling is enabled"},"testStepId":"2"},"sequenceNumber":8,"timestamp":"2021-07-02T00:42:10.882380100Z"} 10 | {"testStepArtifact":{"testStepEnd":{"name":"analyze cpuinfo contents","status":"COMPLETE"},"testStepId":"2"},"sequenceNumber":9,"timestamp":"2021-07-02T00:42:10.882507045Z"} 11 | {"testStepArtifact":{"testStepStart":{"name":"check maxfreq files"},"testStepId":"3"},"sequenceNumber":10,"timestamp":"2021-07-02T00:42:10.882576366Z"} 12 | {"testStepArtifact":{"diagnosis":{"symptom":"cpu-maxfreq-pass","type":"PASS","msg":"All maximum cpu clock rate (cpu MHz) are identical","hardwareInfoId":["0","1"]},"testStepId":"3"},"sequenceNumber":11,"timestamp":"2021-07-02T00:42:10.954864616Z"} 13 | {"testStepArtifact":{"testStepEnd":{"name":"check maxfreq files","status":"COMPLETE"},"testStepId":"3"},"sequenceNumber":12,"timestamp":"2021-07-02T00:42:10.968251770Z"} 14 | {"testStepArtifact":{"testStepStart":{"name":"cpuinfo entry count"},"testStepId":"4"},"sequenceNumber":13,"timestamp":"2021-07-02T00:42:10.968434057Z"} 15 | {"testStepArtifact":{"diagnosis":{"symptom":"cpuinfo-count-pass","type":"PASS","msg":"All entry counts are equal to the number of cpus.","hardwareInfoId":["0","1"]},"testStepId":"4"},"sequenceNumber":14,"timestamp":"2021-07-02T00:42:10.968488691Z"} 16 | {"testStepArtifact":{"testStepEnd":{"name":"cpuinfo entry count","status":"COMPLETE"},"testStepId":"4"},"sequenceNumber":15,"timestamp":"2021-07-02T00:42:10.968526905Z"} 17 | {"testStepArtifact":{"testStepStart":{"name":"emit measurements"},"testStepId":"5"},"sequenceNumber":16,"timestamp":"2021-07-02T00:42:10.968556736Z"} 18 | {"testStepArtifact":{"measurement":{"info":{"name":"stepping","unit":"","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":1,"dutTimestamp":"2021-07-02T00:42:10.968607010Z"}},"testStepId":"5"},"sequenceNumber":17,"timestamp":"2021-07-02T00:42:10.968610222Z"} 19 | {"testStepArtifact":{"measurement":{"info":{"name":"cpu_cores","unit":"","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":28,"dutTimestamp":"2021-07-02T00:42:10.968676104Z"}},"testStepId":"5"},"sequenceNumber":18,"timestamp":"2021-07-02T00:42:10.968676539Z"} 20 | {"testStepArtifact":{"measurement":{"info":{"name":"cpu_MHz","unit":"MHz","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":1798.116943359375,"dutTimestamp":"2021-07-02T00:42:10.968725070Z"}},"testStepId":"5"},"sequenceNumber":19,"timestamp":"2021-07-02T00:42:10.968725513Z"} 21 | {"testStepArtifact":{"measurement":{"info":{"name":"cache_size","unit":"KB","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":53760,"dutTimestamp":"2021-07-02T00:42:10.968767599Z"}},"testStepId":"5"},"sequenceNumber":20,"timestamp":"2021-07-02T00:42:10.968768002Z"} 22 | {"testStepArtifact":{"diagnosis":{"symptom":"homogeneous-cpus","type":"PASS","msg":"All CPUs are the same","hardwareInfoId":["1"]},"testStepId":"5"},"sequenceNumber":21,"timestamp":"2021-07-02T00:42:10.968806436Z"} 23 | {"testStepArtifact":{"measurement":{"info":{"name":"stepping","unit":"","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":1,"dutTimestamp":"2021-07-02T00:42:10.968838242Z"}},"testStepId":"5"},"sequenceNumber":22,"timestamp":"2021-07-02T00:42:10.968838533Z"} 24 | {"testStepArtifact":{"measurement":{"info":{"name":"cpu_cores","unit":"","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":28,"dutTimestamp":"2021-07-02T00:42:10.968877019Z"}},"testStepId":"5"},"sequenceNumber":23,"timestamp":"2021-07-02T00:42:10.968877285Z"} 25 | {"testStepArtifact":{"measurement":{"info":{"name":"cpu_MHz","unit":"MHz","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":1718.864013671875,"dutTimestamp":"2021-07-02T00:42:10.968916097Z"}},"testStepId":"5"},"sequenceNumber":24,"timestamp":"2021-07-02T00:42:10.968916416Z"} 26 | {"testStepArtifact":{"measurement":{"info":{"name":"cache_size","unit":"KB","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":53760,"dutTimestamp":"2021-07-02T00:42:10.968954516Z"}},"testStepId":"5"},"sequenceNumber":25,"timestamp":"2021-07-02T00:42:10.968954808Z"} 27 | {"testStepArtifact":{"diagnosis":{"symptom":"homogeneous-cpus","type":"PASS","msg":"All CPUs are the same","hardwareInfoId":["0"]},"testStepId":"5"},"sequenceNumber":26,"timestamp":"2021-07-02T00:42:10.968990868Z"} 28 | {"testStepArtifact":{"testStepEnd":{"name":"emit measurements","status":"COMPLETE"},"testStepId":"5"},"sequenceNumber":27,"timestamp":"2021-07-02T00:42:10.969019824Z"} 29 | {"testRunArtifact":{"testRunEnd":{"name":"CpuIntegrity","status":"COMPLETE","result":"PASS"}},"sequenceNumber":28,"timestamp":"2021-07-02T00:42:10.969240360Z"} 30 | -------------------------------------------------------------------------------- /validators/spec_validator/samples/mlc_test.jsonl: -------------------------------------------------------------------------------- 1 | {"testRunArtifact":{"testRunStart":{"name":"mlc","version":"382526885","parameters":{"@type":"type.googleapis.com/google.protobuf.Empty"},"dutInfo":[{"hostname":"mvcs28","hardwareComponents":[{"hardwareInfoId":"0","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"1","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"}],"softwareInfos":[{"softwareInfoId":"0","arena":"","name":"cpu-vendor-mlc Diag","version":""},{"softwareInfoId":"1","arena":"","name":"gsys","version":"(unknown)"}]}]}},"sequenceNumber":0,"timestamp":"2021-07-02T00:43:47.822178936Z"} 2 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Using default thresholds..."}},"sequenceNumber":1,"timestamp":"2021-07-02T00:43:47.822717646Z"} 3 | {"testStepArtifact":{"testStepStart":{"name":"Run MLC binary to measure bandwidth"},"testStepId":"0"},"sequenceNumber":2,"timestamp":"2021-07-02T00:43:47.822781752Z"} 4 | {"testStepArtifact":{"log":{"severity":"INFO","text":"cpu-vendor(R) Memory Latency Checker - v3.6\\nCommand line parameters: --bandwidth_matrix \\n\\nUsing buffer size of 100.000MiB/thread for reads and an additional 100.000MiB/thread for writes\\nMeasuring Memory Bandwidths between nodes within system \\nBandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec)\\nUsing all the threads from each core if Hyper-threading is enabled\\nUsing Read-only traffic type\\n\t\tNuma node\\nNuma node\t 0\t 1\t\\n 0\t175418.9\t46757.6\t\\n 1\t46777.7\t175745.2\t\\n"},"testStepId":"0"},"sequenceNumber":3,"timestamp":"2021-07-02T00:45:52.705471795Z"} 5 | {"testStepArtifact":{"testStepEnd":{"name":"Run MLC binary to measure bandwidth","status":"COMPLETE"},"testStepId":"0"},"sequenceNumber":4,"timestamp":"2021-07-02T00:45:52.705720561Z"} 6 | {"testStepArtifact":{"testStepStart":{"name":"Measure Internode Bandwidth"},"testStepId":"1"},"sequenceNumber":5,"timestamp":"2021-07-02T00:45:52.705786678Z"} 7 | {"testStepArtifact":{"measurement":{"info":{"name":"inter_node_bandwidth_min","unit":"MB/sec","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":"Infinity","minimum":49500},"value":46757.6}},"testStepId":"1"},"sequenceNumber":6,"timestamp":"2021-07-02T00:45:52.706860891Z"} 8 | {"testStepArtifact":{"measurement":{"info":{"name":"inter_node_bandwidth_min","unit":"MB/sec","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":"Infinity","minimum":49500},"value":46777.7}},"testStepId":"1"},"sequenceNumber":7,"timestamp":"2021-07-02T00:45:52.707105162Z"} 9 | {"testStepArtifact":{"log":{"severity":"ERROR","text":"Symptom: bad-inter-node-bandwidth Error: Measured value 46757.6 \u003c minimum bandwidth threshold 49500"},"testStepId":"1"},"sequenceNumber":8,"timestamp":"2021-07-02T00:45:52.707191028Z"} 10 | {"testStepArtifact":{"testStepEnd":{"name":"Measure Internode Bandwidth","status":"COMPLETE"},"testStepId":"1"},"sequenceNumber":9,"timestamp":"2021-07-02T00:45:52.707229562Z"} 11 | {"testStepArtifact":{"testStepStart":{"name":"Measure Intranode Bandwidth"},"testStepId":"2"},"sequenceNumber":10,"timestamp":"2021-07-02T00:45:52.707267991Z"} 12 | {"testStepArtifact":{"measurement":{"info":{"name":"intra_node_bandwidth_min","unit":"MB/sec","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":"Infinity","minimum":139500},"value":175418.9}},"testStepId":"2"},"sequenceNumber":11,"timestamp":"2021-07-02T00:45:52.707431937Z"} 13 | {"testStepArtifact":{"measurement":{"info":{"name":"intra_node_bandwidth_min","unit":"MB/sec","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":"Infinity","minimum":139500},"value":175745.2}},"testStepId":"2"},"sequenceNumber":12,"timestamp":"2021-07-02T00:45:52.707572680Z"} 14 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Symptom: good-intra-node-bandwidth Message: Measured value 175418.9 \u003e= minimum bandwidth threshold 139500"},"testStepId":"2"},"sequenceNumber":13,"timestamp":"2021-07-02T00:45:52.707624272Z"} 15 | {"testStepArtifact":{"testStepEnd":{"name":"Measure Intranode Bandwidth","status":"COMPLETE"},"testStepId":"2"},"sequenceNumber":14,"timestamp":"2021-07-02T00:45:52.707655442Z"} 16 | {"testStepArtifact":{"testStepStart":{"name":"Run MLC binary to measure latency"},"testStepId":"3"},"sequenceNumber":15,"timestamp":"2021-07-02T00:45:52.707689291Z"} 17 | {"testStepArtifact":{"log":{"severity":"INFO","text":"cpu-vendor(R) Memory Latency Checker - v3.6\\nCommand line parameters: --latency_matrix -l512 \\n\\nUsing buffer size of 200.000MiB\\nMeasuring idle latencies (in ns)...\\n\t\tNuma node\\nNuma node\t 0\t 1\t\\n 0\t 120.2\t 247.1\t\\n 1\t 248.5\t 121.6\t\\n"},"testStepId":"3"},"sequenceNumber":16,"timestamp":"2021-07-02T00:46:15.734678231Z"} 18 | {"testStepArtifact":{"testStepEnd":{"name":"Run MLC binary to measure latency","status":"COMPLETE"},"testStepId":"3"},"sequenceNumber":17,"timestamp":"2021-07-02T00:46:15.734891813Z"} 19 | {"testStepArtifact":{"testStepStart":{"name":"Measure Internode Latency"},"testStepId":"4"},"sequenceNumber":18,"timestamp":"2021-07-02T00:46:15.734952162Z"} 20 | {"testStepArtifact":{"measurement":{"info":{"name":"inter_node_latency_max","unit":"nanoseconds","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":137.5,"minimum":0},"value":247.1}},"testStepId":"4"},"sequenceNumber":19,"timestamp":"2021-07-02T00:46:15.735466362Z"} 21 | {"testStepArtifact":{"measurement":{"info":{"name":"inter_node_latency_max","unit":"nanoseconds","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":137.5,"minimum":0},"value":248.5}},"testStepId":"4"},"sequenceNumber":20,"timestamp":"2021-07-02T00:46:15.735658068Z"} 22 | {"testStepArtifact":{"log":{"severity":"ERROR","text":"Symptom: bad-inter-node-latency Error: Measured value 248.5 \u003e maximum latency threshold 137.5"},"testStepId":"4"},"sequenceNumber":21,"timestamp":"2021-07-02T00:46:15.735726364Z"} 23 | {"testStepArtifact":{"testStepEnd":{"name":"Measure Internode Latency","status":"COMPLETE"},"testStepId":"4"},"sequenceNumber":22,"timestamp":"2021-07-02T00:46:15.735763455Z"} 24 | {"testStepArtifact":{"testStepStart":{"name":"Measure Intranode Latency"},"testStepId":"5"},"sequenceNumber":23,"timestamp":"2021-07-02T00:46:15.735799288Z"} 25 | {"testStepArtifact":{"measurement":{"info":{"name":"intra_node_latency_max","unit":"nanoseconds","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":88,"minimum":0},"value":120.2}},"testStepId":"5"},"sequenceNumber":24,"timestamp":"2021-07-02T00:46:15.735951096Z"} 26 | {"testStepArtifact":{"measurement":{"info":{"name":"intra_node_latency_max","unit":"nanoseconds","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":88,"minimum":0},"value":121.6}},"testStepId":"5"},"sequenceNumber":25,"timestamp":"2021-07-02T00:46:15.736071645Z"} 27 | {"testStepArtifact":{"log":{"severity":"ERROR","text":"Symptom: bad-intra-node-latency Error: Measured value 121.6 \u003e maximum latency threshold 88"},"testStepId":"5"},"sequenceNumber":26,"timestamp":"2021-07-02T00:46:15.736118015Z"} 28 | {"testStepArtifact":{"testStepEnd":{"name":"Measure Intranode Latency","status":"COMPLETE"},"testStepId":"5"},"sequenceNumber":27,"timestamp":"2021-07-02T00:46:15.736152332Z"} 29 | {"testRunArtifact":{"testRunEnd":{"name":"mlc","status":"COMPLETE","result":"PASS"}},"sequenceNumber":28,"timestamp":"2021-07-02T00:46:15.736198419Z"} 30 | -------------------------------------------------------------------------------- /validators/spec_validator/samples/example_monitor_test.jsonl: -------------------------------------------------------------------------------- 1 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Initiated TestRun"}},"sequenceNumber":0,"timestamp":"2021-06-13T05:12:28.104678388Z"} 2 | {"testRunArtifact":{"testRunStart":{"name":"example_monitor","version":"378514150","parameters":{"@type":"type.googleapis.com/meltan.examples.monitor.Params"},"dutInfo":[]}},"sequenceNumber":1,"timestamp":"2021-06-13T05:12:28.108383583Z"} 3 | {"testStepArtifact":{"testStepStart":{"name":"step-0"},"testStepId":"0"},"sequenceNumber":2,"timestamp":"2021-06-13T05:12:28.109133858Z"} 4 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 0"},"testStepId":"0"},"sequenceNumber":3,"timestamp":"2021-06-13T05:12:28.109496954Z"} 5 | {"testStepArtifact":{"testStepEnd":{"name":"step-0","status":"COMPLETE"},"testStepId":"0"},"sequenceNumber":4,"timestamp":"2021-06-13T05:12:29.109823807Z"} 6 | {"testStepArtifact":{"testStepStart":{"name":"step-1"},"testStepId":"1"},"sequenceNumber":5,"timestamp":"2021-06-13T05:12:29.110257387Z"} 7 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 1"},"testStepId":"1"},"sequenceNumber":6,"timestamp":"2021-06-13T05:12:29.110493944Z"} 8 | {"testStepArtifact":{"testStepEnd":{"name":"step-1","status":"COMPLETE"},"testStepId":"1"},"sequenceNumber":7,"timestamp":"2021-06-13T05:12:30.110950912Z"} 9 | {"testStepArtifact":{"testStepStart":{"name":"step-2"},"testStepId":"2"},"sequenceNumber":8,"timestamp":"2021-06-13T05:12:30.111743383Z"} 10 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 2"},"testStepId":"2"},"sequenceNumber":9,"timestamp":"2021-06-13T05:12:30.112318342Z"} 11 | {"testStepArtifact":{"testStepEnd":{"name":"step-2","status":"COMPLETE"},"testStepId":"2"},"sequenceNumber":10,"timestamp":"2021-06-13T05:12:31.112916528Z"} 12 | {"testStepArtifact":{"testStepStart":{"name":"step-3"},"testStepId":"3"},"sequenceNumber":11,"timestamp":"2021-06-13T05:12:31.113488449Z"} 13 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 3"},"testStepId":"3"},"sequenceNumber":12,"timestamp":"2021-06-13T05:12:31.113877339Z"} 14 | {"testStepArtifact":{"testStepEnd":{"name":"step-3","status":"COMPLETE"},"testStepId":"3"},"sequenceNumber":13,"timestamp":"2021-06-13T05:12:32.114306516Z"} 15 | {"testStepArtifact":{"testStepStart":{"name":"step-4"},"testStepId":"4"},"sequenceNumber":14,"timestamp":"2021-06-13T05:12:32.115367136Z"} 16 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 4"},"testStepId":"4"},"sequenceNumber":15,"timestamp":"2021-06-13T05:12:32.116022352Z"} 17 | {"testStepArtifact":{"testStepEnd":{"name":"step-4","status":"COMPLETE"},"testStepId":"4"},"sequenceNumber":16,"timestamp":"2021-06-13T05:12:33.116583284Z"} 18 | {"testStepArtifact":{"testStepStart":{"name":"step-5"},"testStepId":"5"},"sequenceNumber":17,"timestamp":"2021-06-13T05:12:33.117588160Z"} 19 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 5"},"testStepId":"5"},"sequenceNumber":18,"timestamp":"2021-06-13T05:12:33.118383550Z"} 20 | {"testStepArtifact":{"testStepEnd":{"name":"step-5","status":"COMPLETE"},"testStepId":"5"},"sequenceNumber":19,"timestamp":"2021-06-13T05:12:34.118905375Z"} 21 | {"testStepArtifact":{"testStepStart":{"name":"step-6"},"testStepId":"6"},"sequenceNumber":20,"timestamp":"2021-06-13T05:12:34.119642938Z"} 22 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 6"},"testStepId":"6"},"sequenceNumber":21,"timestamp":"2021-06-13T05:12:34.120163880Z"} 23 | {"testStepArtifact":{"testStepEnd":{"name":"step-6","status":"COMPLETE"},"testStepId":"6"},"sequenceNumber":22,"timestamp":"2021-06-13T05:12:35.120755662Z"} 24 | {"testStepArtifact":{"testStepStart":{"name":"step-7"},"testStepId":"7"},"sequenceNumber":23,"timestamp":"2021-06-13T05:12:35.121485849Z"} 25 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 7"},"testStepId":"7"},"sequenceNumber":24,"timestamp":"2021-06-13T05:12:35.121961170Z"} 26 | {"testStepArtifact":{"testStepEnd":{"name":"step-7","status":"COMPLETE"},"testStepId":"7"},"sequenceNumber":25,"timestamp":"2021-06-13T05:12:36.122487762Z"} 27 | {"testStepArtifact":{"testStepStart":{"name":"step-8"},"testStepId":"8"},"sequenceNumber":26,"timestamp":"2021-06-13T05:12:36.123217352Z"} 28 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 8"},"testStepId":"8"},"sequenceNumber":27,"timestamp":"2021-06-13T05:12:36.123774867Z"} 29 | {"testStepArtifact":{"testStepEnd":{"name":"step-8","status":"COMPLETE"},"testStepId":"8"},"sequenceNumber":28,"timestamp":"2021-06-13T05:12:37.124219667Z"} 30 | {"testStepArtifact":{"testStepStart":{"name":"step-9"},"testStepId":"9"},"sequenceNumber":29,"timestamp":"2021-06-13T05:12:37.124906197Z"} 31 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 9"},"testStepId":"9"},"sequenceNumber":30,"timestamp":"2021-06-13T05:12:37.125275966Z"} 32 | {"testStepArtifact":{"testStepEnd":{"name":"step-9","status":"COMPLETE"},"testStepId":"9"},"sequenceNumber":31,"timestamp":"2021-06-13T05:12:38.125675474Z"} 33 | {"testStepArtifact":{"testStepStart":{"name":"step-10"},"testStepId":"10"},"sequenceNumber":32,"timestamp":"2021-06-13T05:12:38.126037317Z"} 34 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 10"},"testStepId":"10"},"sequenceNumber":33,"timestamp":"2021-06-13T05:12:38.126238041Z"} 35 | {"testStepArtifact":{"testStepEnd":{"name":"step-10","status":"COMPLETE"},"testStepId":"10"},"sequenceNumber":34,"timestamp":"2021-06-13T05:12:39.126518339Z"} 36 | {"testStepArtifact":{"testStepStart":{"name":"step-11"},"testStepId":"11"},"sequenceNumber":35,"timestamp":"2021-06-13T05:12:39.127316809Z"} 37 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 11"},"testStepId":"11"},"sequenceNumber":36,"timestamp":"2021-06-13T05:12:39.127813467Z"} 38 | {"testStepArtifact":{"testStepEnd":{"name":"step-11","status":"COMPLETE"},"testStepId":"11"},"sequenceNumber":37,"timestamp":"2021-06-13T05:12:40.128486417Z"} 39 | {"testStepArtifact":{"testStepStart":{"name":"step-12"},"testStepId":"12"},"sequenceNumber":38,"timestamp":"2021-06-13T05:12:40.129273635Z"} 40 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 12"},"testStepId":"12"},"sequenceNumber":39,"timestamp":"2021-06-13T05:12:40.129811035Z"} 41 | {"testStepArtifact":{"testStepEnd":{"name":"step-12","status":"COMPLETE"},"testStepId":"12"},"sequenceNumber":40,"timestamp":"2021-06-13T05:12:41.130287626Z"} 42 | {"testStepArtifact":{"testStepStart":{"name":"step-13"},"testStepId":"13"},"sequenceNumber":41,"timestamp":"2021-06-13T05:12:41.130976948Z"} 43 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 13"},"testStepId":"13"},"sequenceNumber":42,"timestamp":"2021-06-13T05:12:41.131447301Z"} 44 | {"testStepArtifact":{"testStepEnd":{"name":"step-13","status":"COMPLETE"},"testStepId":"13"},"sequenceNumber":43,"timestamp":"2021-06-13T05:12:42.132009116Z"} 45 | {"testStepArtifact":{"testStepStart":{"name":"step-14"},"testStepId":"14"},"sequenceNumber":44,"timestamp":"2021-06-13T05:12:42.132793501Z"} 46 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 14"},"testStepId":"14"},"sequenceNumber":45,"timestamp":"2021-06-13T05:12:42.133257202Z"} 47 | {"testStepArtifact":{"testStepEnd":{"name":"step-14","status":"COMPLETE"},"testStepId":"14"},"sequenceNumber":46,"timestamp":"2021-06-13T05:12:43.133781676Z"} 48 | {"testStepArtifact":{"testStepStart":{"name":"step-15"},"testStepId":"15"},"sequenceNumber":47,"timestamp":"2021-06-13T05:12:43.134506049Z"} 49 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Created step 15"},"testStepId":"15"},"sequenceNumber":48,"timestamp":"2021-06-13T05:12:43.134981745Z"} 50 | {"testStepArtifact":{"testStepEnd":{"name":"step-15","status":"COMPLETE"},"testStepId":"15"},"sequenceNumber":49,"timestamp":"2021-06-13T05:12:44.135754974Z"} 51 | {"testRunArtifact":{"testRunEnd":{"name":"example_monitor","status":"COMPLETE","result":"PASS"}},"sequenceNumber":50,"timestamp":"2021-06-13T05:12:44.136552879Z"} 52 | -------------------------------------------------------------------------------- /validators/spec_validator/pkg/schema_validator/validator_test.go: -------------------------------------------------------------------------------- 1 | package schemavalidator 2 | 3 | import ( 4 | "testing" 5 | 6 | js "github.com/santhosh-tekuri/jsonschema/v5" 7 | "github.com/stretchr/testify/require" 8 | ) 9 | 10 | func TestSchemaVersion(t *testing.T) { 11 | json := `{ 12 | "schemaVersion": { 13 | "major": 2, 14 | "minor": 0 15 | }, 16 | "sequenceNumber": 0, 17 | "timestamp": "2021-10-19T22:59:20+00:00" 18 | }` 19 | 20 | err := validateString(t, json) 21 | require.NoError(t, err) 22 | } 23 | 24 | func TestValidateBytesComplexRunArtifact(t *testing.T) { 25 | json := `{ 26 | "testRunArtifact": { 27 | "testRunStart": { 28 | "name": "Error Monitor", 29 | "version": "392747070", 30 | "commandLine": "", 31 | "parameters": { 32 | "@type": "type.googleapis.com/meltan.error_monitor.Params", 33 | "pollingIntervalSecs": 1, 34 | "runtimeSecs": 10, 35 | "ceccThreshold": { 36 | "maxCountPerDay": 4000 37 | }, 38 | "ueccThreshold": { 39 | "maxCountPerDay": 0 40 | }, 41 | "dimmNameMap": {}, 42 | "monitors": [ 43 | "PCIE_ERROR_MONITOR" 44 | ], 45 | "pcicrawlerPath": "", 46 | "pcieThresholds": [] 47 | }, 48 | "dutInfo": [ 49 | { 50 | "hostname": "yv3-slot2", 51 | "hardwareComponents": 52 | [ 53 | { 54 | "hardwareInfoId": "0", 55 | "arena": "", 56 | "name": "PCIE_NODE:0000:04:00.0", 57 | "partNumber": "", 58 | "manufacturer": "", 59 | "mfgPartNumber": "", 60 | "partType": "endpoint", 61 | "componentLocation": { 62 | "devpath": "", 63 | "odataId": "", 64 | "blockpath": "0", 65 | "serialNumber": "" 66 | } 67 | }, 68 | { 69 | "hardwareInfoId": "1", 70 | "arena": "", 71 | "name": "PCIE_NODE:0000:00:1d.0", 72 | "partNumber": "", 73 | "manufacturer": "", 74 | "mfgPartNumber": "", 75 | "partType": "root_port", 76 | "componentLocation": 77 | { 78 | "devpath": "", 79 | "odataId": "", 80 | "blockpath": "1", 81 | "serialNumber": "" 82 | } 83 | } 84 | ], 85 | "softwareInfos": 86 | [] 87 | } 88 | ] 89 | } 90 | }, 91 | "sequenceNumber": 1, 92 | "timestamp": "2021-09-17T09:24:17.113215889Z" 93 | }` 94 | 95 | err := validateString(t, json) 96 | require.NoError(t, err) 97 | } 98 | 99 | func TestValidateBytesInvalid(t *testing.T) { 100 | json := `{ 101 | "testRunArtifact": { 102 | "log": { 103 | "text": "log text", 104 | "severity": "INFO" 105 | } 106 | }, 107 | "testStepArtifact": { 108 | "testStepId": "1", 109 | "log": { 110 | "text": "log text", 111 | "severity": "INFO" 112 | } 113 | }, 114 | "sequenceNumber": 0, 115 | "timestamp": "2021-10-19T22:59:20+00:00" 116 | }` 117 | 118 | err := validateString(t, json) 119 | var ve *js.ValidationError 120 | require.ErrorAs(t, err, &ve) 121 | } 122 | 123 | func TestRunLogSimple(t *testing.T) { 124 | json := `{ 125 | "testRunArtifact": { 126 | "log": { 127 | "message": "log text", 128 | "severity": "INFO" 129 | } 130 | }, 131 | "sequenceNumber": 0, 132 | "timestamp": "2021-10-19T22:59:20+00:00" 133 | }` 134 | 135 | err := validateString(t, json) 136 | require.NoError(t, err) 137 | } 138 | 139 | func TestStepLogSimple(t *testing.T) { 140 | json := `{ 141 | "testStepArtifact": { 142 | "testStepId": "1", 143 | "log": { 144 | "message": "log text", 145 | "severity": "INFO" 146 | } 147 | }, 148 | "sequenceNumber": 1, 149 | "timestamp": "2021-10-19T22:59:20+00:00" 150 | }` 151 | 152 | err := validateString(t, json) 153 | require.NoError(t, err) 154 | } 155 | 156 | func TestRunErrorSimple(t *testing.T) { 157 | json := `{ 158 | "testRunArtifact": { 159 | "error": { 160 | "symptom": "test-symptom" 161 | } 162 | }, 163 | "sequenceNumber": 0, 164 | "timestamp": "2021-10-19T22:59:20+00:00" 165 | }` 166 | 167 | err := validateString(t, json) 168 | require.NoError(t, err) 169 | } 170 | 171 | func TestStepErrorSimple(t *testing.T) { 172 | json := `{ 173 | "testStepArtifact": { 174 | "testStepId": "1", 175 | "error": { 176 | "message": "log text", 177 | "symptom": "test-symptom", 178 | "softwareInfoIds": [ 179 | "1" 180 | ] 181 | } 182 | }, 183 | "sequenceNumber": 1, 184 | "timestamp": "2021-10-19T22:59:20+00:00" 185 | }` 186 | 187 | err := validateString(t, json) 188 | require.NoError(t, err) 189 | } 190 | 191 | func TestStepFileSimple(t *testing.T) { 192 | json := `{ 193 | "testStepArtifact": { 194 | "testStepId": "1", 195 | "file": { 196 | "displayName": "mem_cfg_log", 197 | "uri": "file:///root/mem_cfg_log", 198 | "description": "DIMM configuration settings.", 199 | "contentType": "text/plain", 200 | "isSnapshot": false 201 | } 202 | }, 203 | "sequenceNumber": 1, 204 | "timestamp": "2021-10-19T22:59:20+00:00" 205 | }` 206 | 207 | err := validateString(t, json) 208 | require.NoError(t, err) 209 | } 210 | 211 | func TestStepDiagnosisSimple(t *testing.T) { 212 | json := `{ 213 | "testStepArtifact": { 214 | "diagnosis": { 215 | "verdict": "mlc-intranode-bandwidth-pass", 216 | "type": "PASS", 217 | "message": "intranode bandwidth within threshold.", 218 | "hardwareInfoId": "1", 219 | "subcomponent": { 220 | "type": "BUS", 221 | "name": "QPI1", 222 | "location": "CPU-3-2-3", 223 | "version": "1", 224 | "revision": "0" 225 | } 226 | }, 227 | "testStepId": "1" 228 | }, 229 | "sequenceNumber": 1, 230 | "timestamp": "2022-07-25T02:15:58.296032Z" 231 | }` 232 | 233 | err := validateString(t, json) 234 | require.NoError(t, err) 235 | } 236 | 237 | func TestStepExtensionSimple(t *testing.T) { 238 | json := `{ 239 | "testStepArtifact": { 240 | "extension": { 241 | "name": "extension example", 242 | "content": { 243 | "@type": "ExampleExtension", 244 | "stringField": "example string", 245 | "numberField": "42" 246 | } 247 | }, 248 | "testStepId": "2321" 249 | }, 250 | "sequenceNumber": 600, 251 | "timestamp": "2022-07-26T02:34:06.249683Z" 252 | }` 253 | 254 | err := validateString(t, json) 255 | require.NoError(t, err) 256 | } 257 | 258 | func TestRunStartSimple(t *testing.T) { 259 | json := `{ 260 | "testRunArtifact": { 261 | "testRunStart": { 262 | "name": "mlc_test", 263 | "version": "1.0", 264 | "commandLine": "mlc/mlc --use_default_thresholds=true --data_collection_mode=true", 265 | "parameters": { 266 | "max_bandwidth": 7200.0, 267 | "mode": "fast_mode", 268 | "data_collection_mode": true, 269 | "min_bandwidth": 700.0, 270 | "use_default_thresholds": true 271 | }, 272 | "dutInfo": { 273 | "id": "1", 274 | "hostname": "ocp_lab_0222", 275 | "platformInfos": [ 276 | { 277 | "info": "memory_optimized" 278 | } 279 | ], 280 | "softwareInfos": [ 281 | { 282 | "softwareInfoId": "1", 283 | "computerSystem": "primary_node", 284 | "softwareType": "FIRMWARE", 285 | "name": "bmc_firmware", 286 | "version": "10", 287 | "revision": "11" 288 | } 289 | ], 290 | "hardwareInfos": [ 291 | { 292 | "hardwareInfoId": "1", 293 | "computerSystem": "primary_node", 294 | "manager": "bmc0", 295 | "name": "primary node", 296 | "location": "MB/DIMM_A1", 297 | "odataId": "/redfish/v1/Systems/System.Embedded.1/Memory/DIMMSLOTA1", 298 | "partNumber": "P03052-091", 299 | "serialNumber": "HMA2022029281901", 300 | "manufacturer": "hynix", 301 | "manufacturerPartNumber": "HMA84GR7AFR4N-VK", 302 | "partType": "DIMM", 303 | "version": "1", 304 | "revision": "2" 305 | } 306 | ] 307 | } 308 | } 309 | }, 310 | "sequenceNumber": 1, 311 | "timestamp": "2022-07-25T04:49:25.262947Z" 312 | }` 313 | 314 | err := validateString(t, json) 315 | require.NoError(t, err) 316 | } 317 | 318 | func TestRunEndSimple(t *testing.T) { 319 | json := `{ 320 | "testRunArtifact": { 321 | "testRunEnd": { 322 | "status": "COMPLETE", 323 | "result": "PASS" 324 | } 325 | }, 326 | "sequenceNumber": 100, 327 | "timestamp": "2022-07-25T04:49:25.262947Z" 328 | }` 329 | 330 | err := validateString(t, json) 331 | require.NoError(t, err) 332 | } 333 | 334 | func TestStepStartSimple(t *testing.T) { 335 | json := `{ 336 | "testStepArtifact": { 337 | "testStepStart": { 338 | "name": "intranode-bandwidth-check" 339 | }, 340 | "testStepId": "22" 341 | }, 342 | "sequenceNumber": 200, 343 | "timestamp": "2022-07-25T04:56:42.249367Z" 344 | }` 345 | 346 | err := validateString(t, json) 347 | require.NoError(t, err) 348 | } 349 | 350 | func TestStepEndSimple(t *testing.T) { 351 | json := `{ 352 | "testStepArtifact": { 353 | "testStepEnd": { 354 | "status": "COMPLETE" 355 | }, 356 | "testStepId": "22" 357 | }, 358 | "sequenceNumber": 200, 359 | "timestamp": "2022-07-25T04:54:41.292679Z" 360 | }` 361 | 362 | err := validateString(t, json) 363 | require.NoError(t, err) 364 | } 365 | 366 | func TestMeasurementWithValidatorSimple(t *testing.T) { 367 | json := `{ 368 | "testStepArtifact": { 369 | "measurement": { 370 | "name": "measured-fan-speed-100", 371 | "unit": "RPM", 372 | "hardwareInfoId": "5", 373 | "subcomponent": { 374 | "name": "FAN1", 375 | "location": "F0_1", 376 | "version": "1", 377 | "revision": "1", 378 | "type": "UNSPECIFIED" 379 | }, 380 | "validators": [ 381 | { 382 | "name": "80mm_fan_upper_limit", 383 | "type": "LESS_THAN_OR_EQUAL", 384 | "value": 11000.0 385 | }, 386 | { 387 | "name": "80mm_fan_lower_limit", 388 | "type": "GREATER_THAN_OR_EQUAL", 389 | "value": 8000.0 390 | } 391 | ], 392 | "value": 100221.0 393 | }, 394 | "testStepId": "300" 395 | }, 396 | "sequenceNumber": 400, 397 | "timestamp": "2022-07-26T02:16:10.393209Z" 398 | }` 399 | 400 | err := validateString(t, json) 401 | require.NoError(t, err) 402 | } 403 | 404 | func TestMeasurementSeriesStartSimple(t *testing.T) { 405 | json := `{ 406 | "testStepArtifact": { 407 | "measurementSeriesStart": { 408 | "measurementSeriesId": "0", 409 | "name": "measured-fan-speed-100", 410 | "unit": "RPM", 411 | "hardwareInfoId": "5", 412 | "subcomponent": { 413 | "name": "FAN1", 414 | "location": "F0_1", 415 | "version": "1", 416 | "revision": "1", 417 | "type": "UNSPECIFIED" 418 | }, 419 | "validators": [ 420 | { 421 | "name": "80mm_fan_upper_limit", 422 | "type": "LESS_THAN_OR_EQUAL", 423 | "value": 11000.0 424 | }, 425 | { 426 | "name": "80mm_fan_lower_limit", 427 | "type": "GREATER_THAN_OR_EQUAL", 428 | "value": 8000.0 429 | } 430 | ] 431 | }, 432 | "testStepId": "33" 433 | }, 434 | "sequenceNumber": 300, 435 | "timestamp": "2022-07-26T02:04:02.083679Z" 436 | }` 437 | 438 | err := validateString(t, json) 439 | require.NoError(t, err) 440 | } 441 | 442 | func TestMeasurementSeriesEndSimple(t *testing.T) { 443 | json := `{ 444 | "testStepArtifact": { 445 | "measurementSeriesEnd": { 446 | "measurementSeriesId": "2", 447 | "totalCount": 51 448 | }, 449 | "testStepId": "231" 450 | }, 451 | "sequenceNumber": 300, 452 | "timestamp": "2022-07-26T02:16:10.393209Z" 453 | }` 454 | 455 | err := validateString(t, json) 456 | require.NoError(t, err) 457 | } 458 | 459 | func TestMeasurementSeriesElementSimple(t *testing.T) { 460 | json := `{ 461 | "testStepArtifact": { 462 | "measurementSeriesElement": { 463 | "index": 144, 464 | "measurementSeriesId": "12", 465 | "value": 100219.5, 466 | "timestamp": "2022-07-26T02:45:00.102414Z" 467 | }, 468 | "testStepId": "45398" 469 | }, 470 | "sequenceNumber": 700, 471 | "timestamp": "2022-07-26T02:45:00.097896Z" 472 | }` 473 | 474 | err := validateString(t, json) 475 | require.NoError(t, err) 476 | } 477 | 478 | func validateString(t *testing.T, json string) error { 479 | const schema string = "../../../../json_spec/output/root.json" 480 | 481 | sv, err := New(schema) 482 | require.NoError(t, err) 483 | 484 | err = sv.ValidateBytes([]byte(json)) 485 | if err != nil { 486 | t.Logf("error in validation: %#v", err) 487 | } 488 | 489 | return err 490 | } 491 | -------------------------------------------------------------------------------- /validators/spec_validator/samples/cpu_power_virus_test.jsonl: -------------------------------------------------------------------------------- 1 | {"testRunArtifact":{"testRunStart":{"name":"CpuPowerVirus","version":"382526885","parameters":{"@type":"type.googleapis.com/google.protobuf.Empty"},"dutInfo":[{"hostname":"mvcs28","hardwareComponents":[{"hardwareInfoId":"0","arena":"","name":"cpu_mdeol","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_mdeol","manufacturer":"","mfgPartNumber":"","partType":"cpu","componentLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"}},{"hardwareInfoId":"1","arena":"","name":"cpu_mdeol","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_mdeol","manufacturer":"","mfgPartNumber":"","partType":"cpu","componentLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"}}],"softwareInfos":[]}]}},"sequenceNumber":0,"timestamp":"2021-07-02T03:33:36.743528513Z"} 2 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Starting power virus test on host mvcs28..."}},"sequenceNumber":1,"timestamp":"2021-07-02T03:33:36.744837006Z"} 3 | {"testRunArtifact":{"log":{"severity":"INFO","text":"run_sh_args: "}},"sequenceNumber":2,"timestamp":"2021-07-02T03:33:36.744931173Z"} 4 | {"testStepArtifact":{"testStepStart":{"name":"run-cpu-vendor-power-virus"},"testStepId":"0"},"sequenceNumber":3,"timestamp":"2021-07-02T03:33:36.745022643Z"} 5 | {"testStepArtifact":{"diagnosis":{"symptom":"power-virus-script-run-succeeded","type":"PASS","msg":"INFO: Update killall command for OVSS image\\nINFO: picked computer pwrviri\\nINFO: pwrviri/idle/cold (300 seconds)\\n/phys:connector:DIMM0 | Slot 00 | yes | /phys/DIMM0 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F8C1\\n/phys:connector:DIMM1 | Slot 01 | no\\n/phys:connector:DIMM2 | Slot 02 | yes | /phys/DIMM2 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F9\\n/phys:connector:DIMM3 | Slot 03 | no\\n/phys:connector:DIMM4 | Slot 04 | yes | /phys/DIMM4 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81B\\n/phys:connector:DIMM5 | Slot 05 | no\\n/phys:connector:DIMM6 | Slot 06 | yes | /phys/DIMM6 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F6\\n/phys:connector:DIMM7 | Slot 07 | no\\n/phys:connector:DIMM8 | Slot 08 | no\\n/phys:connector:DIMM9 | Slot 09 | yes | /phys/DIMM9 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81E\\n/phys:connector:DIMM10 | Slot 10 | no\\n/phys:connector:DIMM11 | Slot 11 | yes | /phys/DIMM11 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F4C3\\n/phys:connector:DIMM12 | Slot 12 | no\\n/phys:connector:DIMM13 | Slot 13 | yes | /phys/DIMM13 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F858\\n/phys:connector:DIMM14 | Slot 14 | no\\n/phys:connector:DIMM15 | Slot 15 | yes | /phys/DIMM15 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F982\\n/phys:connector:DIMM16 | Slot 16 | yes | /phys/DIMM16 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F72C\\n/phys:connector:DIMM17 | Slot 17 | no\\n/phys:connector:DIMM18 | Slot 18 | yes | /phys/DIMM18 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62FDCF\\n/phys:connector:DIMM19 | Slot 19 | no\\n/phys:connector:DIMM20 | Slot 20 | yes | /phys/DIMM20 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DA9C\\n/phys:connector:DIMM21 | Slot 21 | no\\n/phys:connector:DIMM22 | Slot 22 | yes | /phys/DIMM22 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBD7\\n/phys:connector:DIMM23 | Slot 23 | no\\n/phys:connector:DIMM24 | Slot 24 | no\\n/phys:connector:DIMM25 | Slot 25 | yes | /phys/DIMM25 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43D0AD\\n/phys:connector:DIMM26 | Slot 26 | no\\n/phys:connector:DIMM27 | Slot 27 | yes | /phys/DIMM27 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B21C\\n/phys:connector:DIMM28 | Slot 28 | no\\n/phys:connector:DIMM29 | Slot 29 | yes | /phys/DIMM29 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBBE\\n/phys:connector:DIMM30 | Slot 30 | no\\n/phys:connector:DIMM31 | Slot 31 | yes | /phys/DIMM31 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B3F6\\nINFO: pwrviri/CPU/warming (600 seconds)\\nINFO: pwrviri/CPU/warmed (10 seconds)\\nINFO: pwrviri/CPU/cooling (600 seconds)\\nINFO: pwrviri/CPU/cooled (10 seconds)\\n/phys:connector:DIMM0 | Slot 00 | yes | /phys/DIMM0 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F8C1\\n/phys:connector:DIMM1 | Slot 01 | no\\n/phys:connector:DIMM2 | Slot 02 | yes | /phys/DIMM2 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F9\\n/phys:connector:DIMM3 | Slot 03 | no\\n/phys:connector:DIMM4 | Slot 04 | yes | /phys/DIMM4 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81B\\n/phys:connector:DIMM5 | Slot 05 | no\\n/phys:connector:DIMM6 | Slot 06 | yes | /phys/DIMM6 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F6\\n/phys:connector:DIMM7 | Slot 07 | no\\n/phys:connector:DIMM8 | Slot 08 | no\\n/phys:connector:DIMM9 | Slot 09 | yes | /phys/DIMM9 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81E\\n/phys:connector:DIMM10 | Slot 10 | no\\n/phys:connector:DIMM11 | Slot 11 | yes | /phys/DIMM11 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F4C3\\n/phys:connector:DIMM12 | Slot 12 | no\\n/phys:connector:DIMM13 | Slot 13 | yes | /phys/DIMM13 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F858\\n/phys:connector:DIMM14 | Slot 14 | no\\n/phys:connector:DIMM15 | Slot 15 | yes | /phys/DIMM15 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F982\\n/phys:connector:DIMM16 | Slot 16 | yes | /phys/DIMM16 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F72C\\n/phys:connector:DIMM17 | Slot 17 | no\\n/phys:connector:DIMM18 | Slot 18 | yes | /phys/DIMM18 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62FDCF\\n/phys:connector:DIMM19 | Slot 19 | no\\n/phys:connector:DIMM20 | Slot 20 | yes | /phys/DIMM20 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DA9C\\n/phys:connector:DIMM21 | Slot 21 | no\\n/phys:connector:DIMM22 | Slot 22 | yes | /phys/DIMM22 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBD7\\n/phys:connector:DIMM23 | Slot 23 | no\\n/phys:connector:DIMM24 | Slot 24 | no\\n/phys:connector:DIMM25 | Slot 25 | yes | /phys/DIMM25 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43D0AD\\n/phys:connector:DIMM26 | Slot 26 | no\\n/phys:connector:DIMM27 | Slot 27 | yes | /phys/DIMM27 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B21C\\n/phys:connector:DIMM28 | Slot 28 | no\\n/phys:connector:DIMM29 | Slot 29 | yes | /phys/DIMM29 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBBE\\n/phys:connector:DIMM30 | Slot 30 | no\\n/phys:connector:DIMM31 | Slot 31 | yes | /phys/DIMM31 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B3F6\\nINFO: pwrviri/RAM/warming (300 seconds)\\nINFO: pwrviri/RAM/warmed (10 seconds)\\nINFO: pwrviri/RAM/cooling (300 seconds)\\nINFO: pwrviri/RAM/cooled (10 seconds)\\n/phys:connector:DIMM0 | Slot 00 | yes | /phys/DIMM0 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F8C1\\n/phys:connector:DIMM1 | Slot 01 | no\\n/phys:connector:DIMM2 | Slot 02 | yes | /phys/DIMM2 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F9\\n/phys:connector:DIMM3 | Slot 03 | no\\n/phys:connector:DIMM4 | Slot 04 | yes | /phys/DIMM4 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81B\\n/phys:connector:DIMM5 | Slot 05 | no\\n/phys:connector:DIMM6 | Slot 06 | yes | /phys/DIMM6 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F6\\n/phys:connector:DIMM7 | Slot 07 | no\\n/phys:connector:DIMM8 | Slot 08 | no\\n/phys:connector:DIMM9 | Slot 09 | yes | /phys/DIMM9 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81E\\n/phys:connector:DIMM10 | Slot 10 | no\\n/phys:connector:DIMM11 | Slot 11 | yes | /phys/DIMM11 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F4C3\\n/phys:connector:DIMM12 | Slot 12 | no\\n/phys:connector:DIMM13 | Slot 13 | yes | /phys/DIMM13 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F858\\n/phys:connector:DIMM14 | Slot 14 | no\\n/phys:connector:DIMM15 | Slot 15 | yes | /phys/DIMM15 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F982\\n/phys:connector:DIMM16 | Slot 16 | yes | /phys/DIMM16 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F72C\\n/phys:connector:DIMM17 | Slot 17 | no\\n/phys:connector:DIMM18 | Slot 18 | yes | /phys/DIMM18 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62FDCF\\n/phys:connector:DIMM19 | Slot 19 | no\\n/phys:connector:DIMM20 | Slot 20 | yes | /phys/DIMM20 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DA9C\\n/phys:connector:DIMM21 | Slot 21 | no\\n/phys:connector:DIMM22 | Slot 22 | yes | /phys/DIMM22 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBD7\\n/phys:connector:DIMM23 | Slot 23 | no\\n/phys:connector:DIMM24 | Slot 24 | no\\n/phys:connector:DIMM25 | Slot 25 | yes | /phys/DIMM25 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43D0AD\\n/phys:connector:DIMM26 | Slot 26 | no\\n/phys:connector:DIMM27 | Slot 27 | yes | /phys/DIMM27 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B21C\\n/phys:connector:DIMM28 | Slot 28 | no\\n/phys:connector:DIMM29 | Slot 29 | yes | /phys/DIMM29 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBBE\\n/phys:connector:DIMM30 | Slot 30 | no\\n/phys:connector:DIMM31 | Slot 31 | yes | /phys/DIMM31 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B3F6\\nINFO: pwrviri/ALL/warming (300 seconds)\\nINFO: pwrviri/ALL/warmed (10 seconds)\\nINFO: pwrviri/ALL/cooling (300 seconds)\\nINFO: pwrviri/ALL/cooled (10 seconds)\\n/phys:connector:DIMM0 | Slot 00 | yes | /phys/DIMM0 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F8C1\\n/phys:connector:DIMM1 | Slot 01 | no\\n/phys:connector:DIMM2 | Slot 02 | yes | /phys/DIMM2 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F9\\n/phys:connector:DIMM3 | Slot 03 | no\\n/phys:connector:DIMM4 | Slot 04 | yes | /phys/DIMM4 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81B\\n/phys:connector:DIMM5 | Slot 05 | no\\n/phys:connector:DIMM6 | Slot 06 | yes | /phys/DIMM6 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F5F6\\n/phys:connector:DIMM7 | Slot 07 | no\\n/phys:connector:DIMM8 | Slot 08 | no\\n/phys:connector:DIMM9 | Slot 09 | yes | /phys/DIMM9 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F81E\\n/phys:connector:DIMM10 | Slot 10 | no\\n/phys:connector:DIMM11 | Slot 11 | yes | /phys/DIMM11 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F4C3\\n/phys:connector:DIMM12 | Slot 12 | no\\n/phys:connector:DIMM13 | Slot 13 | yes | /phys/DIMM13 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F858\\n/phys:connector:DIMM14 | Slot 14 | no\\n/phys:connector:DIMM15 | Slot 15 | yes | /phys/DIMM15 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F982\\n/phys:connector:DIMM16 | Slot 16 | yes | /phys/DIMM16 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62F72C\\n/phys:connector:DIMM17 | Slot 17 | no\\n/phys:connector:DIMM18 | Slot 18 | yes | /phys/DIMM18 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAX | 2C62FDCF\\n/phys:connector:DIMM19 | Slot 19 | no\\n/phys:connector:DIMM20 | Slot 20 | yes | /phys/DIMM20 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DA9C\\n/phys:connector:DIMM21 | Slot 21 | no\\n/phys:connector:DIMM22 | Slot 22 | yes | /phys/DIMM22 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBD7\\n/phys:connector:DIMM23 | Slot 23 | no\\n/phys:connector:DIMM24 | Slot 24 | no\\n/phys:connector:DIMM25 | Slot 25 | yes | /phys/DIMM25 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43D0AD\\n/phys:connector:DIMM26 | Slot 26 | no\\n/phys:connector:DIMM27 | Slot 27 | yes | /phys/DIMM27 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B21C\\n/phys:connector:DIMM28 | Slot 28 | no\\n/phys:connector:DIMM29 | Slot 29 | yes | /phys/DIMM29 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43DBBE\\n/phys:connector:DIMM30 | Slot 30 | no\\n/phys:connector:DIMM31 | Slot 31 | yes | /phys/DIMM31 | 65536 MB | DDR5 | 0 MHz | dimm-vendor | MTC40F2046S1RC48BAY | 2A43B3F6\\n","hardwareInfoId":["0","1"]},"testStepId":"0"},"sequenceNumber":4,"timestamp":"2021-07-02T04:22:00.893961558Z"} 6 | {"testStepArtifact":{"testStepEnd":{"name":"run-cpu-vendor-power-virus","status":"COMPLETE"},"testStepId":"0"},"sequenceNumber":5,"timestamp":"2021-07-02T04:22:00.916024535Z"} 7 | {"testRunArtifact":{"testRunEnd":{"name":"cpu-vendorCpuPowerVirus","status":"COMPLETE","result":"PASS"}},"sequenceNumber":6,"timestamp":"2021-07-02T04:22:01.018233740Z"} 8 | -------------------------------------------------------------------------------- /validators/spec_validator/samples/memtester_test.jsonl: -------------------------------------------------------------------------------- 1 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Executing memtester meltan task"}},"sequenceNumber":0,"timestamp":"2021-07-02T01:03:54.098342862Z"} 2 | {"testRunArtifact":{"log":{"severity":"INFO","text":"#### max_miscompares: 0 ####"}},"sequenceNumber":1,"timestamp":"2021-07-02T01:03:54.418500886Z"} 3 | {"testRunArtifact":{"log":{"severity":"INFO","text":"No runlock file, memtester can proceed"}},"sequenceNumber":2,"timestamp":"2021-07-02T01:03:54.418623778Z"} 4 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Saved running lock: /var/run/memtest.pid"}},"sequenceNumber":3,"timestamp":"2021-07-02T01:03:54.418684633Z"} 5 | {"testRunArtifact":{"testRunStart":{"name":"memtester","version":"382526885","parameters":{"@type":"type.googleapis.com/google.protobuf.Empty"},"dutInfo":[{"hostname":"mvcs28","hardwareComponents":[{"hardwareInfoId":"0","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM0","odataId":"","blockpath":"","serialNumber":"2c62f8c1"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"1","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM2","odataId":"","blockpath":"","serialNumber":"2c62f5f9"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"2","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM4","odataId":"","blockpath":"","serialNumber":"2c62f81b"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"3","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM6","odataId":"","blockpath":"","serialNumber":"2c62f5f6"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"4","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM9","odataId":"","blockpath":"","serialNumber":"2c62f81e"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"5","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM11","odataId":"","blockpath":"","serialNumber":"2c62f4c3"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"6","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM13","odataId":"","blockpath":"","serialNumber":"2c62f858"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"7","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM15","odataId":"","blockpath":"","serialNumber":"2c62f982"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"8","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM16","odataId":"","blockpath":"","serialNumber":"2c62f72c"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"9","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM18","odataId":"","blockpath":"","serialNumber":"2c62fdcf"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"10","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM20","odataId":"","blockpath":"","serialNumber":"2a43da9c"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"11","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM22","odataId":"","blockpath":"","serialNumber":"2a43dbd7"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"12","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM25","odataId":"","blockpath":"","serialNumber":"2a43d0ad"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"13","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM27","odataId":"","blockpath":"","serialNumber":"2a43b21c"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"14","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM29","odataId":"","blockpath":"","serialNumber":"2a43dbbe"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"15","arena":"","name":"","fruLocation":{"devpath":"/phys/DIMM31","odataId":"","blockpath":"","serialNumber":"2a43b3f6"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"}],"softwareInfos":[{"softwareInfoId":"0","arena":"","name":"gsys","version":"(unknown)"}]}]}},"sequenceNumber":4,"timestamp":"2021-07-02T01:04:22.808933095Z"} 6 | {"testStepArtifact":{"testStepStart":{"name":"checkmemory"},"testStepId":"0"},"sequenceNumber":5,"timestamp":"2021-07-02T01:04:22.809507440Z"} 7 | {"testStepArtifact":{"testStepEnd":{"name":"checkmemory","status":"COMPLETE"},"testStepId":"0"},"sequenceNumber":6,"timestamp":"2021-07-02T01:05:20.771072527Z"} 8 | {"testStepArtifact":{"testStepStart":{"name":"checkpmem"},"testStepId":"1"},"sequenceNumber":7,"timestamp":"2021-07-02T01:05:20.771318947Z"} 9 | {"testStepArtifact":{"log":{"severity":"INFO","text":"plugins: {'agorav2': 1, 'biggulp': 1, 'cooler': 2, 'dcmio_x16': 1, 'ddr5': 16, 'fan_80mm': 4, 'flash_chip': 2, 'granite_hd': 1, 'hdmi_cable': 1, 'i2cool': 3, 'computer-model': 1, 'qsfp_cable': 1, 'cpu-model': 2, 'tray': 1}"},"testStepId":"1"},"sequenceNumber":8,"timestamp":"2021-07-02T01:05:20.773869571Z"} 10 | {"testStepArtifact":{"testStepEnd":{"name":"checkpmem","status":"COMPLETE"},"testStepId":"1"},"sequenceNumber":9,"timestamp":"2021-07-02T01:05:20.773977096Z"} 11 | {"testStepArtifact":{"testStepStart":{"name":"fetchmemlimit"},"testStepId":"2"},"sequenceNumber":10,"timestamp":"2021-07-02T01:05:20.774021428Z"} 12 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Memory test iterations: 3 ####"},"testStepId":"2"},"sequenceNumber":11,"timestamp":"2021-07-02T01:06:17.418083428Z"} 13 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Memory test time limit: 600 seconds ####"},"testStepId":"2"},"sequenceNumber":12,"timestamp":"2021-07-02T01:06:17.418316073Z"} 14 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Warning: Low time limit. We might exceed it. ####"},"testStepId":"2"},"sequenceNumber":13,"timestamp":"2021-07-02T01:06:17.418365362Z"} 15 | {"testStepArtifact":{"measurement":{"info":{"name":"mem_free","unit":"KB","hardwareInfoId":""},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":1054654084}},"testStepId":"2"},"sequenceNumber":14,"timestamp":"2021-07-02T01:06:17.419281405Z"} 16 | {"testStepArtifact":{"measurement":{"info":{"name":"mem_total","unit":"KB","hardwareInfoId":""},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":1056776240}},"testStepId":"2"},"sequenceNumber":15,"timestamp":"2021-07-02T01:06:17.419446131Z"} 17 | {"testStepArtifact":{"measurement":{"info":{"name":"mem_required","unit":"KB","hardwareInfoId":""},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":898259804}},"testStepId":"2"},"sequenceNumber":16,"timestamp":"2021-07-02T01:06:17.419538207Z"} 18 | {"testStepArtifact":{"measurement":{"info":{"name":"memlimit","unit":"KB","hardwareInfoId":""},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":1020736132}},"testStepId":"2"},"sequenceNumber":17,"timestamp":"2021-07-02T01:06:17.419624162Z"} 19 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Memory limit: 1045233799168 bytes"},"testStepId":"2"},"sequenceNumber":18,"timestamp":"2021-07-02T01:06:17.419666793Z"} 20 | {"testStepArtifact":{"testStepStart":{"name":"excution"},"testStepId":"3"},"sequenceNumber":19,"timestamp":"2021-07-02T01:06:17.419708444Z"} 21 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Starting memory test"},"testStepId":"3"},"sequenceNumber":20,"timestamp":"2021-07-02T01:06:17.419744565Z"} 22 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Starting iteration #1 ####"},"testStepId":"3"},"sequenceNumber":21,"timestamp":"2021-07-02T01:06:17.419811562Z"} 23 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Memtester commands: ['/tmp/_meltan_test_pkg_memtester_sar.mpKm8/_meltan_test_pkg_memtester_launcher.runfiles/google3/third_party/memtester/memtester', 'timelimit', '152', 'fast', '996812']"},"testStepId":"3"},"sequenceNumber":22,"timestamp":"2021-07-02T01:06:17.419877679Z"} 24 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Saving and uploading memtester stdout and stderr..."},"testStepId":"3"},"sequenceNumber":23,"timestamp":"2021-07-02T01:10:48.743481883Z"} 25 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Parsing memtester stdout and stderr..."},"testStepId":"3"},"sequenceNumber":25,"timestamp":"2021-07-02T01:10:48.744224437Z"} 26 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Completed iteration #1 ####"},"testStepId":"3"},"sequenceNumber":26,"timestamp":"2021-07-02T01:10:48.744305366Z"} 27 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Starting iteration #2 ####"},"testStepId":"3"},"sequenceNumber":27,"timestamp":"2021-07-02T01:10:48.744355586Z"} 28 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Memtester commands: ['/tmp/_meltan_test_pkg_memtester_sar.mpKm8/_meltan_test_pkg_memtester_launcher.runfiles/google3/third_party/memtester/memtester', 'timelimit', '92', 'fast', '996812']"},"testStepId":"3"},"sequenceNumber":28,"timestamp":"2021-07-02T01:10:48.744500717Z"} 29 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Saving and uploading memtester stdout and stderr..."},"testStepId":"3"},"sequenceNumber":29,"timestamp":"2021-07-02T01:15:20.570813949Z"} 30 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Parsing memtester stdout and stderr..."},"testStepId":"3"},"sequenceNumber":31,"timestamp":"2021-07-02T01:15:20.571596503Z"} 31 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Completed iteration #2 ####"},"testStepId":"3"},"sequenceNumber":32,"timestamp":"2021-07-02T01:15:20.571673119Z"} 32 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Starting iteration #3 ####"},"testStepId":"3"},"sequenceNumber":33,"timestamp":"2021-07-02T01:15:20.571702789Z"} 33 | {"testStepArtifact":{"log":{"severity":"INFO","text":"No time left to run memtester, running for miminum amount of time to touch all memory."},"testStepId":"3"},"sequenceNumber":34,"timestamp":"2021-07-02T01:15:20.571776576Z"} 34 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Memtester commands: ['/tmp/_meltan_test_pkg_memtester_sar.mpKm8/_meltan_test_pkg_memtester_launcher.runfiles/google3/third_party/memtester/memtester', 'timelimit', '1', 'fast', '996812']"},"testStepId":"3"},"sequenceNumber":35,"timestamp":"2021-07-02T01:15:20.571849346Z"} 35 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Saving and uploading memtester stdout and stderr..."},"testStepId":"3"},"sequenceNumber":36,"timestamp":"2021-07-02T01:19:51.798638388Z"} 36 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Parsing memtester stdout and stderr..."},"testStepId":"3"},"sequenceNumber":38,"timestamp":"2021-07-02T01:19:51.799347188Z"} 37 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Completed iteration #3 ####"},"testStepId":"3"},"sequenceNumber":39,"timestamp":"2021-07-02T01:19:51.799420577Z"} 38 | {"testStepArtifact":{"log":{"severity":"INFO","text":"#### Completed memory test ####"},"testStepId":"3"},"sequenceNumber":40,"timestamp":"2021-07-02T01:19:51.799451354Z"} 39 | {"testStepArtifact":{"log":{"severity":"INFO","text":"dimerrorr: {0: 0, 2: 0, 4: 0, 6: 0, 9: 0, 11: 0, 13: 0, 15: 0, 16: 0, 18: 0, 20: 0, 22: 0, 25: 0, 27: 0, 29: 0, 31: 0}"},"testStepId":"3"},"sequenceNumber":41,"timestamp":"2021-07-02T01:19:51.799621469Z"} 40 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":42,"timestamp":"2021-07-02T01:19:51.799907857Z"} 41 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 0, below the threshold of 0","hardwareInfoId":["0"]},"testStepId":"3"},"sequenceNumber":43,"timestamp":"2021-07-02T01:19:51.800002952Z"} 42 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"1"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":44,"timestamp":"2021-07-02T01:19:51.800138889Z"} 43 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 2, below the threshold of 0","hardwareInfoId":["1"]},"testStepId":"3"},"sequenceNumber":45,"timestamp":"2021-07-02T01:19:51.800189174Z"} 44 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"2"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":46,"timestamp":"2021-07-02T01:19:51.800301138Z"} 45 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 4, below the threshold of 0","hardwareInfoId":["2"]},"testStepId":"3"},"sequenceNumber":47,"timestamp":"2021-07-02T01:19:51.800345071Z"} 46 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"3"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":48,"timestamp":"2021-07-02T01:19:51.800450351Z"} 47 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 6, below the threshold of 0","hardwareInfoId":["3"]},"testStepId":"3"},"sequenceNumber":49,"timestamp":"2021-07-02T01:19:51.800492588Z"} 48 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"4"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":50,"timestamp":"2021-07-02T01:19:51.800596200Z"} 49 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 9, below the threshold of 0","hardwareInfoId":["4"]},"testStepId":"3"},"sequenceNumber":51,"timestamp":"2021-07-02T01:19:51.800637068Z"} 50 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"5"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":52,"timestamp":"2021-07-02T01:19:51.800745585Z"} 51 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 11, below the threshold of 0","hardwareInfoId":["5"]},"testStepId":"3"},"sequenceNumber":53,"timestamp":"2021-07-02T01:19:51.800785994Z"} 52 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"6"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":54,"timestamp":"2021-07-02T01:19:51.800892363Z"} 53 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 13, below the threshold of 0","hardwareInfoId":["6"]},"testStepId":"3"},"sequenceNumber":55,"timestamp":"2021-07-02T01:19:51.800933678Z"} 54 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"7"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":56,"timestamp":"2021-07-02T01:19:51.801035585Z"} 55 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 15, below the threshold of 0","hardwareInfoId":["7"]},"testStepId":"3"},"sequenceNumber":57,"timestamp":"2021-07-02T01:19:51.801076674Z"} 56 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"8"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":58,"timestamp":"2021-07-02T01:19:51.801179351Z"} 57 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 16, below the threshold of 0","hardwareInfoId":["8"]},"testStepId":"3"},"sequenceNumber":59,"timestamp":"2021-07-02T01:19:51.801220281Z"} 58 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"9"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":60,"timestamp":"2021-07-02T01:19:51.801322665Z"} 59 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 18, below the threshold of 0","hardwareInfoId":["9"]},"testStepId":"3"},"sequenceNumber":61,"timestamp":"2021-07-02T01:19:51.801363328Z"} 60 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"10"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":62,"timestamp":"2021-07-02T01:19:51.801465986Z"} 61 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 20, below the threshold of 0","hardwareInfoId":["10"]},"testStepId":"3"},"sequenceNumber":63,"timestamp":"2021-07-02T01:19:51.801507445Z"} 62 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"11"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":64,"timestamp":"2021-07-02T01:19:51.801611068Z"} 63 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 22, below the threshold of 0","hardwareInfoId":["11"]},"testStepId":"3"},"sequenceNumber":65,"timestamp":"2021-07-02T01:19:51.801652121Z"} 64 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"12"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":66,"timestamp":"2021-07-02T01:19:51.801758157Z"} 65 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 25, below the threshold of 0","hardwareInfoId":["12"]},"testStepId":"3"},"sequenceNumber":67,"timestamp":"2021-07-02T01:19:51.801799521Z"} 66 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"13"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":68,"timestamp":"2021-07-02T01:19:51.801901358Z"} 67 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 27, below the threshold of 0","hardwareInfoId":["13"]},"testStepId":"3"},"sequenceNumber":69,"timestamp":"2021-07-02T01:19:51.801942414Z"} 68 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"14"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":70,"timestamp":"2021-07-02T01:19:51.802043751Z"} 69 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 29, below the threshold of 0","hardwareInfoId":["14"]},"testStepId":"3"},"sequenceNumber":71,"timestamp":"2021-07-02T01:19:51.802085251Z"} 70 | {"testStepArtifact":{"measurement":{"info":{"name":"DIMM-miscompares","unit":"","hardwareInfoId":"15"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"3"},"sequenceNumber":72,"timestamp":"2021-07-02T01:19:51.802187452Z"} 71 | {"testStepArtifact":{"diagnosis":{"symptom":"memtester-good-dimm","type":"PASS","msg":"0 miscompare errors detected on DIMM 31, below the threshold of 0","hardwareInfoId":["15"]},"testStepId":"3"},"sequenceNumber":73,"timestamp":"2021-07-02T01:19:51.802228248Z"} 72 | {"testStepArtifact":{"testStepEnd":{"name":"excution","status":"COMPLETE"},"testStepId":"3"},"sequenceNumber":74,"timestamp":"2021-07-02T01:19:51.802259326Z"} 73 | {"testStepArtifact":{"testStepEnd":{"name":"fetchmemlimit","status":"COMPLETE"},"testStepId":"2"},"sequenceNumber":75,"timestamp":"2021-07-02T01:19:51.802318374Z"} 74 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Cleaning up run lock..."}},"sequenceNumber":76,"timestamp":"2021-07-02T01:19:51.802433935Z"} 75 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Released running lock: /var/run/memtest.pid"}},"sequenceNumber":77,"timestamp":"2021-07-02T01:19:51.802492883Z"} 76 | {"testRunArtifact":{"testRunEnd":{"name":"memtester","status":"COMPLETE","result":"PASS"}},"sequenceNumber":78,"timestamp":"2021-07-02T01:19:51.952991974Z"} 77 | -------------------------------------------------------------------------------- /validators/spec_validator/samples/dimm_sanity_test.jsonl: -------------------------------------------------------------------------------- 1 | {"testRunArtifact":{"testRunStart":{"name":"dimmsanity","version":"382526885","parameters":{},"dutInfo":[{"hostname":"mvcs28","hardwareComponents":[{"hardwareInfoId":"0","arena":"","name":"DIMM6","fruLocation":{"devpath":"/phys/DIMM6","odataId":"","blockpath":"","serialNumber":"2C62F5F6"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"1","arena":"","name":"DIMM7","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"2","arena":"","name":"DIMM4","fruLocation":{"devpath":"/phys/DIMM4","odataId":"","blockpath":"","serialNumber":"2C62F81B"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"3","arena":"","name":"DIMM5","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"4","arena":"","name":"DIMM2","fruLocation":{"devpath":"/phys/DIMM2","odataId":"","blockpath":"","serialNumber":"2C62F5F9"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"5","arena":"","name":"DIMM3","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"6","arena":"","name":"DIMM0","fruLocation":{"devpath":"/phys/DIMM0","odataId":"","blockpath":"","serialNumber":"2C62F8C1"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"7","arena":"","name":"DIMM1","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"8","arena":"","name":"DIMM9","fruLocation":{"devpath":"/phys/DIMM9","odataId":"","blockpath":"","serialNumber":"2C62F81E"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"9","arena":"","name":"DIMM8","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"10","arena":"","name":"DIMM11","fruLocation":{"devpath":"/phys/DIMM11","odataId":"","blockpath":"","serialNumber":"2C62F4C3"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"11","arena":"","name":"DIMM10","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"12","arena":"","name":"DIMM13","fruLocation":{"devpath":"/phys/DIMM13","odataId":"","blockpath":"","serialNumber":"2C62F858"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"13","arena":"","name":"DIMM12","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"14","arena":"","name":"DIMM15","fruLocation":{"devpath":"/phys/DIMM15","odataId":"","blockpath":"","serialNumber":"2C62F982"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"15","arena":"","name":"DIMM14","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"16","arena":"","name":"DIMM22","fruLocation":{"devpath":"/phys/DIMM22","odataId":"","blockpath":"","serialNumber":"2A43DBD7"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"17","arena":"","name":"DIMM23","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"18","arena":"","name":"DIMM20","fruLocation":{"devpath":"/phys/DIMM20","odataId":"","blockpath":"","serialNumber":"2A43DA9C"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"19","arena":"","name":"DIMM21","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"20","arena":"","name":"DIMM18","fruLocation":{"devpath":"/phys/DIMM18","odataId":"","blockpath":"","serialNumber":"2C62FDCF"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"21","arena":"","name":"DIMM19","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"22","arena":"","name":"DIMM16","fruLocation":{"devpath":"/phys/DIMM16","odataId":"","blockpath":"","serialNumber":"2C62F72C"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"23","arena":"","name":"DIMM17","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"24","arena":"","name":"DIMM25","fruLocation":{"devpath":"/phys/DIMM25","odataId":"","blockpath":"","serialNumber":"2A43D0AD"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"25","arena":"","name":"DIMM24","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"26","arena":"","name":"DIMM27","fruLocation":{"devpath":"/phys/DIMM27","odataId":"","blockpath":"","serialNumber":"2A43B21C"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"27","arena":"","name":"DIMM26","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"28","arena":"","name":"DIMM29","fruLocation":{"devpath":"/phys/DIMM29","odataId":"","blockpath":"","serialNumber":"2A43DBBE"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"29","arena":"","name":"DIMM28","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"30","arena":"","name":"DIMM31","fruLocation":{"devpath":"/phys/DIMM31","odataId":"","blockpath":"","serialNumber":"2A43B3F6"},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""},{"hardwareInfoId":"31","arena":"","name":"DIMM30","fruLocation":{"devpath":"","odataId":"","blockpath":"","serialNumber":""},"partNumber":"","manufacturer":"","mfgPartNumber":"","partType":""}],"softwareInfos":[]}]}},"sequenceNumber":0,"timestamp":"2021-07-02T00:46:17.290371029Z"} 2 | {"testStepArtifact":{"testStepStart":{"name":"DiagnoseDIMMs"},"testStepId":"0"},"sequenceNumber":1,"timestamp":"2021-07-02T00:46:17.291395768Z"} 3 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":2,"timestamp":"2021-07-02T00:46:17.291831680Z"} 4 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 6, SN 2C62F5F6 is plugged in, and is present in Firmware","hardwareInfoId":["0"]},"testStepId":"0"},"sequenceNumber":3,"timestamp":"2021-07-02T00:46:17.291922868Z"} 5 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":4,"timestamp":"2021-07-02T00:46:17.291975098Z"} 6 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 6, SN 2C62F5F6 is present in Firmware, and is plugged in","hardwareInfoId":["0"]},"testStepId":"0"},"sequenceNumber":5,"timestamp":"2021-07-02T00:46:17.292025600Z"} 7 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 7 empty","hardwareInfoId":["1"]},"testStepId":"0"},"sequenceNumber":6,"timestamp":"2021-07-02T00:46:17.292065808Z"} 8 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"2"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":7,"timestamp":"2021-07-02T00:46:17.292099355Z"} 9 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 4, SN 2C62F81B is plugged in, and is present in Firmware","hardwareInfoId":["2"]},"testStepId":"0"},"sequenceNumber":8,"timestamp":"2021-07-02T00:46:17.292143621Z"} 10 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"2"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":9,"timestamp":"2021-07-02T00:46:17.292174894Z"} 11 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 4, SN 2C62F81B is present in Firmware, and is plugged in","hardwareInfoId":["2"]},"testStepId":"0"},"sequenceNumber":10,"timestamp":"2021-07-02T00:46:17.292213252Z"} 12 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 5 empty","hardwareInfoId":["3"]},"testStepId":"0"},"sequenceNumber":11,"timestamp":"2021-07-02T00:46:17.292242674Z"} 13 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"4"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":12,"timestamp":"2021-07-02T00:46:17.292271618Z"} 14 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 2, SN 2C62F5F9 is plugged in, and is present in Firmware","hardwareInfoId":["4"]},"testStepId":"0"},"sequenceNumber":13,"timestamp":"2021-07-02T00:46:17.292312983Z"} 15 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"4"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":14,"timestamp":"2021-07-02T00:46:17.292347443Z"} 16 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 2, SN 2C62F5F9 is present in Firmware, and is plugged in","hardwareInfoId":["4"]},"testStepId":"0"},"sequenceNumber":15,"timestamp":"2021-07-02T00:46:17.292384506Z"} 17 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 3 empty","hardwareInfoId":["5"]},"testStepId":"0"},"sequenceNumber":16,"timestamp":"2021-07-02T00:46:17.292412940Z"} 18 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"6"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":17,"timestamp":"2021-07-02T00:46:17.292441671Z"} 19 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 0, SN 2C62F8C1 is plugged in, and is present in Firmware","hardwareInfoId":["6"]},"testStepId":"0"},"sequenceNumber":18,"timestamp":"2021-07-02T00:46:17.292478091Z"} 20 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"6"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":19,"timestamp":"2021-07-02T00:46:17.292506924Z"} 21 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 0, SN 2C62F8C1 is present in Firmware, and is plugged in","hardwareInfoId":["6"]},"testStepId":"0"},"sequenceNumber":20,"timestamp":"2021-07-02T00:46:17.292548452Z"} 22 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 1 empty","hardwareInfoId":["7"]},"testStepId":"0"},"sequenceNumber":21,"timestamp":"2021-07-02T00:46:17.292578044Z"} 23 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"8"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":22,"timestamp":"2021-07-02T00:46:17.292606277Z"} 24 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 9, SN 2C62F81E is plugged in, and is present in Firmware","hardwareInfoId":["8"]},"testStepId":"0"},"sequenceNumber":23,"timestamp":"2021-07-02T00:46:17.292642060Z"} 25 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"8"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":24,"timestamp":"2021-07-02T00:46:17.292670557Z"} 26 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 9, SN 2C62F81E is present in Firmware, and is plugged in","hardwareInfoId":["8"]},"testStepId":"0"},"sequenceNumber":25,"timestamp":"2021-07-02T00:46:17.292706998Z"} 27 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 8 empty","hardwareInfoId":["9"]},"testStepId":"0"},"sequenceNumber":26,"timestamp":"2021-07-02T00:46:17.292735Z"} 28 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"10"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":27,"timestamp":"2021-07-02T00:46:17.292765289Z"} 29 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 11, SN 2C62F4C3 is plugged in, and is present in Firmware","hardwareInfoId":["10"]},"testStepId":"0"},"sequenceNumber":28,"timestamp":"2021-07-02T00:46:17.292803584Z"} 30 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"10"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":29,"timestamp":"2021-07-02T00:46:17.292833223Z"} 31 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 11, SN 2C62F4C3 is present in Firmware, and is plugged in","hardwareInfoId":["10"]},"testStepId":"0"},"sequenceNumber":30,"timestamp":"2021-07-02T00:46:17.292870289Z"} 32 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 10 empty","hardwareInfoId":["11"]},"testStepId":"0"},"sequenceNumber":31,"timestamp":"2021-07-02T00:46:17.292899115Z"} 33 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"12"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":32,"timestamp":"2021-07-02T00:46:17.292929020Z"} 34 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 13, SN 2C62F858 is plugged in, and is present in Firmware","hardwareInfoId":["12"]},"testStepId":"0"},"sequenceNumber":33,"timestamp":"2021-07-02T00:46:17.292967041Z"} 35 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"12"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":34,"timestamp":"2021-07-02T00:46:17.293000688Z"} 36 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 13, SN 2C62F858 is present in Firmware, and is plugged in","hardwareInfoId":["12"]},"testStepId":"0"},"sequenceNumber":35,"timestamp":"2021-07-02T00:46:17.293038049Z"} 37 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 12 empty","hardwareInfoId":["13"]},"testStepId":"0"},"sequenceNumber":36,"timestamp":"2021-07-02T00:46:17.293066560Z"} 38 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"14"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":37,"timestamp":"2021-07-02T00:46:17.293095969Z"} 39 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 15, SN 2C62F982 is plugged in, and is present in Firmware","hardwareInfoId":["14"]},"testStepId":"0"},"sequenceNumber":38,"timestamp":"2021-07-02T00:46:17.293133135Z"} 40 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"14"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":39,"timestamp":"2021-07-02T00:46:17.293162441Z"} 41 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 15, SN 2C62F982 is present in Firmware, and is plugged in","hardwareInfoId":["14"]},"testStepId":"0"},"sequenceNumber":40,"timestamp":"2021-07-02T00:46:17.293198512Z"} 42 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 14 empty","hardwareInfoId":["15"]},"testStepId":"0"},"sequenceNumber":41,"timestamp":"2021-07-02T00:46:17.293226675Z"} 43 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"16"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":42,"timestamp":"2021-07-02T00:46:17.293256788Z"} 44 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 22, SN 2A43DBD7 is plugged in, and is present in Firmware","hardwareInfoId":["16"]},"testStepId":"0"},"sequenceNumber":43,"timestamp":"2021-07-02T00:46:17.293293840Z"} 45 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"16"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":44,"timestamp":"2021-07-02T00:46:17.293322421Z"} 46 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 22, SN 2A43DBD7 is present in Firmware, and is plugged in","hardwareInfoId":["16"]},"testStepId":"0"},"sequenceNumber":45,"timestamp":"2021-07-02T00:46:17.293361549Z"} 47 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 23 empty","hardwareInfoId":["17"]},"testStepId":"0"},"sequenceNumber":46,"timestamp":"2021-07-02T00:46:17.293389524Z"} 48 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"18"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":47,"timestamp":"2021-07-02T00:46:17.293417621Z"} 49 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 20, SN 2A43DA9C is plugged in, and is present in Firmware","hardwareInfoId":["18"]},"testStepId":"0"},"sequenceNumber":48,"timestamp":"2021-07-02T00:46:17.293454215Z"} 50 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"18"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":49,"timestamp":"2021-07-02T00:46:17.293482908Z"} 51 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 20, SN 2A43DA9C is present in Firmware, and is plugged in","hardwareInfoId":["18"]},"testStepId":"0"},"sequenceNumber":50,"timestamp":"2021-07-02T00:46:17.293518554Z"} 52 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 21 empty","hardwareInfoId":["19"]},"testStepId":"0"},"sequenceNumber":51,"timestamp":"2021-07-02T00:46:17.293548015Z"} 53 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"20"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":52,"timestamp":"2021-07-02T00:46:17.293576055Z"} 54 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 18, SN 2C62FDCF is plugged in, and is present in Firmware","hardwareInfoId":["20"]},"testStepId":"0"},"sequenceNumber":53,"timestamp":"2021-07-02T00:46:17.293612040Z"} 55 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"20"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":54,"timestamp":"2021-07-02T00:46:17.293640778Z"} 56 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 18, SN 2C62FDCF is present in Firmware, and is plugged in","hardwareInfoId":["20"]},"testStepId":"0"},"sequenceNumber":55,"timestamp":"2021-07-02T00:46:17.293677123Z"} 57 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 19 empty","hardwareInfoId":["21"]},"testStepId":"0"},"sequenceNumber":56,"timestamp":"2021-07-02T00:46:17.293704975Z"} 58 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"22"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":57,"timestamp":"2021-07-02T00:46:17.293733623Z"} 59 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 16, SN 2C62F72C is plugged in, and is present in Firmware","hardwareInfoId":["22"]},"testStepId":"0"},"sequenceNumber":58,"timestamp":"2021-07-02T00:46:17.293773998Z"} 60 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"22"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":59,"timestamp":"2021-07-02T00:46:17.293803435Z"} 61 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 16, SN 2C62F72C is present in Firmware, and is plugged in","hardwareInfoId":["22"]},"testStepId":"0"},"sequenceNumber":60,"timestamp":"2021-07-02T00:46:17.293841081Z"} 62 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 17 empty","hardwareInfoId":["23"]},"testStepId":"0"},"sequenceNumber":61,"timestamp":"2021-07-02T00:46:17.293869363Z"} 63 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"24"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":62,"timestamp":"2021-07-02T00:46:17.293897183Z"} 64 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 25, SN 2A43D0AD is plugged in, and is present in Firmware","hardwareInfoId":["24"]},"testStepId":"0"},"sequenceNumber":63,"timestamp":"2021-07-02T00:46:17.293933189Z"} 65 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"24"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":64,"timestamp":"2021-07-02T00:46:17.293962012Z"} 66 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 25, SN 2A43D0AD is present in Firmware, and is plugged in","hardwareInfoId":["24"]},"testStepId":"0"},"sequenceNumber":65,"timestamp":"2021-07-02T00:46:17.294000089Z"} 67 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 24 empty","hardwareInfoId":["25"]},"testStepId":"0"},"sequenceNumber":66,"timestamp":"2021-07-02T00:46:17.294028484Z"} 68 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"26"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":67,"timestamp":"2021-07-02T00:46:17.294057249Z"} 69 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 27, SN 2A43B21C is plugged in, and is present in Firmware","hardwareInfoId":["26"]},"testStepId":"0"},"sequenceNumber":68,"timestamp":"2021-07-02T00:46:17.294093557Z"} 70 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"26"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":69,"timestamp":"2021-07-02T00:46:17.294121671Z"} 71 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 27, SN 2A43B21C is present in Firmware, and is plugged in","hardwareInfoId":["26"]},"testStepId":"0"},"sequenceNumber":70,"timestamp":"2021-07-02T00:46:17.294158306Z"} 72 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 26 empty","hardwareInfoId":["27"]},"testStepId":"0"},"sequenceNumber":71,"timestamp":"2021-07-02T00:46:17.294186572Z"} 73 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"28"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":72,"timestamp":"2021-07-02T00:46:17.294214409Z"} 74 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 29, SN 2A43DBBE is plugged in, and is present in Firmware","hardwareInfoId":["28"]},"testStepId":"0"},"sequenceNumber":73,"timestamp":"2021-07-02T00:46:17.294250597Z"} 75 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"28"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":74,"timestamp":"2021-07-02T00:46:17.294280680Z"} 76 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 29, SN 2A43DBBE is present in Firmware, and is plugged in","hardwareInfoId":["28"]},"testStepId":"0"},"sequenceNumber":75,"timestamp":"2021-07-02T00:46:17.294317521Z"} 77 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 28 empty","hardwareInfoId":["29"]},"testStepId":"0"},"sequenceNumber":76,"timestamp":"2021-07-02T00:46:17.294346489Z"} 78 | {"testStepArtifact":{"measurement":{"info":{"name":"enabled-dimm","unit":"","hardwareInfoId":"30"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":77,"timestamp":"2021-07-02T00:46:17.294374544Z"} 79 | {"testStepArtifact":{"diagnosis":{"symptom":"enabled-dimm","type":"PASS","msg":"DIMM slot 31, SN 2A43B3F6 is plugged in, and is present in Firmware","hardwareInfoId":["30"]},"testStepId":"0"},"sequenceNumber":78,"timestamp":"2021-07-02T00:46:17.294411698Z"} 80 | {"testStepArtifact":{"measurement":{"info":{"name":"detected-dimm","unit":"","hardwareInfoId":"30"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","validValues":{"values":[true]},"value":true}},"testStepId":"0"},"sequenceNumber":79,"timestamp":"2021-07-02T00:46:17.294439988Z"} 81 | {"testStepArtifact":{"diagnosis":{"symptom":"detected-dimm","type":"PASS","msg":"DIMM slot 31, SN 2A43B3F6 is present in Firmware, and is plugged in","hardwareInfoId":["30"]},"testStepId":"0"},"sequenceNumber":80,"timestamp":"2021-07-02T00:46:17.294476477Z"} 82 | {"testStepArtifact":{"diagnosis":{"symptom":"empty-slot","type":"PASS","msg":"DIMM slot 30 empty","hardwareInfoId":["31"]},"testStepId":"0"},"sequenceNumber":81,"timestamp":"2021-07-02T00:46:17.294504443Z"} 83 | {"testStepArtifact":{"testStepEnd":{"name":"DiagnoseDIMMs","status":"COMPLETE"},"testStepId":"0"},"sequenceNumber":82,"timestamp":"2021-07-02T00:46:17.294531603Z"} 84 | {"testRunArtifact":{"testRunEnd":{"name":"dimmsanity","status":"COMPLETE","result":"PASS"}},"sequenceNumber":83,"timestamp":"2021-07-02T00:46:17.294588558Z"} 85 | -------------------------------------------------------------------------------- /validators/spec_validator/samples/sat_test.jsonl: -------------------------------------------------------------------------------- 1 | {"testRunArtifact":{"log":{"severity":"INFO","text":"Initialized the test!"}},"sequenceNumber":0,"timestamp":"2021-07-02T00:46:48.079045087Z"} 2 | {"testRunArtifact":{"testRunStart":{"name":"Sat","version":"382526885","parameters":{"@type":"type.googleapis.com/google.protobuf.Empty"},"dutInfo":[{"hostname":"mvcs28","hardwareComponents":[{"hardwareInfoId":"0","arena":"","name":"unknown","partNumber":"","manufacturer":"unknown","mfgPartNumber":"unknown","partType":"unknown"},{"hardwareInfoId":"1","arena":"","name":"Ixion","partNumber":"","manufacturer":"unknown","mfgPartNumber":"unknown","partType":"dimm"},{"hardwareInfoId":"2","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM6","odataId":"","blockpath":"","serialNumber":"2c62f5f6"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"3","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM4","odataId":"","blockpath":"","serialNumber":"2c62f81b"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"4","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM2","odataId":"","blockpath":"","serialNumber":"2c62f5f9"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"5","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM0","odataId":"","blockpath":"","serialNumber":"2c62f8c1"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"6","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM9","odataId":"","blockpath":"","serialNumber":"2c62f81e"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"7","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM11","odataId":"","blockpath":"","serialNumber":"2c62f4c3"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"8","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM13","odataId":"","blockpath":"","serialNumber":"2c62f858"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"9","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM15","odataId":"","blockpath":"","serialNumber":"2c62f982"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"10","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM22","odataId":"","blockpath":"","serialNumber":"2a43dbd7"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"11","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM20","odataId":"","blockpath":"","serialNumber":"2a43da9c"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"12","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM18","odataId":"","blockpath":"","serialNumber":"2c62fdcf"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"13","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM16","odataId":"","blockpath":"","serialNumber":"2c62f72c"},"partNumber":"MTC40F2046S1RC48BAX","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"14","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM25","odataId":"","blockpath":"","serialNumber":"2a43d0ad"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"15","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM27","odataId":"","blockpath":"","serialNumber":"2a43b21c"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"16","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM29","odataId":"","blockpath":"","serialNumber":"2a43dbbe"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"17","arena":"","name":"ddr5","fruLocation":{"devpath":"/phys/DIMM31","odataId":"","blockpath":"","serialNumber":"2a43b3f6"},"partNumber":"MTC40F2046S1RC48BAY","manufacturer":"dimm-vendor Technology","mfgPartNumber":"","partType":"dimm"},{"hardwareInfoId":"18","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"19","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"20","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"21","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"22","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"23","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"24","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"25","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"26","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"27","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"28","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"29","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"30","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"31","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"32","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"33","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"34","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"35","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"36","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"37","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"38","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"39","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"40","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"41","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"42","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"43","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"44","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"45","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"46","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"47","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"48","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"49","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"50","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"51","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"52","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"53","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"54","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"55","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"56","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"57","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"58","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"59","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"60","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"61","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"62","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"63","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"64","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"65","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"66","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"67","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"68","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"69","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"70","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"71","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"72","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"73","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"74","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"75","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"76","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"77","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"78","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"79","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"80","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"81","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"82","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"83","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"84","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"85","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"86","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"87","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"88","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"89","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"90","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"91","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"92","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"93","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"94","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"95","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"96","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"97","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"98","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"99","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"100","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"101","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU0","odataId":"","blockpath":"","serialNumber":"0x066bc8c32997dd25"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"102","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"103","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"104","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"105","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"106","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"107","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"108","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"109","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"110","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"111","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"112","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"113","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"114","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"115","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"116","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"117","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"118","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"119","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"120","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"121","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"122","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"123","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"124","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"125","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"126","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"127","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"128","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"},{"hardwareInfoId":"129","arena":"","name":"cpu_model","fruLocation":{"devpath":"/phys/CPU1","odataId":"","blockpath":"","serialNumber":"0x066bea43325cde1c"},"partNumber":"cpu_model","manufacturer":"cpu-vendor","mfgPartNumber":"","partType":"cpu"}],"softwareInfos":[]}]}},"sequenceNumber":1,"timestamp":"2021-07-02T00:46:48.799492079Z"} 3 | {"testStepArtifact":{"testStepStart":{"name":"config"},"testStepId":"0"},"sequenceNumber":2,"timestamp":"2021-07-02T00:46:48.801304824Z"} 4 | {"testStepArtifact":{"log":{"severity":"INFO","text":"cpu info: [{'core': '0', 'package': '0', 'index': '0'}, {'core': '1', 'package': '0', 'index': '1'}, {'core': '2', 'package': '0', 'index': '2'}, {'core': '3', 'package': '0', 'index': '3'}, {'core': '4', 'package': '0', 'index': '4'}, {'core': '5', 'package': '0', 'index': '5'}, {'core': '6', 'package': '0', 'index': '6'}, {'core': '7', 'package': '0', 'index': '7'}, {'core': '8', 'package': '0', 'index': '8'}, {'core': '9', 'package': '0', 'index': '9'}, {'core': '10', 'package': '0', 'index': '10'}, {'core': '11', 'package': '0', 'index': '11'}, {'core': '12', 'package': '0', 'index': '12'}, {'core': '13', 'package': '0', 'index': '13'}, {'core': '14', 'package': '0', 'index': '14'}, {'core': '15', 'package': '0', 'index': '15'}, {'core': '16', 'package': '0', 'index': '16'}, {'core': '17', 'package': '0', 'index': '17'}, {'core': '18', 'package': '0', 'index': '18'}, {'core': '19', 'package': '0', 'index': '19'}, {'core': '20', 'package': '0', 'index': '20'}, {'core': '21', 'package': '0', 'index': '21'}, {'core': '22', 'package': '0', 'index': '22'}, {'core': '23', 'package': '0', 'index': '23'}, {'core': '24', 'package': '0', 'index': '24'}, {'core': '25', 'package': '0', 'index': '25'}, {'core': '26', 'package': '0', 'index': '26'}, {'core': '27', 'package': '0', 'index': '27'}, {'core': '28', 'package': '1', 'index': '0'}, {'core': '29', 'package': '1', 'index': '1'}, {'core': '30', 'package': '1', 'index': '2'}, {'core': '31', 'package': '1', 'index': '3'}, {'core': '32', 'package': '1', 'index': '4'}, {'core': '33', 'package': '1', 'index': '5'}, {'core': '34', 'package': '1', 'index': '6'}, {'core': '35', 'package': '1', 'index': '7'}, {'core': '36', 'package': '1', 'index': '8'}, {'core': '37', 'package': '1', 'index': '9'}, {'core': '38', 'package': '1', 'index': '10'}, {'core': '39', 'package': '1', 'index': '11'}, {'core': '40', 'package': '1', 'index': '12'}, {'core': '41', 'package': '1', 'index': '13'}, {'core': '42', 'package': '1', 'index': '14'}, {'core': '43', 'package': '1', 'index': '15'}, {'core': '44', 'package': '1', 'index': '16'}, {'core': '45', 'package': '1', 'index': '17'}, {'core': '46', 'package': '1', 'index': '18'}, {'core': '47', 'package': '1', 'index': '19'}, {'core': '48', 'package': '1', 'index': '20'}, {'core': '49', 'package': '1', 'index': '21'}, {'core': '50', 'package': '1', 'index': '22'}, {'core': '51', 'package': '1', 'index': '23'}, {'core': '52', 'package': '1', 'index': '24'}, {'core': '53', 'package': '1', 'index': '25'}, {'core': '54', 'package': '1', 'index': '26'}, {'core': '55', 'package': '1', 'index': '27'}, {'core': '56', 'package': '0', 'index': '0'}, {'core': '57', 'package': '0', 'index': '1'}, {'core': '58', 'package': '0', 'index': '2'}, {'core': '59', 'package': '0', 'index': '3'}, {'core': '60', 'package': '0', 'index': '4'}, {'core': '61', 'package': '0', 'index': '5'}, {'core': '62', 'package': '0', 'index': '6'}, {'core': '63', 'package': '0', 'index': '7'}, {'core': '64', 'package': '0', 'index': '8'}, {'core': '65', 'package': '0', 'index': '9'}, {'core': '66', 'package': '0', 'index': '10'}, {'core': '67', 'package': '0', 'index': '11'}, {'core': '68', 'package': '0', 'index': '12'}, {'core': '69', 'package': '0', 'index': '13'}, {'core': '70', 'package': '0', 'index': '14'}, {'core': '71', 'package': '0', 'index': '15'}, {'core': '72', 'package': '0', 'index': '16'}, {'core': '73', 'package': '0', 'index': '17'}, {'core': '74', 'package': '0', 'index': '18'}, {'core': '75', 'package': '0', 'index': '19'}, {'core': '76', 'package': '0', 'index': '20'}, {'core': '77', 'package': '0', 'index': '21'}, {'core': '78', 'package': '0', 'index': '22'}, {'core': '79', 'package': '0', 'index': '23'}, {'core': '80', 'package': '0', 'index': '24'}, {'core': '81', 'package': '0', 'index': '25'}, {'core': '82', 'package': '0', 'index': '26'}, {'core': '83', 'package': '0', 'index': '27'}, {'core': '84', 'package': '1', 'index': '0'}, {'core': '85', 'package': '1', 'index': '1'}, {'core': '86', 'package': '1', 'index': '2'}, {'core': '87', 'package': '1', 'index': '3'}, {'core': '88', 'package': '1', 'index': '4'}, {'core': '89', 'package': '1', 'index': '5'}, {'core': '90', 'package': '1', 'index': '6'}, {'core': '91', 'package': '1', 'index': '7'}, {'core': '92', 'package': '1', 'index': '8'}, {'core': '93', 'package': '1', 'index': '9'}, {'core': '94', 'package': '1', 'index': '10'}, {'core': '95', 'package': '1', 'index': '11'}, {'core': '96', 'package': '1', 'index': '12'}, {'core': '97', 'package': '1', 'index': '13'}, {'core': '98', 'package': '1', 'index': '14'}, {'core': '99', 'package': '1', 'index': '15'}, {'core': '100', 'package': '1', 'index': '16'}, {'core': '101', 'package': '1', 'index': '17'}, {'core': '102', 'package': '1', 'index': '18'}, {'core': '103', 'package': '1', 'index': '19'}, {'core': '104', 'package': '1', 'index': '20'}, {'core': '105', 'package': '1', 'index': '21'}, {'core': '106', 'package': '1', 'index': '22'}, {'core': '107', 'package': '1', 'index': '23'}, {'core': '108', 'package': '1', 'index': '24'}, {'core': '109', 'package': '1', 'index': '25'}, {'core': '110', 'package': '1', 'index': '26'}, {'core': '111', 'package': '1', 'index': '27'}]"},"testStepId":"0"},"sequenceNumber":3,"timestamp":"2021-07-02T00:46:48.947573768Z"} 5 | {"testStepArtifact":{"log":{"severity":"INFO","text":"The machine has no far memory."},"testStepId":"0"},"sequenceNumber":6,"timestamp":"2021-07-02T00:46:48.960631521Z"} 6 | {"testStepArtifact":{"testStepEnd":{"name":"config","status":"COMPLETE"},"testStepId":"0"},"sequenceNumber":7,"timestamp":"2021-07-02T00:46:48.960704681Z"} 7 | {"testStepArtifact":{"testStepStart":{"name":"setup"},"testStepId":"1"},"sequenceNumber":8,"timestamp":"2021-07-02T00:46:48.960771265Z"} 8 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Cleanup storage started."},"testStepId":"1"},"sequenceNumber":9,"timestamp":"2021-07-02T00:46:48.960826285Z"} 9 | {"testStepArtifact":{"testStepEnd":{"name":"setup","status":"COMPLETE"},"testStepId":"1"},"sequenceNumber":10,"timestamp":"2021-07-02T00:46:48.961228498Z"} 10 | {"testStepArtifact":{"testStepStart":{"name":"workloads"},"testStepId":"2"},"sequenceNumber":11,"timestamp":"2021-07-02T00:46:48.961291278Z"} 11 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Set up environment start."},"testStepId":"2"},"sequenceNumber":12,"timestamp":"2021-07-02T00:46:48.961344273Z"} 12 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Turn MCE tolerance up done."},"testStepId":"2"},"sequenceNumber":13,"timestamp":"2021-07-02T00:46:48.974836238Z"} 13 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Writing file /sys/devices/system/edac/mc/poll_usec_max failed: [Errno 2] No such file or directory: '/sys/devices/system/edac/mc/poll_usec_max'."},"testStepId":"2"},"sequenceNumber":14,"timestamp":"2021-07-02T00:46:48.974942033Z"} 14 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Writing file /sys/devices/system/edac/mc/poll_usec_min failed: [Errno 2] No such file or directory: '/sys/devices/system/edac/mc/poll_usec_min'."},"testStepId":"2"},"sequenceNumber":15,"timestamp":"2021-07-02T00:46:48.975009593Z"} 15 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Writing file /sys/devices/system/edac/mc/log_ue failed: [Errno 2] No such file or directory: '/sys/devices/system/edac/mc/log_ue'."},"testStepId":"2"},"sequenceNumber":16,"timestamp":"2021-07-02T00:46:48.975067962Z"} 16 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Writing file /sys/devices/system/edac/mc/log_ce failed: [Errno 2] No such file or directory: '/sys/devices/system/edac/mc/log_ce'."},"testStepId":"2"},"sequenceNumber":17,"timestamp":"2021-07-02T00:46:48.975124276Z"} 17 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Writing file /sys/devices/system/machinecheck/machinecheck0/showall failed: [Errno 13] Permission denied: '/sys/devices/system/machinecheck/machinecheck0/showall'."},"testStepId":"2"},"sequenceNumber":18,"timestamp":"2021-07-02T00:46:48.975187664Z"} 18 | {"testStepArtifact":{"log":{"severity":"WARNING","text":"MCED not running"},"testStepId":"2"},"sequenceNumber":19,"timestamp":"2021-07-02T00:46:49.617636837Z"} 19 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Set up environment done."},"testStepId":"2"},"sequenceNumber":20,"timestamp":"2021-07-02T00:46:49.617847176Z"} 20 | {"testStepArtifact":{"log":{"severity":"INFO","text":"Total memory: 1082138869760 bytes. Free memory: 1080082075648 bytes."},"testStepId":"2"},"sequenceNumber":21,"timestamp":"2021-07-02T00:46:49.618134040Z"} 21 | {"testStepArtifact":{"log":{"severity":"INFO","text":"sat_args: ['nice', '-n0', '/tmp/_meltan_test_pkg_sat_sar.4k04o/_meltan_test_pkg_sat_launcher.runfiles/google3/platforms/testing/tests/sat/standalone/sat', '-l', '/root/sat_log.INFO', '-s', '900', '-M', '0', '-m', '-1', '-C', '0', '--reserve_memory', '27500', '-f', '/export/hda3/sat_disktest_adil3vvnh.XXXXXX', '-f', '/export/hda3/sat_disktest_bxhpdi8lp.XXXXXX', '--cpu_freq_test', '--cpu_freq_threshold', '1280.0', '-W']"},"testStepId":"2"},"sequenceNumber":22,"timestamp":"2021-07-02T00:46:49.619798371Z"} 22 | {"testStepArtifact":{"log":{"severity":"DEBUG","text":"test_results: {'warning': ['MCED is not running', '/dev/mcelog version mismatch, expected record length 104, actual 120.', 'Can not open /dev/mcelog for read (errno 2); No MCE error data will be recorded.'], 'target-percent': [89], 'memory-size': [920409], 'status': ['PASS'], 'reason': ['please verify no corrected errors']}"},"testStepId":"2"},"sequenceNumber":24,"timestamp":"2021-07-02T01:03:21.313670572Z"} 23 | {"testStepArtifact":{"measurement":{"info":{"name":"sat-stress-execution","unit":"","hardwareInfoId":"0"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","value":"PASS"}},"testStepId":"2"},"sequenceNumber":25,"timestamp":"2021-07-02T01:03:21.313882480Z"} 24 | {"testStepArtifact":{"measurement":{"info":{"name":"memory_coverage","unit":"percent","hardwareInfoId":""},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"minimum":80},"value":89}},"testStepId":"2"},"sequenceNumber":26,"timestamp":"2021-07-02T01:03:21.313988357Z"} 25 | {"testStepArtifact":{"log":{"severity":"DEBUG","text":"Found errors: {}"},"testStepId":"2"},"sequenceNumber":27,"timestamp":"2021-07-02T01:03:21.314106615Z"} 26 | {"testStepArtifact":{"log":{"severity":"DEBUG","text":"Errors after processing: {}"},"testStepId":"2"},"sequenceNumber":28,"timestamp":"2021-07-02T01:03:21.314143817Z"} 27 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"2"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":29,"timestamp":"2021-07-02T01:03:21.314213020Z"} 28 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"3"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":30,"timestamp":"2021-07-02T01:03:21.314274897Z"} 29 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"4"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":31,"timestamp":"2021-07-02T01:03:21.314325644Z"} 30 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"5"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":32,"timestamp":"2021-07-02T01:03:21.314373411Z"} 31 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"6"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":33,"timestamp":"2021-07-02T01:03:21.314420823Z"} 32 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"7"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":34,"timestamp":"2021-07-02T01:03:21.314469497Z"} 33 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"8"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":35,"timestamp":"2021-07-02T01:03:21.314516746Z"} 34 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"9"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":36,"timestamp":"2021-07-02T01:03:21.314563680Z"} 35 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"10"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":37,"timestamp":"2021-07-02T01:03:21.314611574Z"} 36 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"11"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":38,"timestamp":"2021-07-02T01:03:21.314658526Z"} 37 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"12"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":39,"timestamp":"2021-07-02T01:03:21.314712478Z"} 38 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"13"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":40,"timestamp":"2021-07-02T01:03:21.314759558Z"} 39 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"14"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":41,"timestamp":"2021-07-02T01:03:21.314806577Z"} 40 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"15"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":42,"timestamp":"2021-07-02T01:03:21.314853141Z"} 41 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"16"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":43,"timestamp":"2021-07-02T01:03:21.314900546Z"} 42 | {"testStepArtifact":{"measurement":{"info":{"name":"dimm-miscompares","unit":"","hardwareInfoId":"17"},"element":{"index":0,"measurementSeriesId":"NOT_APPLICABLE","range":{"maximum":0,"minimum":0},"value":0}},"testStepId":"2"},"sequenceNumber":44,"timestamp":"2021-07-02T01:03:21.314947467Z"} 43 | {"testStepArtifact":{"testStepEnd":{"name":"workloads","status":"COMPLETE"},"testStepId":"2"},"sequenceNumber":45,"timestamp":"2021-07-02T01:03:21.314987407Z"} 44 | {"testStepArtifact":{"testStepStart":{"name":"cleanup"},"testStepId":"3"},"sequenceNumber":46,"timestamp":"2021-07-02T01:03:21.315029111Z"} 45 | {"testStepArtifact":{"testStepEnd":{"name":"cleanup","status":"COMPLETE"},"testStepId":"3"},"sequenceNumber":47,"timestamp":"2021-07-02T01:03:21.315090391Z"} 46 | {"testRunArtifact":{"testRunEnd":{"name":"Sat","status":"COMPLETE","result":"PASS"}},"sequenceNumber":48,"timestamp":"2021-07-02T01:03:21.437967974Z"} 47 | --------------------------------------------------------------------------------