File: array_subkey_collision.cf

package info (click to toggle)
cfengine3 3.24.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 37,552 kB
  • sloc: ansic: 163,161; sh: 10,296; python: 2,950; makefile: 1,744; lex: 784; yacc: 633; perl: 211; pascal: 157; xml: 21; sed: 13
file content (47 lines) | stat: -rw-r--r-- 1,300 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
body common control
{
      inputs => { "../../default.cf.sub" };
      bundlesequence  => { default("$(this.promise_filename)") };
      version => "1.0";
}

bundle agent test
{
  meta:
      "description" -> { "CFE-2536" }
      string => "Converting arrays with colliding definitions for subkeys should work, somehow.";

  vars:
      "array[key1][subkey1]" string => "hey";
      "array[key1]"          string => "hou";

      "array_values"     slist  => getvalues("array");
      "array_values_str" string => format("%S", array_values);

      "array_data"     data   => mergedata(array);
      "array_data_str" string => format("%S", array_data);
}

bundle agent check
{
  classes:
      # the "more structured structure" should win when converting to JSON
      "get_values_ok" expression => strcmp("$(test.array_values_str)", '{ "hey" }');
      "array_data_ok" expression => strcmp("$(test.array_data_str)", '{"key1":{"subkey1":"hey"}}');

      "ok" and => { "get_values_ok", "array_data_ok" };

  reports:
    "DEBUG"::
      "array_values_str: $(test.array_values_str)"
        if => "!get_values_ok";

      "array_data_str: $(test.array_data_str)"
        if => "!array_data_ok";

    "ok"::
      "$(this.promise_filename) Pass";

    "!ok"::
      "$(this.promise_filename) FAIL";
}