Remove flaky test_stack_size (#7739)

This commit is contained in:
Andy Leiserson 2025-05-30 19:12:31 -07:00 committed by GitHub
parent ffd5b9aeea
commit 6ead025a95
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -7211,79 +7211,6 @@ mod workgroup_mem_init {
} }
} }
#[test]
fn test_stack_size() {
use crate::valid::{Capabilities, ValidationFlags};
// create a module with at least one expression nested
let mut module = crate::Module::default();
let mut fun = crate::Function::default();
let const_expr = fun.expressions.append(
crate::Expression::Literal(crate::Literal::F32(1.0)),
Default::default(),
);
let nested_expr = fun.expressions.append(
crate::Expression::Unary {
op: crate::UnaryOperator::Negate,
expr: const_expr,
},
Default::default(),
);
fun.body.push(
crate::Statement::Emit(fun.expressions.range_from(1)),
Default::default(),
);
fun.body.push(
crate::Statement::If {
condition: nested_expr,
accept: crate::Block::new(),
reject: crate::Block::new(),
},
Default::default(),
);
let _ = module.functions.append(fun, Default::default());
// analyse the module
let info = valid::Validator::new(ValidationFlags::empty(), Capabilities::empty())
.validate(&module)
.unwrap();
// process the module
let mut writer = Writer::new(String::new());
writer
.write(&module, &info, &Default::default(), &Default::default())
.unwrap();
{
// check expression stack
let mut addresses_start = usize::MAX;
let mut addresses_end = 0usize;
for pointer in writer.put_expression_stack_pointers {
addresses_start = addresses_start.min(pointer as usize);
addresses_end = addresses_end.max(pointer as usize);
}
let stack_size = addresses_end - addresses_start;
// check the size (in debug only)
// last observed macOS value: 25904 (CI), 2025-04-29
if !(11000..=27000).contains(&stack_size) {
panic!("`put_expression` stack size {stack_size} has changed!");
}
}
{
// check block stack
let mut addresses_start = usize::MAX;
let mut addresses_end = 0usize;
for pointer in writer.put_block_stack_pointers {
addresses_start = addresses_start.min(pointer as usize);
addresses_end = addresses_end.max(pointer as usize);
}
let stack_size = addresses_end - addresses_start;
// check the size (in debug only)
// last observed macOS value: 22256 (CI)
if !(15000..=25000).contains(&stack_size) {
panic!("`put_block` stack size {stack_size} has changed!");
}
}
}
impl crate::AtomicFunction { impl crate::AtomicFunction {
const fn to_msl(self) -> &'static str { const fn to_msl(self) -> &'static str {
match self { match self {