mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
Update bindings to include newer APIs (#250)
- c, cpp - csharp - ffi - go - Java - Python - WASM `arc` feature is turned on for all bindings Use pretty string instead of colored string. Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
committed by
GitHub
parent
33fe9d5039
commit
d09c445add
@@ -26,7 +26,7 @@ corrosion_import_crate(
|
||||
FEATURES "regorus/semver"
|
||||
|
||||
# Link statically
|
||||
CRATE_TYPES "staticlib")
|
||||
CRATE_TYPES "cdylib")
|
||||
|
||||
add_executable(regorus_test main.cpp)
|
||||
# Add path to <regorus-source-folder>/bindings/ffi
|
||||
|
||||
@@ -6,6 +6,8 @@ void example()
|
||||
// Create engine
|
||||
regorus::Engine engine;
|
||||
|
||||
engine.set_enable_coverage(true);
|
||||
|
||||
// Add policies.
|
||||
engine.add_policy("objects.rego",R"(package objects
|
||||
|
||||
@@ -67,6 +69,14 @@ f := e["dev"])");
|
||||
} else {
|
||||
std::cerr<<result.error()<<std::endl;
|
||||
}
|
||||
|
||||
// Print coverage report
|
||||
auto result1 = engine.get_coverage_report_pretty();
|
||||
if (result1) {
|
||||
std::cout<<result1.output()<<std::endl;
|
||||
} else {
|
||||
std::cerr<<result1.error()<<std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
@@ -89,7 +99,7 @@ int main() {
|
||||
std::cerr<<result.error()<<std::endl;
|
||||
return -1;
|
||||
}
|
||||
std::cout<<"Loaded policy "<<result.output()<< std::endl;
|
||||
std::cout<<"Loaded package "<<result.output()<< std::endl;
|
||||
}
|
||||
{
|
||||
auto result = engine.add_data_from_json_file("../../../tests/aci/data.json");
|
||||
@@ -99,7 +109,7 @@ int main() {
|
||||
}
|
||||
}
|
||||
|
||||
// Set input and eval query.
|
||||
// Set input and eval rule.
|
||||
{
|
||||
auto result = engine.set_input_from_json_file("../../../tests/aci/input.json");
|
||||
if (!result) {
|
||||
@@ -107,13 +117,13 @@ int main() {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
auto result = engine.eval_query("data.framework.mount_overlay = x");
|
||||
auto result = engine.eval_rule("data.framework.mount_overlay");
|
||||
if (!result) {
|
||||
std::cerr<<result.error()<<std::endl;
|
||||
return -1;
|
||||
}
|
||||
|
||||
std::cout<<result.output()<<std::endl;
|
||||
|
||||
|
||||
example();
|
||||
}
|
||||
|
||||
@@ -83,6 +83,26 @@ namespace regorus {
|
||||
return Result(regorus_engine_eval_query(engine, query));
|
||||
}
|
||||
|
||||
Result eval_rule(const char* rule) {
|
||||
return Result(regorus_engine_eval_rule(engine, rule));
|
||||
}
|
||||
|
||||
Result set_enable_coverage(bool enable) {
|
||||
return Result(regorus_engine_set_enable_coverage(engine, enable));
|
||||
}
|
||||
|
||||
Result clear_coverage_data() {
|
||||
return Result(regorus_engine_clear_coverage_data(engine));
|
||||
}
|
||||
|
||||
Result get_coverage_report() {
|
||||
return Result(regorus_engine_get_coverage_report(engine));
|
||||
}
|
||||
|
||||
Result get_coverage_report_pretty() {
|
||||
return Result(regorus_engine_get_coverage_report_pretty(engine));
|
||||
}
|
||||
|
||||
~Engine() {
|
||||
regorus_engine_drop(engine);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user