Re: [spice/tests/migrate v1 2/4] tests: migrate: wait user launch client option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/4/19 11:37 AM, Victor Toso > On Thu, Oct 03, 2019 at 05:13:46PM +0300, Uri Lublin wrote:>> On 10/3/19 1:14 PM, Victor Toso wrote:>>> From: Victor Toso <me@xxxxxxxxxxxxxx>>>>>>> Useful to test different clients running different tools (gdb,>>> valgrind).>>>>>> Signed-off-by: Victor Toso <victortoso@xxxxxxxxxx>>>> --->>> tests/migrate.py | 13 +++++++++---->>> 1 file changed, 9 insertions(+), 4 deletions(-)>>>>>> diff --git a/tests/migrate.py b/tests/migrate.py>>> index 5ed9eba4..88e17691 100755>>> --- a/tests/migrate.py>>> +++ b/tests/migrate.py>>> @@ -63,6 +63,8 @@ def get_args():>>> help="Append options for agent's virtserialport")>>> parser.add_argument('--wait-user-input', dest="wait_user_input", action='store_true', default=False,>>> help="Wait user's input to start migration test")>>> + parser.add_argument('--wait-user-connect', dest="wait_user_connect", action='store_true', default=False,>>> + help="Wait spice client to connect to move to next step of migration (default False)")>>>> Consider adding a check for both --wait-user-connect and --client=non-none>> (which I expect will break something)
Not really, runs fine here (assuming you mean a valid client such
as spicy or remote-viewer)

I do mean with e.g. remote-viewer.

The problem is that there are two clients in this scenario:
 1. the one that is started by the script (--client)
 2. the one that is started by the user ( --wait-user-connect )

Uri.


With --wait-user-connect it launches but migration only starts
after connection is established. Also tried with
--wait-user-input and client connects but no migration happens
till some keystroke on console.


Thanks for the reviews!
Victor

Uri.

       parser.add_argument('--count', dest='counter', type=int, default=100,
                           help="Number of migrations to run (set 0 for infinite)")
       args = parser.parse_args(sys.argv[1:])
@@ -174,25 +176,28 @@ class Migrator(object):
               if os.path.exists(x):
                   os.unlink(x)
-    def iterate(self, wait_for_user_input=False):
+    def iterate(self, wait_for_user_input=False, wait_user_connect=False):
           wait_active(self.active.qmp, True)
           wait_active(self.target.qmp, False)
           if not self.connected_client:
               if self.client:
                   self.connected_client = start_client(client=self.client, spice_port=self.spice_ports[0])
-                wait_for_event(self.active.qmp, 'SPICE_INITIALIZED')
               if wait_for_user_input:
                   print "waiting for Enter to start migrations"
                   raw_input()
+        # Tester can launch its own client or we wait start_client() to connect
+        if wait_user_connect:
+            wait_for_event(self.active.qmp, 'SPICE_INITIALIZED')
+
           self.active.qmp.cmd('client_migrate_info', {'protocol':'spice',
               'hostname':'localhost', 'port':self.target.spice_port})
           self.active.qmp.cmd('migrate', {'uri': 'tcp:localhost:%s' % self.migration_port})
           wait_active(self.active.qmp, False)
           wait_active(self.target.qmp, True)
-        if self.connected_client:
+        if self.connected_client or wait_user_connect:
               wait_for_event(self.target.qmp, 'SPICE_CONNECTED')
           dead = self.active
@@ -224,7 +229,7 @@ def main():
       atexit.register(cleanup, migrator)
       counter = 0
       while args.counter == 0 or counter < args.counter:
-        migrator.iterate(args.wait_user_input)
+        migrator.iterate(args.wait_user_input, args.wait_user_connect)
           counter += 1
   if __name__ == '__main__':



_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]