mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
- Disable default features in dependencies - Use anyhow::Error::msg to map errors. Note: anyhow will itself be removed later. - lazy_static/spin_no_std used in no_std environments - ensure_no_std binary is built to target thumbv7m-none-eabi to ensure that there are no std dependencies. thumbv7m-none-eabi target has no std support. - The opa-no-std feature enables only those Regorus features that work with no_std. - Enable tests with no_std - Update sizes of regorus binary in README.md - Ensure that regorus example can be built with only std - Ensure that regorus example can be built with no_std Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
37 lines
858 B
Rust
37 lines
858 B
Rust
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT License.
|
|
|
|
#![allow(unused)]
|
|
use lazy_static::lazy_static;
|
|
use std::sync::Mutex;
|
|
|
|
use regorus::*;
|
|
|
|
#[cfg(feature = "arc")]
|
|
// Ensure that types can be s
|
|
lazy_static! {
|
|
static ref VALUE: Value = Value::Null;
|
|
static ref ENGINE: Mutex<Engine> = Mutex::new(Engine::new());
|
|
// static ref ENGINE: Engine = Engine::new();
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(feature = "arc")]
|
|
fn shared_engine() -> anyhow::Result<()> {
|
|
let e_guard = ENGINE.lock();
|
|
let mut engine = e_guard.expect("failed to lock engine");
|
|
|
|
engine.add_policy(
|
|
"hello.rego".to_string(),
|
|
r#"
|
|
package test
|
|
allow = true
|
|
"#
|
|
.to_string(),
|
|
)?;
|
|
|
|
let results = engine.eval_query("data.test.allow".to_string(), false)?;
|
|
assert_eq!(results.result[0].expressions[0].value, Value::from(true));
|
|
Ok(())
|
|
}
|