tracing::trace builtin

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
Anand Krishnamoorthi
2023-03-04 05:27:31 -08:00
committed by Anand Krishnamoorthi
parent 81f6199642
commit 112623c762
8 changed files with 77 additions and 11 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ fn basic() -> Result<()> {
)?;
assert_eq!(
eval_file(&[rego.to_owned()], None, None, "data.test")?,
eval_file(&[rego.to_owned()], None, None, "data.test", false)?,
expected
);
Ok(())
+2 -2
View File
@@ -47,7 +47,7 @@ fn basic_array() -> Result<()> {
)?;
assert_match(
eval_file(&[rego.to_owned()], None, None, "data.test")?,
eval_file(&[rego.to_owned()], None, None, "data.test", false)?,
expected,
);
Ok(())
@@ -116,7 +116,7 @@ fn basic_set() -> Result<()> {
)?;
assert_match(
eval_file(&[rego.to_owned()], None, None, "data.test")?,
eval_file(&[rego.to_owned()], None, None, "data.test", false)?,
expected,
);
Ok(())
+1 -1
View File
@@ -120,7 +120,7 @@ fn basic() -> Result<()> {
)?;
assert_match(
eval_file(&[rego.to_owned()], None, None, "data.test")?,
eval_file(&[rego.to_owned()], None, None, "data.test", false)?,
expected,
);
Ok(())
+1 -1
View File
@@ -47,7 +47,7 @@ fn basic() -> Result<()> {
)?;
assert_match(
eval_file(&[rego.to_owned()], None, None, "data.test")?,
eval_file(&[rego.to_owned()], None, None, "data.test", false)?,
expected,
);
Ok(())
+7 -3
View File
@@ -170,6 +170,7 @@ pub fn eval_file(
data: Option<Value>,
input: Option<Value>,
query: &str,
enable_tracing: bool,
) -> Result<Value> {
let mut files = vec![];
let mut sources = vec![];
@@ -199,7 +200,7 @@ pub fn eval_file(
// First eval the modules.
let mut interpreter = interpreter::Interpreter::new(modules_ref)?;
interpreter.eval(&data, &input)?;
interpreter.eval(&data, &input, enable_tracing)?;
// Now eval the query.
let source = Source {
@@ -209,7 +210,7 @@ pub fn eval_file(
};
let mut parser = Parser::new(&source)?;
let expr = parser.parse_membership_expr()?;
interpreter.eval_query_snippet(&expr)
interpreter.eval_query_snippet(&expr, enable_tracing)
}
#[test]
@@ -243,7 +244,7 @@ fn one_file() -> Result<()> {
let mut parser = Parser::new(&source)?;
let tree = parser.parse()?;
let mut interpreter = interpreter::Interpreter::new(vec![&tree])?;
let results = interpreter.eval(&None, &input)?;
let results = interpreter.eval(&None, &input, true)?;
println!("eval results:\n{}", serde_json::to_string_pretty(&results)?);
Ok(())
}
@@ -259,6 +260,7 @@ struct TestCase {
want_result: Option<Value>,
skip: Option<bool>,
error: Option<String>,
traces: Option<bool>,
}
#[derive(Serialize, Deserialize, PartialEq, Debug)]
@@ -283,12 +285,14 @@ fn yaml_test_impl(file: &str) -> Result<()> {
_ => panic!("either want_result or error must be specified in test case."),
}
let enable_tracing = case.traces.is_some() && case.traces.unwrap();
// First eval the modules.
match eval_file(
&case.modules,
Some(case.data),
case.input,
case.query.as_str(),
enable_tracing,
) {
Ok(results) => match case.want_result {
Some(want_result) => assert_match(results, want_result),