from flake_suppressor_common import queries as queries_module
SUBMITTED_BUILDS_SUBQUERY = f"""\
submitted_builds AS ({queries_module.SUBMITTED_BUILDS_TEMPLATE}
),"""
CI_FAILED_TEST_QUERY = """\
WITH
failed_tests AS (
SELECT
exported.id,
test_metadata.name,
ARRAY(
SELECT value
FROM tr.tags
WHERE key = "typ_tag") as typ_tags,
ARRAY(
SELECT value
FROM tr.tags
WHERE key = "raw_typ_expectation") as typ_expectations
FROM
`chrome-luci-data.chromium.gpu_ci_test_results` tr
WHERE
status = "FAIL"
AND exported.realm = "chromium:ci"
AND partition_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(),
INTERVAL @sample_period DAY)
)
SELECT *
FROM failed_tests ft
WHERE
ARRAY_TO_STRING(ft.typ_expectations, '') = "Pass"
"""
TRY_FAILED_TEST_QUERY = f"""\
WITH
{SUBMITTED_BUILDS_SUBQUERY}
failed_tests AS (
SELECT
exported.id,
test_metadata.name,
ARRAY(
SELECT value
FROM tr.tags
WHERE key = "typ_tag") as typ_tags,
ARRAY(
SELECT value
FROM tr.tags
WHERE key = "raw_typ_expectation") as typ_expectations
FROM
`chrome-luci-data.chromium.gpu_try_test_results` tr,
submitted_builds sb
WHERE
status = "FAIL"
AND exported.realm = "chromium:try"
AND partition_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(),
INTERVAL @sample_period DAY)
AND exported.id = sb.id
)
SELECT *
FROM failed_tests ft
WHERE
ARRAY_TO_STRING(ft.typ_expectations, '') = "Pass"
"""
CI_RESULT_COUNT_QUERY = """\
WITH
grouped_results AS (
SELECT
exported.id as id,
test_metadata.name as name,
ARRAY(
SELECT value
FROM tr.tags
WHERE key = "typ_tag") as typ_tags
FROM
`chrome-luci-data.chromium.gpu_ci_test_results` tr
WHERE
exported.realm = "chromium:ci"
AND partition_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(),
INTERVAL @sample_period DAY)
)
SELECT
COUNT(gr.id) as result_count,
ANY_VALUE(gr.name) as test_name,
ANY_VALUE(gr.typ_tags) as typ_tags
FROM grouped_results gr
GROUP BY gr.name, ARRAY_TO_STRING(gr.typ_tags, '')
"""
TRY_RESULT_COUNT_QUERY = f"""\
WITH
{SUBMITTED_BUILDS_SUBQUERY}
grouped_results AS (
SELECT
exported.id as id,
test_metadata.name as name,
ARRAY(
SELECT value
FROM tr.tags
WHERE key = "typ_tag") as typ_tags
FROM
`chrome-luci-data.chromium.gpu_try_test_results` tr,
submitted_builds sb
WHERE
exported.realm = "chromium:try"
AND partition_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(),
INTERVAL @sample_period DAY)
AND exported.id = sb.id
)
SELECT
COUNT(gr.id) as result_count,
ANY_VALUE(gr.name) as test_name,
ANY_VALUE(gr.typ_tags) as typ_tags
FROM grouped_results gr
GROUP BY gr.name, ARRAY_TO_STRING(gr.typ_tags, '')
"""
class GpuBigQueryQuerier(queries_module.BigQueryQuerier):
def GetFlakyOrFailingCiQuery(self) -> str:
return CI_FAILED_TEST_QUERY
def GetFlakyOrFailingTryQuery(self) -> str:
return TRY_FAILED_TEST_QUERY
def GetResultCountCIQuery(self) -> str:
return CI_RESULT_COUNT_QUERY
def GetResultCountTryQuery(self) -> str:
return TRY_RESULT_COUNT_QUERY
def GetFailingBuildCulpritFromCiQuery(self) -> str:
raise NotImplementedError