oeqa/selftest: support sets in devtool comparisons

The devtool and recipetool tests do literal string comparisons, but for some
fields the ordering could be irrelevant and potentially non-deterministic.  For
example, the recipetool_create_simple test started failing with:

AssertionError: 'GPLv2 Unknown' != 'Unknown GPLv2' : values for LICENSE do not match

The ordering of the LICENSE field isn't relevant.  So, if the expected value is
a set(), split the string into a set too and compare those.

(From OE-Core rev: dab1b0ad42f08eb547732e854ba28a4cf0a23107)

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ross Burton
2015-12-23 13:45:23 +00:00
committed by Richard Purdie
parent 4b543f7405
commit 09705a4af0
2 changed files with 4 additions and 2 deletions

View File

@@ -44,6 +44,8 @@ class DevtoolBase(oeSelfTest):
needvalue = checkvars.pop(var)
if needvalue is None:
self.fail('Variable %s should not appear in recipe')
if isinstance(needvalue, set):
value = set(value.split())
self.assertEqual(value, needvalue, 'values for %s do not match' % var)