avocado
avocado copied to clipboard
NRunner Plugin: Unoptmized execution of Tasks (extra serialization/deserialization)
At this time, the nrunner plugin runs a Task directly through its run()
method. Besides the earlier point of not supporting other isolation models/execution environments (that means not using spawners), there's an extra layer of work happening when running a task which is most often not necessary: turning a Task instance into a command line, and within its execution, turning it into a Task instance again.
The goal is to support an optmized execution of the tasks, without having to turn them into command lines, and back into Task instances. The idea is already present in the spawning method definitions:
https://avocado-framework.readthedocs.io/en/79.0/api/core/avocado.core.spawners.html#avocado.core.spawners.common.SpawnMethod.PYTHON_CLASS
And a PoC on top of the nrun
command was implemented here:
https://github.com/avocado-framework/avocado/pull/3766/commits/ae57ee78df7f2935e40394cdfc72a34b458cdcef