cranelift_filetests/
test_print_cfg.rs1use std::borrow::Cow;
7
8use crate::subtest::{self, Context, SubTest};
9use cranelift_codegen::cfg_printer::CFGPrinter;
10use cranelift_codegen::ir::Function;
11use cranelift_reader::TestCommand;
12
13struct TestPrintCfg;
15
16pub fn subtest(parsed: &TestCommand) -> anyhow::Result<Box<dyn SubTest>> {
17 assert_eq!(parsed.command, "print-cfg");
18 if !parsed.options.is_empty() {
19 anyhow::bail!("No options allowed on {}", parsed);
20 }
21 Ok(Box::new(TestPrintCfg))
22}
23
24impl SubTest for TestPrintCfg {
25 fn name(&self) -> &'static str {
26 "print-cfg"
27 }
28
29 fn needs_verifier(&self) -> bool {
30 false
31 }
32
33 fn run(&self, func: Cow<Function>, context: &Context) -> anyhow::Result<()> {
34 subtest::run_filecheck(&CFGPrinter::new(&func).to_string(), context)
35 }
36}