Comments (7)
Though it may not be that relevant here, my team tried this very briefly in Docker Autotest. It resulted in a horrible mess! Even once you get beyond implementing all the required synchronization between processes, you're still in a situation where tests can unpredictably clash with each-other. These problems take up a LOT of time to debug, and it's impossible to catch all of them since you can almost never predict the entire, exact sequencing of events. So IMHO, the simplest, lowest-variable count way is much more efficient (in development hours). Esp. since you can always split the entire test load between multiple test boxes, where there is no chance for contention and no synchronization is required.
from virt-test.
@sathnaga
As @cevich said, parallel jobs may mess things up.
Because we never know what conflicts in two different test module.
Take an example, "virsh reboot" and "virsh start" shouldn't work in parallel if we can't make sure its cleanup.
So my idea is that you can design parallel jobs in one test module since we can control it.
from virt-test.
Parallel testing is of course valuable, but hard to do right. @cevich has a point, although this is something we want to tackle in avocado. In the early days, pre virt-test we had parallel execution of tests, but today the functionality bit rotted.
from virt-test.
And the idea you want to run jobs for different guests on single host is good(In fact, we already have similar cases, even not unified :) ).
So I advise that you should design new cases for these parallel jobs.
from virt-test.
@cevich @lmr @yumingfei : Thanks for the comments.
@cevich: Sure, I agree with your points, and It would be good to have it a try, anyways as @lmr mentioned we can take this to avocado as we would have more flexibility I believe?
@yumingfei : Not different tests at same time, same test say, "virsh start" for different VMs.
Design new cases would be one of the solution:+1: but difficult to maintain and the framework support would sustain. We can have available tests get benefit of it as well.:-)
@lmr Sure, Please let me know once the parallel test idea gets evolved in avocado.
I hope, we will be able to use the existing tests in virt-test in avocado in future as it is or with a minimal change.
from virt-test.
Well if I understand the requirement correctly, you might create custom scenarios in virt-test inside a single job. The only cons is you'd have to rewrite the test with this in mind. For example let's try installing 5 different guests simultaneously. All you need is to define vms = "vm1 vm2 vm3 vm4 vm5" and double all the differences with
_vmXappendix (eg:
image_name_image1_vm1,
smp_vm2, kickstart_vm3, ...
).
You wouldn't be able to benefit from multiplexer, so you can't rely on kickstart
, cdrom
, kernel
, append
being filled for you because you choose RHEL.7.0
so you'd have to hardcode this into your config (or parse the files yourself in the test, which is IMO a bit overhead).
Anyway if such test makes sense to you, just create couple of scenarios, virt-test supports synchronization primitives so you're free to do that. (at least in qemu version, I'm not all that familiar with libvirt, but as far as you define single job, it should work too).
Last but not least, don't forget that single job doesn't mean single thread. You're free to spawn couple of workers with different parameters and periodically poll for results.
from virt-test.
@sathnaga true, it would be hardcoded, so harder to maintain (still with proper configuration, simple jobs should be bearable).
About avocado the answer is yes, but not at this moment.
from virt-test.
Related Issues (20)
- dropin tests stopped working when test providers were introduced HOT 1
- run: Change of --monitor causing other testcases doubled HOT 4
- Problem with running using latest JeOS HOT 1
- Test cases for virsh iface related commands HOT 3
- ./run ignores bogus --nettype values HOT 1
- virttest/libvirt_xml/vm.xml requires an update wrt to hostdev.py updates HOT 4
- could not read the boot disk / no bootable device HOT 1
- qemu testcase "qemu_img.info" runs failed
- some libvirt testcases in "virsh.undefine" run failed
- libvirt testcase "no_acpi_feature" in "virsh.setvcpus" runs failed
- some libvirt testcases in "virsh.dumpxml" run failed
- the testcases related to agent mode in libvirt with windows guest os run failed
- To add rhel70 ppc64 guest os config HOT 2
- unattended Install test fails as it unable to find the right serial log file to parse the end of test HOT 2
- ValueError: Missing (cmds/includes): Python.h HOT 1
- Report on current CI issue HOT 1
- update the virttest/unittest_data/testcfg.huge/unittests.cfg
- Remove 'ewew' from virt-test/shared/cfg/guest-os/Linux/OpenSUSE/12.1.i386.cfg
- pci_id getting modified within qemu_vm.py incorrectly HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from virt-test.