ef_tests: skipped tests and bls_setting support

This commit is contained in:
Michael Sproul
2019-06-11 18:06:15 +10:00
parent 4024a400c8
commit c649988189
5 changed files with 58 additions and 3 deletions

View File

@@ -0,0 +1,30 @@
use self::BlsSetting::*;
use crate::error::Error;
use serde_repr::Deserialize_repr;
// TODO: use this in every test case
#[derive(Deserialize_repr, Debug, Clone, Copy)]
#[repr(u8)]
pub enum BlsSetting {
Flexible = 0,
Required = 1,
Ignored = 2,
}
impl Default for BlsSetting {
fn default() -> Self {
Flexible
}
}
impl BlsSetting {
/// Check the BLS setting and skip the test if it isn't compatible with the crypto config.
pub fn check(self) -> Result<(), Error> {
match self {
Flexible => Ok(()),
Required if !cfg!(feature = "fake_crypto") => Ok(()),
Ignored if cfg!(feature = "fake_crypto") => Ok(()),
_ => Err(Error::Skipped),
}
}
}