Acceptance test for nested list expansion.

Covering various cases that have been problematic:

- nested lists where one list combination will be empty
- expansion of foreign lists
- passing of empty lists into methods as parameters

See Redmine #6553
Follow up to fixes for redmine/6553

With the previous fix, iteration skips the entire promise if
any of the lists to be iterated over is empty. This leads to
incorrect behavior in case of nested lists, where one of the
combinations of lists would be empty. Acceptance test addition
covers this case as well now.

The fix is now more intrusive. We don't include empty lists
any longer when parsing the string during expansion. Instead,
abort expansion, and skip this particular promise iteration.

The previous fixes remain in place.
Skip method evaluation if any parameter is cf_null

Fixes another Redmine #6553 case
Revert "Temporary fix: inline the suppress/soft list evaluation."

This reverts commit c96a9a1c0117018899d92958fefa89bbce685311. No
longer required after additional fixes made to list expansion.
Merge pull request #1958 from vohi/redmine/6553-fix

Follow up on regressions introduced by initial fix for redmine 6553
Redmine #6558: Fix LookupAccountName error message on Windows.

Don't report error for user name "root" on Windows, since it is not
expected to exist.
Merge pull request #1959 from kacfengine/redmine6558

Redmine #6558: Fix LookupAccountName error message on Windows.
Change: Fix laterthan test

The or() function returns a string, not a boolean.
https://docs.cfengine.com/latest/reference-functions-or.html
Merge pull request #1960 from nickanderson/fix_laterthan_test

Change: Fix laterthan test
Don't pass literal strings when a char* is needed.

Perhaps IsUserNameValid() shouldn't need to modify its parameter; but
its test shouldn't pass it a const char* parameter as long as it
claims it does.  Turn the literals into initializers for non-const
arrays.
Clean up append_xml() and make it static.

Don't use a char to collect the output of getc().
Check the returns from fopen().
Check the return from getc(), as well as feof().
Do the loop test once, not twice.
Use more expressive names for FILE handles.
Make some functions more local, delete some bogus declarations.

Three functions were declared but nowhere defined; kill those.
Various cmockery functions are only actually used within cmockery.c;
so make them static and #if-out their declarations from cmockery.h
Handle socket()-failure like all others.

The child_cycle() test code neglected to check whether socket()
succeeded.  When it fails, handle it the same as all other failures.
Also, in other failures, don't bother saving write()'s return to a
variable when we're not going to do anything with it; and don't leave
space between a function's name and its parameter list.
Warning-fix: use assert_true() in tests rather than assert().

In an NDEBUG build, assert() doesn't actually test the condition; but
the test should indeed be testing it, so assert_true() is more apt.
Also simplify a return.
Petty space change.

Don't leave space between function name and open parentheses.
Purge dangling hspace
Clean-up in LinuxDebianSanitizeIssue()

Make its @brief actually brief.  Describe what it does more
accurately.  Its caller ignored its return which was always success;
so don't bother with it, just be void.  The implementation was messy;
tidied it up and simplified it.
Only mark parameter as unused when it isn't used.

CurrentZoneName()'s string parameter is only used when we
HAVE_GETZONEID; so only mark it as unused when that's not enabled.
Mark parameter as unused only when it isn't actually used.

Was marked as unused, but is used in an assertion.
Apply suitable #if-ery to the ARG_UNUSED.
Split a long line.