38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
//! 固定 payload 指纹来自本基准的公开记录合同;不把生成函数作为 Rust 参考实现。
|
|
|
|
use dever::compiler::model::Program;
|
|
use sha2::{Digest, Sha256};
|
|
use std::path::Path;
|
|
|
|
pub fn run(core: &Path) {
|
|
crate::compare(
|
|
core,
|
|
"job-performance",
|
|
"jobs",
|
|
&[
|
|
include_str!("../auth/shared.rs"),
|
|
include_str!("reference.rs"),
|
|
include_str!("measure.rs"),
|
|
include_str!("checks.rs"),
|
|
]
|
|
.concat(),
|
|
&[("GENERATED_SUBMIT", "bench.queue.app.submit")],
|
|
&[],
|
|
);
|
|
}
|
|
|
|
pub fn metadata(program: &Program, reference: &str) -> String {
|
|
assert_eq!(program.jobs.len(), 1);
|
|
assert_eq!(program.models.len(), 1);
|
|
assert!(!program.has_roles());
|
|
assert_eq!(program.jobs[0].name, "bench.queue.job.publish");
|
|
let schema = format!(
|
|
"{:x}",
|
|
Sha256::digest(b"bench.queue.Payload{name:Text,amount:Int}")
|
|
);
|
|
reference
|
|
.replace("JOB_BINDING", &program.models.len().to_string())
|
|
.replace("RESULT_MODEL", &program.models[0].definition.to_string())
|
|
.replace("JOB_SCHEMA", &format!("{schema:?}"))
|
|
}
|