Skip to content

Commit b609c17

Browse files
feat: support implementation-status in test props.
1 parent ec3963a commit b609c17

2 files changed

Lines changed: 48 additions & 1 deletion

File tree

moz-webgpu-cts/src/main.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -960,6 +960,7 @@ fn run(cli: Cli) -> ExitCode {
960960
let TestProps {
961961
is_disabled,
962962
expected,
963+
implementation_status: _,
963964
} = properties;
964965

965966
let test_name = Arc::new(test_name);
@@ -1074,6 +1075,7 @@ fn run(cli: Cli) -> ExitCode {
10741075
let TestProps {
10751076
is_disabled,
10761077
expected,
1078+
implementation_status: _,
10771079
} = properties;
10781080

10791081
if is_disabled {

moz-webgpu-cts/src/metadata.rs

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,7 @@ where
746746
let TestProps {
747747
is_disabled,
748748
expected,
749+
implementation_status,
749750
} = property;
750751

751752
if *is_disabled {
@@ -826,6 +827,15 @@ where
826827
Ok(())
827828
}
828829

830+
if let Some(implementation_status) = implementation_status {
831+
write_normalized(
832+
f,
833+
&indent,
834+
ImplementationStatus::IDENT,
835+
implementation_status,
836+
)?;
837+
}
838+
829839
if let Some(exps) = expected {
830840
write_normalized(f, &indent, EXPECTED_IDENT, exps)?;
831841
}
@@ -854,6 +864,7 @@ where
854864
{
855865
pub is_disabled: bool,
856866
pub expected: Option<ExpandedPropertyValue<Expected<Out>>>,
867+
pub implementation_status: Option<ExpandedPropertyValue<ImplementationStatus>>,
857868
}
858869

859870
impl<'a, Out> TestProps<Out>
@@ -864,6 +875,7 @@ where
864875
let Self {
865876
is_disabled,
866877
expected,
878+
implementation_status,
867879
} = self;
868880

869881
let TestProp { kind, span } = prop;
@@ -935,6 +947,13 @@ where
935947
}
936948
*is_disabled = true;
937949
}
950+
TestPropKind::ImplementationStatus(val) => conditional(
951+
emitter,
952+
span,
953+
ImplementationStatus::IDENT,
954+
implementation_status,
955+
val,
956+
),
938957
}
939958
}
940959
}
@@ -961,6 +980,7 @@ where
961980
{
962981
Expected(PropertyValue<Applicability, Expected<Out>>),
963982
Disabled,
983+
ImplementationStatus(PropertyValue<Applicability, ImplementationStatus>),
964984
}
965985

966986
impl<Out> TestProp<Out>
@@ -1117,7 +1137,7 @@ where
11171137
helper
11181138
.parser(
11191139
just(DISABLED_IDENT).to(()),
1120-
conditional_term,
1140+
conditional_term.clone(),
11211141
just("true").to(()),
11221142
)
11231143
.validate(|((), val), e, emitter| {
@@ -1135,6 +1155,16 @@ where
11351155
kind: TestPropKind::Disabled,
11361156
}
11371157
}),
1158+
helper
1159+
.parser(
1160+
ImplementationStatus::property_ident_parser(),
1161+
conditional_term,
1162+
ImplementationStatus::property_value_parser(),
1163+
)
1164+
.map_with(|((), val), e| TestProp {
1165+
span: e.span(),
1166+
kind: TestPropKind::ImplementationStatus(val),
1167+
}),
11381168
))
11391169
}
11401170
}
@@ -1292,6 +1322,7 @@ r#"
12921322
properties: TestProps {
12931323
is_disabled: false,
12941324
expected: None,
1325+
implementation_status: None,
12951326
},
12961327
subtests: {},
12971328
},
@@ -1325,12 +1356,14 @@ r#"
13251356
properties: TestProps {
13261357
is_disabled: false,
13271358
expected: None,
1359+
implementation_status: None,
13281360
},
13291361
subtests: {
13301362
"blarg": Subtest {
13311363
properties: TestProps {
13321364
is_disabled: false,
13331365
expected: None,
1366+
implementation_status: None,
13341367
},
13351368
},
13361369
},
@@ -1366,6 +1399,7 @@ r#"
13661399
properties: TestProps {
13671400
is_disabled: false,
13681401
expected: None,
1402+
implementation_status: None,
13691403
},
13701404
subtests: {
13711405
"blarg": Subtest {
@@ -1401,6 +1435,7 @@ r#"
14011435
},
14021436
),
14031437
),
1438+
implementation_status: None,
14041439
},
14051440
},
14061441
},
@@ -1450,6 +1485,7 @@ r#"
14501485
properties: TestProps {
14511486
is_disabled: false,
14521487
expected: None,
1488+
implementation_status: None,
14531489
},
14541490
subtests: {
14551491
"blarg": Subtest {
@@ -1491,6 +1527,7 @@ r#"
14911527
},
14921528
),
14931529
),
1530+
implementation_status: None,
14941531
},
14951532
},
14961533
},
@@ -1549,6 +1586,7 @@ r#"
15491586
},
15501587
),
15511588
),
1589+
implementation_status: None,
15521590
},
15531591
subtests: {
15541592
"blarg": Subtest {
@@ -1584,6 +1622,7 @@ r#"
15841622
},
15851623
),
15861624
),
1625+
implementation_status: None,
15871626
},
15881627
},
15891628
},
@@ -1613,6 +1652,7 @@ r#"
16131652
properties: TestProps {
16141653
is_disabled: false,
16151654
expected: None,
1655+
implementation_status: None,
16161656
},
16171657
subtests: {
16181658
"blarg": Subtest {
@@ -1648,6 +1688,7 @@ r#"
16481688
},
16491689
),
16501690
),
1691+
implementation_status: None,
16511692
},
16521693
},
16531694
},
@@ -1678,6 +1719,7 @@ r#"
16781719
properties: TestProps {
16791720
is_disabled: false,
16801721
expected: None,
1722+
implementation_status: None,
16811723
},
16821724
subtests: {
16831725
"blarg": Subtest {
@@ -1713,6 +1755,7 @@ r#"
17131755
},
17141756
),
17151757
),
1758+
implementation_status: None,
17161759
},
17171760
},
17181761
},
@@ -1741,6 +1784,7 @@ r#"
17411784
properties: TestProps {
17421785
is_disabled: false,
17431786
expected: None,
1787+
implementation_status: None,
17441788
},
17451789
subtests: {
17461790
":": Subtest {
@@ -1776,6 +1820,7 @@ r#"
17761820
},
17771821
),
17781822
),
1823+
implementation_status: None,
17791824
},
17801825
},
17811826
},

0 commit comments

Comments
 (0)