Coder Social home page Coder Social logo

Comments (7)

cevich avatar cevich commented on August 29, 2024

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.

yumingfei avatar yumingfei commented on August 29, 2024

@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.

lmr avatar lmr commented on August 29, 2024

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.

yumingfei avatar yumingfei commented on August 29, 2024

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.

sathnaga avatar sathnaga commented on August 29, 2024

@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.

ldoktor avatar ldoktor commented on August 29, 2024

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.

ldoktor avatar ldoktor commented on August 29, 2024

@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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.