# Redmine#2926: test long lines with readstringarrayidx()
body common control
{
  inputs => { "../../default.sub.cf" };
  bundlesequence => { default("$(this.promise_filename)") };
  version => "1.0";
}

bundle agent init
{
}

bundle agent test
{
  vars:
    "params"
      data => data_readstringarray(
        "$(this.promise_filename).txt", "\s*#[^\n]*", ";", 9999, 99999
      );

    "params_str" string => format("%S", params);
    "pk" slist => getindices(params);

  reports:
    DEBUG::
      "params: $(params_str)";
}

bundle agent check
{
  vars:
    "dim" int => length("test.params");
    "length" int => length("test.pk");
    "last" string => nth("test.value", 599);

  classes:
    "ok1" expression => strcmp($(dim), "3");
    "ok2" expression => strcmp($(dim), $(length));

    "ok3"
      expression => strcmp("$(test.params[not_working_app_config][0])", "9123");

    "ok" and => { "ok1", "ok2", "ok3" };

  reports:
    DEBUG.ok1::
      "passed1";

    DEBUG.ok2::
      "passed2";

    DEBUG.ok3::
      "passed3";

    DEBUG.!ok1::
      "failed1 $(dim) != 3";

    DEBUG.!ok2::
      "failed2 $(dim) != $(length)";

    DEBUG.!ok3::
      "failed3 $(test.params[not_working_app_config][0]) != 9123";

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

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