test_group

A test group is the collection of test cases.

A test group must define its own name and must be associated with a lab and with a build. The association with the build object is performed through the build_id value, the lab association via the lab name value.

A test group name must start and end with an alphanumeric character, and it must match the following regular expression: [a-zA-Z0-9.-_+]+

GET

{
    "$schema": "http://api.kernelci.org/json-schema/1.0/get_test_group.json",
    "id": "http://api.kernelci.org/json-schema/1.0/get_test_group.json",
    "title": "test_group",
    "description": "A test group JSON object as returned by the API",
    "type": "object",
    "properties": {
        "version": {
            "type": "string",
            "description": "The version number of this JSON schema",
            "enum": ["1.0"]
        },
        "_id": {
            "type": "string",
            "description": "The ID associated with this test group as provided by the database"
        },
        "name": {
            "type": "string",
            "description": "The name given to this test group"
        },
        "created_on": {
            "type": "object",
            "description": "Creation date of this test group in the database",
            "properties": {
                "$date": {
                    "type": "number",
                    "description": "Milliseconds from epoch time",
                    "format": "utc-millisec"
                }
            }
        },
        "lab_name": {
            "type": "string",
            "description": "The name of the lab executing this test group"
        },
        "time": {
            "type": "number",
            "description": "The number of seconds it took to execute the entire test group",
            "default": -1
        },
        "job": {
            "type": "string",
            "description": "The name of the job (aka the git tree)"
        },
        "kernel": {
            "type": "string",
            "description": "The name of the kernel or the git describe value"
        },
        "defconfig": {
            "type": "string",
            "description": "The name of the defconfig"
        },
        "defconfig_full": {
            "type": "string",
            "description": "The full name of the defconfig, can also contain config fragments information",
            "default": "The defconfig value"
        },
        "arch": {
            "type": "string",
            "description": "The architecture type of this board",
            "enum": ["arm", "arm64", "x86"],
            "default": "arm"
        },
        "board": {
            "type": "string",
            "description": "The name of the board"
        },
        "board_instance": {
            "type": "string",
            "description": "The instance identifier of the board"
        },
        "git_branch": {
            "type": "string",
            "description": "The branch used for testing"
        },
        "job_id": {
            "type": "string",
            "description": "The ID of the job that this test group is being run on"
        },
        "build_id": {
            "type": "string",
            "description": "The ID of the build that this test group is being run on"
        },
        "boot_id": {
            "type": "string",
            "description": "The ID of the boot test that this test group is being run on"
        },
        "test_cases": {
            "type": "array",
            "description": "The list of test case IDs, or test case objects, executed by this test group",
            "items": {"$ref": "http://api.kernelci.org/json-schema/1.0/test_case_get.json"},
            "additionalItems": true
        },
        "sub_groups": {
            "type": "array",
            "description": "The list of sub-group IDs included in this group",
            "items": {"$ref": "http://api.kernelci.org/json-schema/1.0/test_group_get.json"},
            "additionalItems": true
        },
        "metadata": {
            "type": "object",
            "description": "Free form object where accessory test group data is stored"
        },
        "definition_uri": {
            "type": "string",
            "description": "The URI where this test group definition is stored"
        },
        "vcs_commit": {
            "type": "string",
            "description": "The VCS commit value if the $definitio_uri field is a VCS URI"
        }
    }
}

Notes

  • test_cases: By default, the API will provide the IDs of the test_cases objects. To expand the selection in order to include the actual objects, please refer to the test resource query arguments.

POST

{
    "$schema": "http://api.kernelci.org/json-schema/1.2/post_test_group.json",
    "id": "http://api.kernelci.org/json-schema/1.2/post_test_group.json",
    "title": "test_group",
    "description": "A test group JSON object",
    "type": "object",
    "properties": {
        "version": {
            "type": "string",
            "description": "The version number of this JSON schema",
            "enum": ["1.0", "1.2"]
        },
        "name": {
            "type": "string",
            "description": "The name given to this test group"
        },
        "lab_name": {
            "type": "string",
            "description": "The name of the lab executing this test group"
        },
        "time": {
            "type": "number",
            "description": "The number of seconds it took to execute the entire test group",
            "default": -1
        },
        "job": {
            "type": "string",
            "description": "The name of the job (aka the git tree)"
        },
        "kernel": {
            "type": "string",
            "description": "The name of the kernel or the git describe value"
        },
        "defconfig": {
            "type": "string",
            "description": "The name of the defconfig"
        },
        "defconfig_full": {
            "type": "string",
            "description": "The full name of the defconfig, can also contain config fragments information",
            "default": "The defconfig value"
        },
        "arch": {
            "type": "string",
            "description": "The architecture type of this board",
            "enum": ["arm", "arm64", "x86"],
            "default": "arm"
        },
        "board": {
            "type": "string",
            "description": "The name of the board"
        },
        "board_instance": {
            "type": "string",
            "description": "The instance identifier of the board"
        },
        "build_environment": {
            "type": "string",
            "description": "Build environment name as used in the build configuration e.g. gcc-8"
        },
        "git_branch": {
            "type": "string",
            "description": "The branch used for testing"
        },
        "metadata": {
            "type": "object",
            "description": "Free form object where to store accessory test group data"
        },
        "test_cases": {
            "type": "array",
            "description": "The list of test case objects executed by this test group",
            "items": {"$ref": "http://api.kernelci.org/json-schema/1.0/test_case_get.json"},
            "additionalItems": true
        },
        "sub_groups": {
            "type": "array",
            "description": "The list of sub-group objects included in this group",
            "items": {"$ref": "http://api.kernelci.org/json-schema/1.2/post_test_group.json.json"},
            "additionalItems": true
        },
        "definition_uri": {
            "type": "string",
            "description": "The URI where this test group definition is stored"
        },
        "vcs_commit": {
            "type": "string",
            "description": "The VCS commit value if the $definition_uri field is a VCS URI"
        },
        "log": {
            "type": "string",
            "description": "Test log content, which to be saved in a file"
        }

    },
    "required": ["arch", "build_environment", "defconfig", "git_branch", "job",
        "kernel", "name", "lab_name"]
}

Notes

  • test_cases: If not specified, the test cases executed must be registered using the appropriate API call.