vyre-conform 0.1.0

Conformance suite for vyre backends — proves byte-identical output to CPU reference
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use crate::spec::types::ParityFailure;
use std::fs;
use std::io::{self, Write};
use std::path::PathBuf;
use std::sync::atomic::{AtomicU64, Ordering};
use std::time::{SystemTime, UNIX_EPOCH};
#[cfg(loom)]
use loom::sync::Mutex as LoomMutex;
use super::hex::*;

fn serialize_failure(failure: &ParityFailure) -> io::Result<Vec<u8>> {
    serde_json::to_vec_pretty(failure).map_err(|err| {
        io::Error::new(
            io::ErrorKind::InvalidData,
            format!("could not serialize regression failure: {err}. Fix: persist JSON-compatible ParityFailure fields."),
        )
    })
}