Test JSON file structure

Caution

Test JSON files from previous versions of xbtest are not compatible with this version. Contact AMD support for information on how to convert a Test JSON file from previous xbtest version.

Test environment members

The test JSON file allows to provide various schemas defining the configuration of the tasks and the test cases to be run.

Test environment members

Member

Mandator y/ Optional

Description

comment

Optional

If necessary, to detail your test, use comments at any level in the Test JSON file.

testcases

Optional

Defines each of the test cases to be executed, which are performed in parallel. Define which test is performed. Because test cases run in parallel, you can define 0, 1, or more. When not defined in the test JSON file, a test case is not run. The Verify test case is always performed even if no test cases are specified.

The following testcases nodes are supported:

tasks

Optional

Defines parameters of each task. Note that tasks are performed in parallel with each of the test cases.

The following tasks nodes are supported:

The test JSON file has the following properties:

  • If the same member is repeated throughout your file, only the last value is used.

  • Comments can be added or removed anywhere in test JSON file using member comment.

Test cases are executed in parallel with exception of:

Test JSON file example

The following is a test JSON file example.

{
  "comment": "This is an example of test JSON file",
  "comment": "You can use this example as template for your own tests",
  "comment": "Use comment to detail your test if necessary (you can also remove these lines)",
  "testcases": {
    "mmio": {
      "global_config": {
        "comment": "Use comment to detail your test if necessary",
        "test_sequence": [
          { "duration": 10 }
        ]
      }
    },
    "dma": {
      "global_config": {
        "comment": "Use comment to detail your test if necessary",
        "test_sequence": [
          { "duration": 10, "target": "DDR" },
          { "duration": 10, "target": "HBM" }
        ]
      }
    },
    "power": {
      "comment": "Use comment to detail your test if necessary",
      "global_config": {
        "test_sequence": [
          { "duration":  60, "toggle_rate": 15 },
          { "duration": 120, "toggle_rate": 50 }
        ]
      }
    },
    "memory": {
      "DDR": {
        "comment": "Use comment to detail your test if necessary",
        "global_config": {
          "test_sequence": [
            { "duration": 60, "mode": "alternate_wr_rd" }
          ]
        }
      },
      "HBM": {
        "global_config": {
          "comment": "Use comment to detail your test if necessary",
          "test_sequence": [
            { "duration": 60, "mode": "alternate_wr_rd" }
          ]
        }
      }
    },
    "gt_mac": {
      "comment": "Use comment to detail your test if necessary",
      "0": {
        "global_config": {
          "test_sequence": [
            { "duration":  1, "mode": "conf_10gbe_no_fec" },
            { "duration":  1, "mode": "clear_status"       },
            { "duration": 10, "mode": "run"                },
            { "duration":  1, "mode": "check_status"       }
          ]
        }
      },
      "1": {
        "global_config": {
          "test_sequence": [
            { "duration":  1, "mode": "conf_25gbe_c74_fec"  },
            { "duration":  1, "mode": "clear_status"        },
            { "duration": 10, "mode": "run"                 },
            { "duration":  1, "mode": "check_status"        }
          ]
        }
      }
    },
    "gtm_prbs": {
      "default": {
        "global_config": {
          "test_sequence": [
            { "duration": 1,  "mode": "conf_gt" },
            { "duration": 1,  "mode": "tx_rx_rst" },
            { "duration": 1,  "mode": "rx_datapath_rst" },
            { "duration": 1,  "mode": "clear_status" },
            { "duration": 60, "mode": "run" },
            { "duration": 1,  "mode": "check_status" }
          ]
        }
      }
    }
  }
}