@@ -200,3 +200,94 @@ bundle agent test(a)
200200 "$(a)";
201201}
202202@endif
203+ bundle agent test_macro_call_param
204+ {
205+ classes:
206+ "a" -> { "CFE-3927" }
207+ and => {
208+ # The variable must be defined
209+ isvariable("default:def.control_agent_environment_vars"),
210+ # The length of the variable must be greater than 0 (can't be an empty list)
211+ isgreaterthan(length("default:def.control_agent_environment_vars"), 0),
212+ # Each element of the list must be of the form KEY=VALUE
213+ every(".+=.+", "default:def.control_agent_environment_vars"),
214+ # In 3.18 and greater we can validate the type of variable in use
215+ @if minimum_version(3.18.0)
216+ regcmp(
217+ "(policy slist|data array)",
218+ type("default:def.control_agent_environment_vars", "true")
219+ ),
220+ @endif
221+ };
222+
223+ "b" -> { "CFE-3927" }
224+ and => {
225+ # The variable must be defined
226+ isvariable("default:def.control_agent_environment_vars"),
227+ isgreaterthan(length("default:def.control_agent_environment_vars"), 0),
228+ @if minimum_version(3.18.0)
229+ regcmp(
230+ "(policy slist|data array)",
231+ type("default:def.control_agent_environment_vars", "true")
232+ ),
233+ @endif
234+ every(".+=.+", "default:def.control_agent_environment_vars"),
235+ };
236+
237+ "c" -> { "CFE-3927" }
238+ and => {
239+ # The variable must be defined
240+ isvariable("default:def.control_agent_environment_vars"),
241+ isgreaterthan(length("default:def.control_agent_environment_vars"), 0),
242+ @if minimum_version(3.18.0)
243+ regcmp(
244+ "(policy slist|data array)",
245+ type("default:def.control_agent_environment_vars", "true")
246+ ),
247+ every(".+=.+", "default:def.control_agent_environment_vars"),
248+ @endif
249+ };
250+
251+ "d" -> { "CFE-3927" }
252+ and => {
253+ @if minimum_version(3.18.0)
254+ every(".+=.+", "default:def.control_agent_environment_vars"),
255+ @endif
256+ isvariable("default:def.control_agent_environment_vars"),
257+ isgreaterthan(length("default:def.control_agent_environment_vars"), 0),
258+ regcmp(
259+ "(policy slist|data array)",
260+ type("default:def.control_agent_environment_vars", "true")
261+ ),
262+ };
263+
264+ "e" -> { "CFE-3927" }
265+ and => {
266+ @if minimum_version(3.18.0)
267+ "a",
268+ @endif
269+ "b",
270+ "c",
271+ "d",
272+ isgreaterthan(length("default:def.control_agent_environment_vars"), 0),
273+ regcmp(
274+ "(policy slist|data array)",
275+ type("default:def.control_agent_environment_vars", "true")
276+ ),
277+ };
278+
279+ "f" -> { "CFE-3927" }
280+ and => {
281+ isgreaterthan(length("default:def.control_agent_environment_vars"), 0),
282+ regcmp(
283+ "(policy slist|data array)",
284+ type("default:def.control_agent_environment_vars", "true")
285+ ),
286+ "a",
287+ "b",
288+ "c",
289+ @if minimum_version(3.18.0)
290+ "d",
291+ @endif
292+ };
293+ }
0 commit comments