tree edd23f8a0c54775c58ec34560b98a60a580fe369
parent c776c41406c970669a24a317bc6b924c2548d4a4
author Brad Bishop <bradleyb@fuzziesquirrel.com> 1598446250 -0400
committer Brad Bishop <bradleyb@fuzziesquirrel.com> 1598651078 -0400

entity-manager: probe: Refactor matching

In a nutshell, rely on nlohmann's comparison operator to make the match
instead of rolling our own.  A nice side effect is the expected match
behavior is well documented by nlohmann.

Code size and performance are unaffected (after removing dead code):
  before: 25121752 bytes unstripped, 3202608 bytes stripped
   after: 25146552 bytes unstripped, 3202616 bytes stripped
  before: ~22 seconds for 5000 iterations of the tests
   after: ~22 seconds for 5000 iterations of the tests

This refactor reduces the number of lines of code we need to maintain
and test and increases the number of lines of code used from the
extensively tested nlohmann json library.

The refactor simplifies the logic down to:
  return probe == value;
for non-string probes.  A string specialization is still required so we
can pattern match.

The refactor enables support for matching non-trivial json types such as
arrays and objects.  New types need only be added to BasicVariantType.

There are several changed testcase expectations introduced by the
refactor.  Each is discussed in detail below.

 - stringRegexError
 - boolStringError -> boolNeqString
 - falseEmptyError -> falseNeqEmpty
 - trueEmptyError -> trueNeqEmpty
 - uintStringError -> uintNeqString
 - uintEmptyError -> unitNeqEmpty
 - intStringError -> intNeqString
 - intEmptyError -> intNeqEmpty
 - doubleStringError -> doubleNeqString
 - doubleEmptyError -> doubleNeqEmpty
Configuration file validation of regular expression syntax or the
correct json type for a given dbus interface and property is better done
by our offline validation tools.  Avoid runtime complexity attempting to
distinguish between user errors and probe statements that simply do not
match by treating them the same and always return "no-match" instead of
an invalid argument error for user error situations.  stringRegexError
could be an exception - there is no additional runtime complexity
overhead associated with flagging it as a user error, but doing so would
result in inconsistent behavior, so return no-match for it as well.

 - stringZeroEqFalse -> stringZeroNeqFalse
 - stringOneEqTrue -> stringOneNeqTrue
 - stringEqUnit8 -> stringNeqUint8
 - stringEqUint32 -> stringNeqUint32
 - stringEqInt32 -> stringNeqInt32
 - stringRegexEqInt32 -> stringRegexNeqInt32
 - stringEqDouble -> stringNeqDouble
Prior to this patch dbus properties are converted to strings in the
event of a string probe.  This works around mistakes in configuration
files where the wrong json type is used but it can provide unexpected
results like the probe "1" matching a true and the probe "11" matching a
false, and the string "1*2" matching the number 112.  Implementing the
expected behavior is possible but would add complexity.  For these
reasons this refactor drops the string conversion and requires the user
to use the correct types in their configurations.

 - falseEqUint32Zero -> falseNeqUint32Zero
 - trueEqUint32Zero -> falseNeqUint32Zero
 - trueEqDoubleOne -> trueNeqDoubleOne
 - falseEqDoubleZero -> falseNeqDoubleZero
 - uintEqTrue -> uintNeqTrue
 - uintEqFalse -> uintNeqFalse
 - unitEqDoubleRound -> uintNeqDouble
Prior to this patch dbus properties are coerced to unsigned integers in
the event of a boolean or unsigned integer probes.  Like in the previous
section this can have unexpected results such as integral json types
matching floats with fractional components from dbus.  Again,
implementing the expected behavior is possible but would add
coomplexity, and again these conversions are abandoned and instead
require the user to use the correct types in their configurations.

 - intEqDoubleRound -> intNeqDoubleRoound
 - doubleEqFalse -> doubleNeqFalse
 - doubleEqTrue -> doubleNeqTrue
Like the previous two sections, dbus properties are coerced to integers
in the event of an integer probe, and dbus properties are coerced to
doubles in the event of a double probe, and can result in unexpected
behavior. Require the user to use the correct types in their
configurations.

Change-Id: I6ce7a9c4a80d9612b15cd5e7bb4647bd96852e48
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
