- 22 3月, 2018 9 次提交
-
-
由 Lukáš Doktor 提交于
Each Job creates several dirs/files and uses certain handlers to setup the environment, let's be explicit and instead of preparing everything magically on __init__ and cleaning most of it after "run" let users to "setup" and "cleanup" the Job handlers explicitly and to simplify the usage also support __enter__ and __exit__ methods to be able to simply use: # No job with Job(...) as job: # do your stuff with temporary handlers set # Job temporary handlers cleaned Signed-off-by: NLukáš Doktor <ldoktor@redhat.com>
-
由 Lukáš Doktor 提交于
Signed-off-by: NLukáš Doktor <ldoktor@redhat.com>
-
由 Lukáš Doktor 提交于
Currently we use global "avocado.core.data_dir.get_tmp_dir" temporary directory for Job execution, which does not allow coexistence of multiple jobs. Let's only use that location as base_tmpdir and create a per-job dir there. Signed-off-by: NLukáš Doktor <ldoktor@redhat.com>
-
由 Lukáš Doktor 提交于
The `srcdir` is always executed during `_setup_environment_variables`, initializing it lazily only consumes more mem and power. As a benefit having it initialized we can directly access `self.__srcdir` internally and remove the hack to not-log-warning-on-internal-access. Signed-off-by: NLukáš Doktor <ldoktor@redhat.com>
-
由 Lukáš Doktor 提交于
Signed-off-by: NLukáš Doktor <ldoktor@redhat.com> * https://github.com/avocado-framework/avocado: Lint: enable W0612 and W0622 checks Result Upload plugin: use rsync binary as found selftests/.data/test_statuses.py: avoid redefining Exceptions avocado/utils/memory.py: do not mask builtin MemoryError
-
由 Cleber Rosa 提交于
These warnings are described as: W0612: Used when a variable is defined but not used. W0622: Used when a variable or function override a built-in. After a suggestion from Andrei Stepanov, we decided to immediately enable these. Rerefence: https://pagure.io/standard-test-roles/pull-request/144 Reference: https://trello.com/c/Ohh7Q6qj/1183-enable-w-in-travis-make-checkSigned-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
The results *should* be the same without this change, but it can lead to a different binary being used from the one that was found previously. Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
That is, to fix this pylint condition: W0622:263,0: Exception: Redefining built-in 'Exception' We need to rename the Exception test. To make things consistent, let's rename all of the tests accordingly. Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
Python already has a builtin MemoryError exception. The description of such an exception is different from the goal here, so let's just use a different name. Reference: https://docs.python.org/3/library/exceptions.html#MemoryErrorSigned-off-by: NCleber Rosa <crosa@redhat.com>
-
- 21 3月, 2018 9 次提交
-
-
由 Lukáš Doktor 提交于
Signed-off-by: NLukáš Doktor <ldoktor@redhat.com> * https://github.com/avocado-framework/avocado: Test: initialize workdir early in non-lazy mode Test: rely on TestId.str_filesystem for the workdir Test: provide more metadata information Test: use more appropriate exceptions on invalid input Test: log test init before other messages
-
由 Cleber Rosa 提交于
Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Junxiang Li 提交于
Signed-off-by: NJunxiang Li <junli@redhat.com>
-
由 Amador Pahim 提交于
Signed-off-by: NAmador Pahim <apahim@redhat.com>
-
由 Lukáš Doktor 提交于
This should allow easier integration with children that override "self.params". Such classes should simply use custom "self.params" and report their "self.custom_params" while in "get_state" the stock Avocado params would be used. Signed-off-by: NLukáš Doktor <ldoktor@redhat.com>
-
由 Lukáš Doktor 提交于
The "self.params" should be Avocado params, but tests might override them (and Avocado-vt does). Let's be lenient to failures and simply report None. Signed-off-by: NLukáš Doktor <ldoktor@redhat.com>
-
由 Cleber Rosa 提交于
Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Amador Pahim 提交于
The last change in meminfo object to use the new DataSize object introduced a wrong behaviour. Currently meminfo is not returning updated values. This patch fixes it. Signed-off-by: NAmador Pahim <apahim@redhat.com>
-
由 Amador Pahim 提交于
Signed-off-by: NAmador Pahim <apahim@redhat.com>
-
- 20 3月, 2018 1 次提交
-
-
由 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>
-
- 19 3月, 2018 3 次提交
-
-
由 Cleber Rosa 提交于
Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Junxiang Li 提交于
We need compare the length instead of the tuple Signed-off-by: NJunxiang Li <junli@redhat.com>
-
- 18 3月, 2018 1 次提交
-
-
由 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>
-
- 16 3月, 2018 6 次提交
-
-
由 Cleber Rosa 提交于
Now that workdir will be logged as part of the test metadata, it makes no sense to attempt to optimize its assignment in a lazy fashion. The optimization here is to avoid the check and always return the already assigned value. Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
Instead of making yet another "safe" version of the TestID filesystem representation, let's rely on an already existing, used, and better code. Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
The amount of data to log is not an exact science, and certainly a matter of preference. Having said that, we already have a section about test metadata, and IMO, a few other test metadata can influence the test results and ease debugging and troubleshooting. With that in mind, let's log a few more of the test metadata. It's categorized as DEBUG messages anyway, and in IMO it even looks better to have a section with more than one piece of information. Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
The AssertionError exception is intended to be used when an internal condition that must exist, does not exist. When dealing with values received from an outer layer, that we can't control, it's better to use the more appropriate ValueError. Another reason is that code such as: def run_avocado(self): self._setup_environment_variables() try: self._tag_start() self._run_avocado() ... except AssertionError as detail: self.__status = 'FAIL' self.__fail_class = detail.__class__.__name__ self.__fail_reason = str(detail) self.__traceback = stacktrace.prepare_exc_info(sys.exc_info()) ... Can be afected by the AssertionErrors, and return a test failure instead of a test error. Reference: https://docs.python.org/3/library/exceptions.html#ValueError Reference: https://docs.python.org/3/library/exceptions.html#AssertionErrorSigned-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
And test start closer to recording of actual test start time. Currently, we have parameter messages such as: PARAMS (key=timeout, path=*, default=None) => None Appearing before the START message of a test, which is odd. It seems to be better to show that a test is getting initialized, and then later executed. Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Amador Pahim 提交于
Signed-off-by: NAmador Pahim <apahim@redhat.com>
-
- 15 3月, 2018 4 次提交
-
-
由 Cleber Rosa 提交于
Under Python 3.4, which runs on our CI and is our lowest supported version, json.loads() requires a string, while newer versions also allows bytes. >>> json.loads(b'{}') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/cleber/.local/lib/python3.4/json/__init__.py", line 312, in loads s.__class__.__name__)) TypeError: the JSON object must be str, not 'bytes' Let's make that code compatible with Python 3.4. Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Lukáš Doktor 提交于
Signed-off-by: NLukáš Doktor <ldoktor@redhat.com> * https://github.com/avocado-framework/avocado: Test: deprecate srcdir
-
由 Cleber Rosa 提交于
Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
The FDDrainer can fail to flush due to some other conditions, including when the stream handler is a plain StreamHandler, and not a FileHandler. Let's add tests that cover this situation, and another one that's already fixed that deals with closed streams. Reference: https://github.com/avocado-framework/avocado/pull/2512Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
- 14 3月, 2018 6 次提交
-
-
由 Cleber Rosa 提交于
Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Cleber Rosa 提交于
Signed-off-by: NCleber Rosa <crosa@redhat.com>
-
由 Amador Pahim 提交于
Signed-off-by: NAmador Pahim <apahim@redhat.com>
-
由 Amador Pahim 提交于
Signed-off-by: NAmador Pahim <apahim@redhat.com>
-
由 Cleber Rosa 提交于
After much discussion, it was decided that `srcdir` must go, and `workdir` should be used instead. At this time, let's deprecate it, and in the near future, remove it. The deprecation approach chosen is to flag tests that use `srcdir` with warning, so users will hopefully take notice. Reference: https://github.com/avocado-framework/avocado/issues/1924 Reference: https://trello.com/c/U1aaJjPJ/1158-deprecate-testsrcdir Reference: https://trello.com/c/dCcxhJc2/1267-remove-testsrcdirSigned-off-by: NCleber Rosa <crosa@redhat.com>
-
The method flush() in FDDrainer does not check the stream is open before get its file descriptor, resulting in "ValueError: I/O operation on closed file". Changed flush() to check the stream is open, otherwise do not try to flush. Signed-off-by: NWainer dos Santos Moschetta <wainersm@redhat.com>
-
- 13 3月, 2018 1 次提交
-
-
由 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>
-