difftreelog
test std-param-names should work with exp-preserve-order
in: master
4 files changed
crates/jrsonnet-evaluator/src/val.rsdiffbeforeafterboth--- a/crates/jrsonnet-evaluator/src/val.rs
+++ b/crates/jrsonnet-evaluator/src/val.rs
@@ -616,6 +616,11 @@
Self::Obj(value)
}
}
+impl From<bool> for Val {
+ fn from(value: bool) -> Self {
+ Self::Bool(value)
+ }
+}
const fn is_function_like(val: &Val) -> bool {
matches!(val, Val::Func(_))
tests/Cargo.tomldiffbeforeafterboth1[package]2name = "tests"3version = "0.1.0"4edition = "2024"5publish = false67[features]8default = ["ir-parser"]9ir-parser = ["jrsonnet-evaluator/ir-parser"]10peg-parser = ["jrsonnet-evaluator/peg-parser"]11exp-destruct = ["jrsonnet-evaluator/exp-destruct"]12exp-null-coaelse = ["jrsonnet-evaluator/exp-null-coaelse"]1314[lints]15workspace = true1617[dependencies]18jrsonnet-evaluator.workspace = true19jrsonnet-gcmodule.workspace = true20jrsonnet-stdlib.workspace = true21mimallocator.workspace = true22serde.workspace = true23serde_json.workspace = true2425[dev-dependencies]26insta.workspace = true27criterion.workspace = true2829[lib]30bench = false3132[[bench]]33name = "cpp_test_suite"34harness = false1[package]2name = "tests"3version = "0.1.0"4edition = "2024"5publish = false67[features]8default = ["ir-parser"]9experimental = ["exp-destruct", "exp-null-coaelse", "exp-preserve-order"]10ir-parser = ["jrsonnet-evaluator/ir-parser"]11peg-parser = ["jrsonnet-evaluator/peg-parser"]12exp-destruct = ["jrsonnet-evaluator/exp-destruct"]13exp-null-coaelse = ["jrsonnet-evaluator/exp-null-coaelse"]14exp-preserve-order = ["jrsonnet-stdlib/exp-preserve-order"]1516[lints]17workspace = true1819[dependencies]20jrsonnet-evaluator.workspace = true21jrsonnet-gcmodule.workspace = true22jrsonnet-stdlib.workspace = true23mimallocator.workspace = true24serde.workspace = true25serde_json.workspace = true2627[dev-dependencies]28insta.workspace = true29criterion.workspace = true3031[lib]32bench = false3334[[bench]]35name = "cpp_test_suite"36harness = falsetests/suite/std_param_names.jsonnetdiffbeforeafterboth--- a/tests/suite/std_param_names.jsonnet
+++ b/tests/suite/std_param_names.jsonnet
@@ -170,7 +170,26 @@
deg2rad: ['x'],
rad2deg: ['x'],
hypot: ['x', 'y'],
-};
+} + (if test.expPreserveOrder then {
+ manifestIni+: ['preserve_order'],
+ manifestJson+: ['preserve_order'],
+ manifestJsonEx+: ['preserve_order'],
+ manifestJsonMinified+: ['preserve_order'],
+ manifestPython+: ['preserve_order'],
+ manifestPythonVars+: ['preserve_order'],
+ manifestToml+: ['preserve_order'],
+ manifestTomlEx+: ['preserve_order'],
+ manifestYamlDoc+: ['preserve_order'],
+ manifestYamlStream+: ['preserve_order'],
+ objectFields+: ['preserve_order'],
+ objectFieldsAll+: ['preserve_order'],
+ objectFieldsEx+: ['preserve_order'],
+ objectKeysValues+: ['preserve_order'],
+ objectKeysValuesAll+: ['preserve_order'],
+ objectValues+: ['preserve_order'],
+ objectValuesAll+: ['preserve_order'],
+ prune+: ['preserve_order'],
+} else {});
std.all(std.map(function(key) assertNames(key, names[key]), std.objectFields(names)))
&& std.all([
tests/tests/common.rsdiffbeforeafterboth--- a/tests/tests/common.rs
+++ b/tests/tests/common.rs
@@ -71,6 +71,8 @@
let mut bobj = ObjValueBuilder::new();
bobj.method("assertThrow", assert_throw {});
bobj.method("paramNames", param_names {});
+ bobj.field("expPreserveOrder")
+ .value(cfg!(feature = "exp-preserve-order"));
builder.bind("test", Thunk::evaluated(Val::Obj(bobj.build())));
}