1. 20 3月, 2018 1 次提交
    • C
      Travis-CI: whitelist style check errors · aadb1c9a
      Cleber Rosa 提交于
      The latest jobs have been failing because of the following issues:
      
          ************* Module raise
          E1130: 48,30: Raise.test: bad operand type for unary -: NoneType
          ************* Module selftests.functional.test_basic
          I1101:1191,24: PluginsXunitTest.run_and_check: Module 'lxml.etree'
          has not 'XMLSchema' member, but source is unavailable. Consider
          adding this module to extension-pkg-whitelist if you want to
          perform analysis based on run-time introspection of living
          objects.
          I1101:1191,40: PluginsXunitTest.run_and_check: Module 'lxml.etree'
          has not 'parse' member, but source is unavailable. Consider adding
          this module to extension-pkg-whitelist if you want to perform
          analysis based on run-time introspection of living objects.
          I1101:1193,43: PluginsXunitTest.run_and_check: Module 'lxml.etree'
          has not 'parse' member, but source is unavailable. Consider adding
          this module to extension-pkg-whitelist if you want to perform
          analysis based on run-time introspection of living objects.
          ************* Module selftests.unit.test_xunit
          I1101: 91,24: xUnitSucceedTest.test_add_success: Module
          'lxml.etree' has not 'XMLSchema' member, but source is
          unavailable. Consider adding this module to
          extension-pkg-whitelist if you want to perform analysis based on
          run-time introspection of living objects.
          I1101: 91,40: xUnitSucceedTest.test_add_success: Module
          'lxml.etree' has not 'parse' member, but source is
          unavailable. Consider adding this module to
          extension-pkg-whitelist if you want to perform analysis based on
          run-time introspection of living objects.
          I1101: 92,43: xUnitSucceedTest.test_add_success: Module
          'lxml.etree' has not 'parse' member, but source is
          unavailable. Consider adding this module to
          extension-pkg-whitelist if you want to perform analysis based on
          run-time introspection of living objects.
      
      We can't whitelist the `lxml.etree` module at this time (inspekt doesn't
      have such an option) and the raise failure is a false positive.  Let's
      ignore those issues then.
      Signed-off-by: NCleber Rosa <crosa@redhat.com>
      aadb1c9a
  2. 19 3月, 2018 3 次提交
  3. 18 3月, 2018 1 次提交
    • A
      test results: optimize params information · d5076fac
      Amador Pahim 提交于
      Currently we propagate to test results the AvacadoParams object used by
      the test. Holding that object in the test results makes the Avocado
      process to consume a lot of memory.
      
      For instance, in an Avocado job with 5000 tests (passtest.py), with
      Avocado-VT in place, the Job object grows up from 59MB before running
      the tests to 274MB after running the tests, a 215MB growth::
      
          (Pdb) pre_tests
          Partition of a set of 440754 objects. Total size = 59066528 bytes.
      
          (Pdb) post_tests
          Partition of a set of 1570821 objects. Total size = 274340184 bytes.
      
          (Pdb) growth
          Partition of a set of 1130073 objects. Total size = 215274464 bytes.
      
      Since the 'params' item is important for both the HTML report and the
      ResultsDB report, instead of dropping the 'params' item from the
      results, this patch parses the AvocadoParams, populating the test
      results with a list of tuples, each one containing the 'path', 'key' and
      'value' per parameter basis. This improves the situation a lot. The same
      Avocado Job will now only grow up from 59MB to 89MB::
      
          (Pdb) pre_tests
          Partition of a set of 440747 objects. Total size = 59066424 bytes.
      
          (Pdb) post_tests
          Partition of a set of 840812 objects. Total size = 89619904 bytes.
      
          (Pdb) growth
          Partition of a set of 400071 objects. Total size = 30554288 bytes.
      
      The HTML and ResultsDB plugins were adapted accordingly.
      Signed-off-by: NAmador Pahim <apahim@redhat.com>
      d5076fac
  4. 16 3月, 2018 1 次提交
  5. 15 3月, 2018 4 次提交
  6. 14 3月, 2018 6 次提交
  7. 13 3月, 2018 3 次提交
    • C
      avocado/core/tree.py: allow MuxTreeNode to be hashed under Python 3 · 3d41ea15
      Cleber Rosa 提交于
      Under Python 3, as in Python 2, most objects are automatically
      hashable.  Example:
      
         >>> class Foo(object):
         >>>     pass
         >>> hash(Foo())
         >>> 8760583602380
      
      But if an object that implements __eq__ also has to implement
      __hash__.  Under Python 3:
      
         >>> class Foo(object):
         >>>     def __eq__(self, other):
         >>>         return False
         Traceback (most recent call last):
         File "<stdin>", line 1, in <module>
         TypeError: unhashable type: 'Foo'
      
      Since TreeNode implements __eq__, under Python 3, it *must* implement
      __hash__.  There are a few tricky points, though.  One of them is that
      "The only required property is that objects which compare equal have
      the same hash value".  TreeNodes have a very flexible equality
      comparison, which cannot be taken into account in a hash
      implementation which doesn't have access to the "other" object.
      
      To the best of my knowledge, the way to go with the TreeNode __hash__
      implementation is to take into account the comparison of all
      attributes that are used on __eq__ (name, values, children) and use
      those as the composition for __hash__, as suggested by the Python
      docs.  Unfortunately, some of the content of "values" and "children"
      may themselves be unshashable values (such as dicts coming from YAML
      test suite loader).  My coward's way out here was to use a string
      representation of such unhashable types to compose the TreeNode hash.
      
      This fixes 5 unittests of the varianter_yaml_to_mux plugin when
      run under Python 3, such as:
      
          ======================================================================
          ERROR: test_get_rel_path (tests.test_mux.TestAvocadoParams)
          ----------------------------------------------------------------------
            ....
              if len(set([_[1] for _ in ret])) == 1:  # single source of results
          TypeError: unhashable type: 'MuxTreeNode'
      
      Reference: https://docs.python.org/3/reference/datamodel.html#object.__hash__Signed-off-by: NCleber Rosa <crosa@redhat.com>
      3d41ea15
    • C
      test_fingerprint_order: work around dict items representation · 27656da5
      Cleber Rosa 提交于
      In Python 3, the order of a dictionary items will be different than
      under Python 2.  To not have to change the supporting code to return
      OrderedDicts, let's just simplify the comparison, breaking them down
      into each dictionary item.
      
      This fixes the varianter_yaml_to_mux plugin unittest failure under
      Python 3:
      
          ======================================================================
          FAIL: test_fingerprint_order (tests.test_mux.TestMuxTree)
          ----------------------------------------------------------------------
          Traceback (most recent call last):
            File "/home/cleber/src/avocado/avocado/optional_plugins/varianter_yaml_to_mux/tests/test_mux.py", line 231, in test_fingerprint_order
              self.assertEqual(str(variant1), "{'paths': '', 'variant': "
          AssertionError: "{'variant_id': 'child1-child2-9154', 'varia[65 chars] ''}" != "{'paths': '', 'variant': [TreeNode(name='ch[65 chars]54'}"
          - {'variant_id': 'child1-child2-9154', 'variant': [TreeNode(name='child1'), TreeNode(name='child2')], 'paths': ''}
          + {'paths': '', 'variant': [TreeNode(name='child1'), TreeNode(name='child2')], 'variant_id': 'child1-child2-9154'}
      Signed-off-by: NCleber Rosa <crosa@redhat.com>
      27656da5
    • C
      selftests/functional/test_json_variants.py: do not rely on the order of dict · 46c96800
      Cleber Rosa 提交于
      The items of a dictionary are not ordered by default, and between
      Python 2 and 3 they always come out different in my experience.
      
      Since this test is trying out the representation of a JSON built from
      dicts, the same applies.  Let's make the checks a bit more flexible
      (and a bit less accurate to be honest) and check for the pieces of
      info inside the JSON file content.
      Signed-off-by: NCleber Rosa <crosa@redhat.com>
      46c96800
  8. 12 3月, 2018 2 次提交
  9. 09 3月, 2018 8 次提交
  10. 08 3月, 2018 10 次提交
  11. 06 3月, 2018 1 次提交