Skip to content

Query Language

Basics

Query has two optional parts: [matching] ... [grouping] ....
Matching part filters based on equality/inequality.
Grouping part groups matching results.

Examples:

  • status = "pass"
  • status = "fail" AND #"feature-x" = "on"
  • status = "skip" group_by(session_id)
  • group_by(#"build_variant")

Supported identifiers

Identifier Description
id Testcase ID
name Testcase name
session_id Session ID
status Testcase status
#"<label>" Label

Grammar

query            = matching_part? grouping_part?

matching_part    = condition ( logical_op condition )*

logical_op       = "and" | "or"

condition        = ident comparator value

ident            = "id"
                 | "name"
                 | "session_id"
                 | "status"
                 | "#" quoted_label

comparator       = "=" | "!="

value            = quoted_string
                 | status_literal

status_literal   = "pass" | "fail" | "skip" | "error"

quoted_label     = "\"" non_empty_string "\""
quoted_string    = "\"" non_empty_string "\""

grouping_part    = "group_by(" grouping_ident_list ")"

grouping_ident_list = grouping_ident ( "," grouping_ident )*

grouping_ident   = "session_id"
                 | "#" quoted_label