Fix test_framework tests trying to implement function on foreign type.
This commit is contained in:
parent
c21466831c
commit
79cf0b8d97
|
@ -12,6 +12,7 @@ authors = [
|
||||||
"KtorZ <matthias.benkort@gmail.com>",
|
"KtorZ <matthias.benkort@gmail.com>",
|
||||||
]
|
]
|
||||||
rust-version = "1.66.1"
|
rust-version = "1.66.1"
|
||||||
|
build = "build.rs"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
blst = "0.3.11"
|
blst = "0.3.11"
|
||||||
|
|
|
@ -274,7 +274,7 @@ impl PropertyTest {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn run_n_times<'a>(
|
pub fn run_n_times<'a>(
|
||||||
&'a self,
|
&'a self,
|
||||||
remaining: &mut usize,
|
remaining: &mut usize,
|
||||||
initial_prng: Prng,
|
initial_prng: Prng,
|
||||||
|
@ -617,7 +617,7 @@ impl<'a> Counterexample<'a> {
|
||||||
/// - Sorting chunks in ascending order
|
/// - Sorting chunks in ascending order
|
||||||
/// - Swapping nearby pairs
|
/// - Swapping nearby pairs
|
||||||
/// - Redistributing values between nearby pairs
|
/// - Redistributing values between nearby pairs
|
||||||
fn simplify(&mut self) {
|
pub fn simplify(&mut self) {
|
||||||
let mut prev;
|
let mut prev;
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
|
|
|
@ -5,22 +5,28 @@ mod test {
|
||||||
utils,
|
utils,
|
||||||
};
|
};
|
||||||
use aiken_lang::{
|
use aiken_lang::{
|
||||||
ast::{Definition, ModuleKind, TraceLevel, Tracing},
|
ast::{DataTypeKey, Definition, ModuleKind, TraceLevel, Tracing, TypedDataType},
|
||||||
builtins,
|
builtins,
|
||||||
|
expr::UntypedExpr,
|
||||||
format::Formatter,
|
format::Formatter,
|
||||||
|
gen_uplc::CodeGenerator,
|
||||||
line_numbers::LineNumbers,
|
line_numbers::LineNumbers,
|
||||||
parser::{self, extra::ModuleExtra},
|
parser::{self, extra::ModuleExtra},
|
||||||
plutus_version::PlutusVersion,
|
plutus_version::PlutusVersion,
|
||||||
test_framework::*,
|
test_framework::*,
|
||||||
IdGenerator,
|
IdGenerator,
|
||||||
};
|
};
|
||||||
|
use indexmap::IndexMap;
|
||||||
use indoc::indoc;
|
use indoc::indoc;
|
||||||
use std::collections::HashMap;
|
use std::{
|
||||||
|
collections::{BTreeMap, HashMap},
|
||||||
|
path::PathBuf,
|
||||||
|
};
|
||||||
|
use uplc::PlutusData;
|
||||||
|
|
||||||
const TEST_KIND: ModuleKind = ModuleKind::Lib;
|
const TEST_KIND: ModuleKind = ModuleKind::Lib;
|
||||||
|
|
||||||
impl Test {
|
pub fn test_from_source(src: &str) -> (Test, IndexMap<DataTypeKey, TypedDataType>) {
|
||||||
pub fn from_source(src: &str) -> (Self, IndexMap<DataTypeKey, TypedDataType>) {
|
|
||||||
let id_gen = IdGenerator::new();
|
let id_gen = IdGenerator::new();
|
||||||
|
|
||||||
let module_name = "";
|
let module_name = "";
|
||||||
|
@ -88,7 +94,7 @@ mod test {
|
||||||
);
|
);
|
||||||
|
|
||||||
(
|
(
|
||||||
Self::from_function_definition(
|
Test::from_function_definition(
|
||||||
&mut generator,
|
&mut generator,
|
||||||
test.to_owned(),
|
test.to_owned(),
|
||||||
module_name.to_string(),
|
module_name.to_string(),
|
||||||
|
@ -97,7 +103,6 @@ mod test {
|
||||||
data_types,
|
data_types,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fn property(src: &str) -> (PropertyTest, impl Fn(PlutusData) -> String) {
|
fn property(src: &str) -> (PropertyTest, impl Fn(PlutusData) -> String) {
|
||||||
let prelude = indoc! { r#"
|
let prelude = indoc! { r#"
|
||||||
|
@ -191,7 +196,7 @@ mod test {
|
||||||
|
|
||||||
let src = format!("{prelude}\n{src}");
|
let src = format!("{prelude}\n{src}");
|
||||||
|
|
||||||
match Test::from_source(&src) {
|
match test_from_source(&src) {
|
||||||
(Test::PropertyTest(test), data_types) => {
|
(Test::PropertyTest(test), data_types) => {
|
||||||
let type_info = test.fuzzer.type_info.clone();
|
let type_info = test.fuzzer.type_info.clone();
|
||||||
|
|
||||||
|
@ -210,11 +215,13 @@ mod test {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl PropertyTest {
|
fn expect_failure<'a>(
|
||||||
fn expect_failure<'a>(&'a self, plutus_version: &'a PlutusVersion) -> Counterexample<'a> {
|
prop: &'a PropertyTest,
|
||||||
|
plutus_version: &'a PlutusVersion,
|
||||||
|
) -> Counterexample<'a> {
|
||||||
let mut labels = BTreeMap::new();
|
let mut labels = BTreeMap::new();
|
||||||
let mut remaining = PropertyTest::DEFAULT_MAX_SUCCESS;
|
let mut remaining = PropertyTest::DEFAULT_MAX_SUCCESS;
|
||||||
match self.run_n_times(
|
match prop.run_n_times(
|
||||||
&mut remaining,
|
&mut remaining,
|
||||||
Prng::from_seed(42),
|
Prng::from_seed(42),
|
||||||
&mut labels,
|
&mut labels,
|
||||||
|
@ -224,7 +231,6 @@ mod test {
|
||||||
_ => panic!("expected property to fail but it didn't."),
|
_ => panic!("expected property to fail but it didn't."),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_prop_basic() {
|
fn test_prop_basic() {
|
||||||
|
@ -290,7 +296,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -318,7 +324,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -335,7 +341,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -363,7 +369,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -391,7 +397,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -422,7 +428,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -458,7 +464,7 @@ mod test {
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
|
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -493,7 +499,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
@ -528,7 +534,7 @@ mod test {
|
||||||
"#});
|
"#});
|
||||||
|
|
||||||
let plutus_version = PlutusVersion::default();
|
let plutus_version = PlutusVersion::default();
|
||||||
let mut counterexample = prop.expect_failure(&plutus_version);
|
let mut counterexample = expect_failure(&prop, &plutus_version);
|
||||||
|
|
||||||
counterexample.simplify();
|
counterexample.simplify();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue