* [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server
@ 2009-12-01 7:16 Cao, Chen
2009-12-01 7:49 ` Michael Goldish
0 siblings, 1 reply; 6+ messages in thread
From: Cao, Chen @ 2009-12-01 7:16 UTC (permalink / raw)
To: autotest, lmr; +Cc: kvm, mgoldish, Cao, Chen
Add an option to let user download the .au3 script from a remote
server, and keep the original method to prepare the script.
This makes it possible to employ AutoIt tests that involve several
files.
new variants:
1. download,
if params.get("download") == "yes", download the scripts to guest,
else use the original method, echo the code into guest.
2. download_cmd,
What tool to use to download.
User can choose git, as in the sample file, svn, ftp, or wget,
or other preferred tools.
NOTE, this requires that the download tool is installed in the
guest, or the tools have been placed in winutils.iso.
3. rsc_server,
Resource server which contains the AutoIt script
and provide a download service.
4. dst_rsc_dir,
Destination of the AutoIt scripts in the guest.
i.e. the downloaded resource will be saved in this default dir.
5. autoit_entry,
Which .au3 file to start to run.
this will be useful if a test involves several .au3 files.
Signed-off-by: Cao, Chen <kcao@redhat.com>
---
client/tests/kvm/kvm_tests.cfg.sample | 6 ++++
client/tests/kvm/tests/autoit.py | 45 ++++++++++++++++++++++----------
2 files changed, 37 insertions(+), 14 deletions(-)
diff --git a/client/tests/kvm/kvm_tests.cfg.sample b/client/tests/kvm/kvm_tests.cfg.sample
index 5e15b30..f688b97 100644
--- a/client/tests/kvm/kvm_tests.cfg.sample
+++ b/client/tests/kvm/kvm_tests.cfg.sample
@@ -169,6 +169,12 @@ variants:
variants:
- notepad:
autoit_script = autoit/notepad1.au3
+ - stub:
+ download = yes
+ download_cmd = "git clone"
+ rsc_server = "git://the.resource.server/autoit"
+ dst_rsc_dir = "C:\"
+ autoit_entry = "C:\autoit\stub\stub.au3"
- guest_s4: install setup unattended_install
type = guest_s4
diff --git a/client/tests/kvm/tests/autoit.py b/client/tests/kvm/tests/autoit.py
index 9435d7c..ed1d491 100644
--- a/client/tests/kvm/tests/autoit.py
+++ b/client/tests/kvm/tests/autoit.py
@@ -25,23 +25,40 @@ def run_autoit(test, params, env):
# Collect test parameters
binary = params.get("autoit_binary")
script = params.get("autoit_script")
+ autoit_entry = params.get("autoit_entry", "script.au3")
script_params = params.get("autoit_script_params", "")
timeout = float(params.get("autoit_script_timeout", 600))
- # Send AutoIt script to guest (this code will be replaced once we
- # support sending files to Windows guests)
- session.get_command_output("del script.au3", internal_timeout=0)
- file = open(kvm_utils.get_path(test.bindir, script))
- for line in file.readlines():
- # Insert a '^' before each character
- line = "".join("^" + c for c in line.rstrip())
- if line:
- # Append line to the file
- session.get_command_output("echo %s>>script.au3" % line,
- internal_timeout=0)
- file.close()
-
- command = "cmd /c %s script.au3 %s" % (binary, script_params)
+ # Download the script resource from a remote server, or
+ # prepare the script using rss?
+ if params.get("download") == "yes":
+ download_cmd = params.get("download_cmd")
+ rsc_server = params.get("rsc_server")
+ dst_rsc_dir = params.get("dst_rsc_dir")
+
+ # Change dir to dst_rsc_dir, and remove 'autoit' there, then
+ # download the resource.
+ rsc_cmd = "cd %s && (rmdir /s /q autoit || del /s /q autoit) && " \
+ "%s %s" % (dst_rsc_dir, download_cmd, rsc_server)
+
+ if session.get_command_status(rsc_cmd, timeout=timeout) != 0:
+ raise error.TestFail("Download test resource failed.")
+ logging.info("Download resource finished.")
+ else:
+ # Send AutoIt script to guest (this code will be replaced once we
+ # support sending files to Windows guests)
+ session.get_command_output("del script.au3", internal_timeout=0)
+ file = open(kvm_utils.get_path(test.bindir, script))
+ for line in file.readlines():
+ # Insert a '^' before each character
+ line = "".join("^" + c for c in line.rstrip())
+ if line:
+ # Append line to the file
+ session.get_command_output("echo %s>>script.au3" % line,
+ internal_timeout=0)
+ file.close()
+
+ command = "cmd /c %s %s %s" % (binary, autoit_entry, script_params)
logging.info("---------------- Script output ----------------")
status = session.get_command_status(command,
--
1.5.5.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server
2009-12-01 7:16 [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server Cao, Chen
@ 2009-12-01 7:49 ` Michael Goldish
2009-12-01 10:17 ` Cao, Chen
0 siblings, 1 reply; 6+ messages in thread
From: Michael Goldish @ 2009-12-01 7:49 UTC (permalink / raw)
To: Chen Cao; +Cc: kvm, autotest, lmr
----- "Chen Cao" <kcao@redhat.com> wrote:
> Add an option to let user download the .au3 script from a remote
> server, and keep the original method to prepare the script.
>
> This makes it possible to employ AutoIt tests that involve several
> files.
>
> new variants:
> 1. download,
> if params.get("download") == "yes", download the scripts to guest,
> else use the original method, echo the code into guest.
> 2. download_cmd,
> What tool to use to download.
> User can choose git, as in the sample file, svn, ftp, or wget,
> or other preferred tools.
> NOTE, this requires that the download tool is installed in the
> guest, or the tools have been placed in winutils.iso.
> 3. rsc_server,
> Resource server which contains the AutoIt script
> and provide a download service.
> 4. dst_rsc_dir,
> Destination of the AutoIt scripts in the guest.
> i.e. the downloaded resource will be saved in this default dir.
> 5. autoit_entry,
> Which .au3 file to start to run.
> this will be useful if a test involves several .au3 files.
>
> Signed-off-by: Cao, Chen <kcao@redhat.com>
I haven't reviewed the code yet, but I have 2 quick questions:
- If the files we'll be downloading are text files (.au3 files), then
why not download them in the host and send them to the guest using
the echo method? This imposes less requirements on the guest.
- Why not add the ability to send multiple files from the host to the
guest, using the echo method, without downloading them?
BTW, this echo method is meant to be used only until we add file
transfer support to rss.exe (I'm not sure when exactly that will
happen).
> ---
> client/tests/kvm/kvm_tests.cfg.sample | 6 ++++
> client/tests/kvm/tests/autoit.py | 45
> ++++++++++++++++++++++----------
> 2 files changed, 37 insertions(+), 14 deletions(-)
>
> diff --git a/client/tests/kvm/kvm_tests.cfg.sample
> b/client/tests/kvm/kvm_tests.cfg.sample
> index 5e15b30..f688b97 100644
> --- a/client/tests/kvm/kvm_tests.cfg.sample
> +++ b/client/tests/kvm/kvm_tests.cfg.sample
> @@ -169,6 +169,12 @@ variants:
> variants:
> - notepad:
> autoit_script = autoit/notepad1.au3
> + - stub:
> + download = yes
> + download_cmd = "git clone"
> + rsc_server = "git://the.resource.server/autoit"
> + dst_rsc_dir = "C:\"
> + autoit_entry = "C:\autoit\stub\stub.au3"
>
> - guest_s4: install setup unattended_install
> type = guest_s4
> diff --git a/client/tests/kvm/tests/autoit.py
> b/client/tests/kvm/tests/autoit.py
> index 9435d7c..ed1d491 100644
> --- a/client/tests/kvm/tests/autoit.py
> +++ b/client/tests/kvm/tests/autoit.py
> @@ -25,23 +25,40 @@ def run_autoit(test, params, env):
> # Collect test parameters
> binary = params.get("autoit_binary")
> script = params.get("autoit_script")
> + autoit_entry = params.get("autoit_entry", "script.au3")
> script_params = params.get("autoit_script_params", "")
> timeout = float(params.get("autoit_script_timeout", 600))
>
> - # Send AutoIt script to guest (this code will be replaced
> once we
> - # support sending files to Windows guests)
> - session.get_command_output("del script.au3",
> internal_timeout=0)
> - file = open(kvm_utils.get_path(test.bindir, script))
> - for line in file.readlines():
> - # Insert a '^' before each character
> - line = "".join("^" + c for c in line.rstrip())
> - if line:
> - # Append line to the file
> - session.get_command_output("echo %s>>script.au3" %
> line,
> - internal_timeout=0)
> - file.close()
> -
> - command = "cmd /c %s script.au3 %s" % (binary,
> script_params)
> + # Download the script resource from a remote server, or
> + # prepare the script using rss?
> + if params.get("download") == "yes":
> + download_cmd = params.get("download_cmd")
> + rsc_server = params.get("rsc_server")
> + dst_rsc_dir = params.get("dst_rsc_dir")
> +
> + # Change dir to dst_rsc_dir, and remove 'autoit' there,
> then
> + # download the resource.
> + rsc_cmd = "cd %s && (rmdir /s /q autoit || del /s /q
> autoit) && " \
> + "%s %s" % (dst_rsc_dir, download_cmd,
> rsc_server)
> +
> + if session.get_command_status(rsc_cmd, timeout=timeout)
> != 0:
> + raise error.TestFail("Download test resource
> failed.")
> + logging.info("Download resource finished.")
> + else:
> + # Send AutoIt script to guest (this code will be replaced
> once we
> + # support sending files to Windows guests)
> + session.get_command_output("del script.au3",
> internal_timeout=0)
> + file = open(kvm_utils.get_path(test.bindir, script))
> + for line in file.readlines():
> + # Insert a '^' before each character
> + line = "".join("^" + c for c in line.rstrip())
> + if line:
> + # Append line to the file
> + session.get_command_output("echo %s>>script.au3"
> % line,
> + internal_timeout=0)
> + file.close()
> +
> + command = "cmd /c %s %s %s" % (binary, autoit_entry,
> script_params)
>
> logging.info("---------------- Script output
> ----------------")
> status = session.get_command_status(command,
> --
> 1.5.5.6
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server
2009-12-01 7:49 ` Michael Goldish
@ 2009-12-01 10:17 ` Cao, Chen
2009-12-03 3:16 ` [Autotest] " Lucas Meneghel Rodrigues
0 siblings, 1 reply; 6+ messages in thread
From: Cao, Chen @ 2009-12-01 10:17 UTC (permalink / raw)
To: Michael Goldish; +Cc: kvm, autotest, lmr
On Tue, Dec 01, 2009 at 02:49:43AM -0500, Michael Goldish wrote:
>
> ----- "Chen Cao" <kcao@redhat.com> wrote:
>
> > Add an option to let user download the .au3 script from a remote
> > server, and keep the original method to prepare the script.
> >
> > This makes it possible to employ AutoIt tests that involve several
> > files.
> >
> > new variants:
> > 1. download,
> > if params.get("download") == "yes", download the scripts to guest,
> > else use the original method, echo the code into guest.
> > 2. download_cmd,
> > What tool to use to download.
> > User can choose git, as in the sample file, svn, ftp, or wget,
> > or other preferred tools.
> > NOTE, this requires that the download tool is installed in the
> > guest, or the tools have been placed in winutils.iso.
> > 3. rsc_server,
> > Resource server which contains the AutoIt script
> > and provide a download service.
> > 4. dst_rsc_dir,
> > Destination of the AutoIt scripts in the guest.
> > i.e. the downloaded resource will be saved in this default dir.
> > 5. autoit_entry,
> > Which .au3 file to start to run.
> > this will be useful if a test involves several .au3 files.
> >
> > Signed-off-by: Cao, Chen <kcao@redhat.com>
>
> I haven't reviewed the code yet, but I have 2 quick questions:
>
> - If the files we'll be downloading are text files (.au3 files), then
> why not download them in the host and send them to the guest using
> the echo method? This imposes less requirements on the guest.
>
downloading/preparing them in the host also requires extra effects
before the test.
and we may also need testing tools, which are binary executables,
to aid our tests. then we have to wait for the improved rss.exe,
it is bad for the users/testers.
> - Why not add the ability to send multiple files from the host to the
> guest, using the echo method, without downloading them?
>
> BTW, this echo method is meant to be used only until we add file
> transfer support to rss.exe (I'm not sure when exactly that will
> happen).
>
I just like to give the users/testers more choices to focus on the tests.
especially, for now it is a little hard to echo multiple files into guest.
I am also looking forward to the new version of rss with file transfer
functions.
Thanks for your questions, buddy.
Regards,
Cao, Chen
2009/12/01
>
> > ---
> > client/tests/kvm/kvm_tests.cfg.sample | 6 ++++
> > client/tests/kvm/tests/autoit.py | 45
> > ++++++++++++++++++++++----------
> > 2 files changed, 37 insertions(+), 14 deletions(-)
> >
> > diff --git a/client/tests/kvm/kvm_tests.cfg.sample
> > b/client/tests/kvm/kvm_tests.cfg.sample
> > index 5e15b30..f688b97 100644
> > --- a/client/tests/kvm/kvm_tests.cfg.sample
> > +++ b/client/tests/kvm/kvm_tests.cfg.sample
> > @@ -169,6 +169,12 @@ variants:
> > variants:
> > - notepad:
> > autoit_script = autoit/notepad1.au3
> > + - stub:
> > + download = yes
> > + download_cmd = "git clone"
> > + rsc_server = "git://the.resource.server/autoit"
> > + dst_rsc_dir = "C:\"
> > + autoit_entry = "C:\autoit\stub\stub.au3"
> >
> > - guest_s4: install setup unattended_install
> > type = guest_s4
> > diff --git a/client/tests/kvm/tests/autoit.py
> > b/client/tests/kvm/tests/autoit.py
> > index 9435d7c..ed1d491 100644
> > --- a/client/tests/kvm/tests/autoit.py
> > +++ b/client/tests/kvm/tests/autoit.py
> > @@ -25,23 +25,40 @@ def run_autoit(test, params, env):
> > # Collect test parameters
> > binary = params.get("autoit_binary")
> > script = params.get("autoit_script")
> > + autoit_entry = params.get("autoit_entry", "script.au3")
> > script_params = params.get("autoit_script_params", "")
> > timeout = float(params.get("autoit_script_timeout", 600))
> >
> > - # Send AutoIt script to guest (this code will be replaced
> > once we
> > - # support sending files to Windows guests)
> > - session.get_command_output("del script.au3",
> > internal_timeout=0)
> > - file = open(kvm_utils.get_path(test.bindir, script))
> > - for line in file.readlines():
> > - # Insert a '^' before each character
> > - line = "".join("^" + c for c in line.rstrip())
> > - if line:
> > - # Append line to the file
> > - session.get_command_output("echo %s>>script.au3" %
> > line,
> > - internal_timeout=0)
> > - file.close()
> > -
> > - command = "cmd /c %s script.au3 %s" % (binary,
> > script_params)
> > + # Download the script resource from a remote server, or
> > + # prepare the script using rss?
> > + if params.get("download") == "yes":
> > + download_cmd = params.get("download_cmd")
> > + rsc_server = params.get("rsc_server")
> > + dst_rsc_dir = params.get("dst_rsc_dir")
> > +
> > + # Change dir to dst_rsc_dir, and remove 'autoit' there,
> > then
> > + # download the resource.
> > + rsc_cmd = "cd %s && (rmdir /s /q autoit || del /s /q
> > autoit) && " \
> > + "%s %s" % (dst_rsc_dir, download_cmd,
> > rsc_server)
> > +
> > + if session.get_command_status(rsc_cmd, timeout=timeout)
> > != 0:
> > + raise error.TestFail("Download test resource
> > failed.")
> > + logging.info("Download resource finished.")
> > + else:
> > + # Send AutoIt script to guest (this code will be replaced
> > once we
> > + # support sending files to Windows guests)
> > + session.get_command_output("del script.au3",
> > internal_timeout=0)
> > + file = open(kvm_utils.get_path(test.bindir, script))
> > + for line in file.readlines():
> > + # Insert a '^' before each character
> > + line = "".join("^" + c for c in line.rstrip())
> > + if line:
> > + # Append line to the file
> > + session.get_command_output("echo %s>>script.au3"
> > % line,
> > + internal_timeout=0)
> > + file.close()
> > +
> > + command = "cmd /c %s %s %s" % (binary, autoit_entry,
> > script_params)
> >
> > logging.info("---------------- Script output
> > ----------------")
> > status = session.get_command_status(command,
> > --
> > 1.5.5.6
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Autotest] [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server
2009-12-01 10:17 ` Cao, Chen
@ 2009-12-03 3:16 ` Lucas Meneghel Rodrigues
2009-12-03 6:39 ` Cao, Chen
0 siblings, 1 reply; 6+ messages in thread
From: Lucas Meneghel Rodrigues @ 2009-12-03 3:16 UTC (permalink / raw)
To: Cao, Chen; +Cc: Michael Goldish, autotest, kvm
Chen, I have verified your patch, code looks good, but I am indeed a
bit concerned about putting extra requirements on winutils.iso. How
hard it is to get git working under windows? I did some quick research
and seems that we have a portable version of git that could be kept on
winutils.iso for that matter. Please let me know how you guys are
doing this.
So even though the generic idea looks fine, I am a bit concerned about
the defaults you've put in, so I will wait for your considerations
about how exactly we are planning to get git under the windows guests,
OK?
On Tue, Dec 1, 2009 at 8:17 AM, Cao, Chen <kcao@redhat.com> wrote:
> On Tue, Dec 01, 2009 at 02:49:43AM -0500, Michael Goldish wrote:
>>
>> ----- "Chen Cao" <kcao@redhat.com> wrote:
>>
>> > Add an option to let user download the .au3 script from a remote
>> > server, and keep the original method to prepare the script.
>> >
>> > This makes it possible to employ AutoIt tests that involve several
>> > files.
>> >
>> > new variants:
>> > 1. download,
>> > if params.get("download") == "yes", download the scripts to guest,
>> > else use the original method, echo the code into guest.
>> > 2. download_cmd,
>> > What tool to use to download.
>> > User can choose git, as in the sample file, svn, ftp, or wget,
>> > or other preferred tools.
>> > NOTE, this requires that the download tool is installed in the
>> > guest, or the tools have been placed in winutils.iso.
>> > 3. rsc_server,
>> > Resource server which contains the AutoIt script
>> > and provide a download service.
>> > 4. dst_rsc_dir,
>> > Destination of the AutoIt scripts in the guest.
>> > i.e. the downloaded resource will be saved in this default dir.
>> > 5. autoit_entry,
>> > Which .au3 file to start to run.
>> > this will be useful if a test involves several .au3 files.
>> >
>> > Signed-off-by: Cao, Chen <kcao@redhat.com>
>>
>> I haven't reviewed the code yet, but I have 2 quick questions:
>>
>> - If the files we'll be downloading are text files (.au3 files), then
>> why not download them in the host and send them to the guest using
>> the echo method? This imposes less requirements on the guest.
>>
>
> downloading/preparing them in the host also requires extra effects
> before the test.
>
> and we may also need testing tools, which are binary executables,
> to aid our tests. then we have to wait for the improved rss.exe,
> it is bad for the users/testers.
>
>> - Why not add the ability to send multiple files from the host to the
>> guest, using the echo method, without downloading them?
>>
>> BTW, this echo method is meant to be used only until we add file
>> transfer support to rss.exe (I'm not sure when exactly that will
>> happen).
>>
>
> I just like to give the users/testers more choices to focus on the tests.
> especially, for now it is a little hard to echo multiple files into guest.
>
> I am also looking forward to the new version of rss with file transfer
> functions.
>
> Thanks for your questions, buddy.
>
>
> Regards,
>
> Cao, Chen
> 2009/12/01
>
>>
>> > ---
>> > client/tests/kvm/kvm_tests.cfg.sample | 6 ++++
>> > client/tests/kvm/tests/autoit.py | 45
>> > ++++++++++++++++++++++----------
>> > 2 files changed, 37 insertions(+), 14 deletions(-)
>> >
>> > diff --git a/client/tests/kvm/kvm_tests.cfg.sample
>> > b/client/tests/kvm/kvm_tests.cfg.sample
>> > index 5e15b30..f688b97 100644
>> > --- a/client/tests/kvm/kvm_tests.cfg.sample
>> > +++ b/client/tests/kvm/kvm_tests.cfg.sample
>> > @@ -169,6 +169,12 @@ variants:
>> > variants:
>> > - notepad:
>> > autoit_script = autoit/notepad1.au3
>> > + - stub:
>> > + download = yes
>> > + download_cmd = "git clone"
>> > + rsc_server = "git://the.resource.server/autoit"
>> > + dst_rsc_dir = "C:\"
>> > + autoit_entry = "C:\autoit\stub\stub.au3"
>> >
>> > - guest_s4: install setup unattended_install
>> > type = guest_s4
>> > diff --git a/client/tests/kvm/tests/autoit.py
>> > b/client/tests/kvm/tests/autoit.py
>> > index 9435d7c..ed1d491 100644
>> > --- a/client/tests/kvm/tests/autoit.py
>> > +++ b/client/tests/kvm/tests/autoit.py
>> > @@ -25,23 +25,40 @@ def run_autoit(test, params, env):
>> > # Collect test parameters
>> > binary = params.get("autoit_binary")
>> > script = params.get("autoit_script")
>> > + autoit_entry = params.get("autoit_entry", "script.au3")
>> > script_params = params.get("autoit_script_params", "")
>> > timeout = float(params.get("autoit_script_timeout", 600))
>> >
>> > - # Send AutoIt script to guest (this code will be replaced
>> > once we
>> > - # support sending files to Windows guests)
>> > - session.get_command_output("del script.au3",
>> > internal_timeout=0)
>> > - file = open(kvm_utils.get_path(test.bindir, script))
>> > - for line in file.readlines():
>> > - # Insert a '^' before each character
>> > - line = "".join("^" + c for c in line.rstrip())
>> > - if line:
>> > - # Append line to the file
>> > - session.get_command_output("echo %s>>script.au3" %
>> > line,
>> > - internal_timeout=0)
>> > - file.close()
>> > -
>> > - command = "cmd /c %s script.au3 %s" % (binary,
>> > script_params)
>> > + # Download the script resource from a remote server, or
>> > + # prepare the script using rss?
>> > + if params.get("download") == "yes":
>> > + download_cmd = params.get("download_cmd")
>> > + rsc_server = params.get("rsc_server")
>> > + dst_rsc_dir = params.get("dst_rsc_dir")
>> > +
>> > + # Change dir to dst_rsc_dir, and remove 'autoit' there,
>> > then
>> > + # download the resource.
>> > + rsc_cmd = "cd %s && (rmdir /s /q autoit || del /s /q
>> > autoit) && " \
>> > + "%s %s" % (dst_rsc_dir, download_cmd,
>> > rsc_server)
>> > +
>> > + if session.get_command_status(rsc_cmd, timeout=timeout)
>> > != 0:
>> > + raise error.TestFail("Download test resource
>> > failed.")
>> > + logging.info("Download resource finished.")
>> > + else:
>> > + # Send AutoIt script to guest (this code will be replaced
>> > once we
>> > + # support sending files to Windows guests)
>> > + session.get_command_output("del script.au3",
>> > internal_timeout=0)
>> > + file = open(kvm_utils.get_path(test.bindir, script))
>> > + for line in file.readlines():
>> > + # Insert a '^' before each character
>> > + line = "".join("^" + c for c in line.rstrip())
>> > + if line:
>> > + # Append line to the file
>> > + session.get_command_output("echo %s>>script.au3"
>> > % line,
>> > + internal_timeout=0)
>> > + file.close()
>> > +
>> > + command = "cmd /c %s %s %s" % (binary, autoit_entry,
>> > script_params)
>> >
>> > logging.info("---------------- Script output
>> > ----------------")
>> > status = session.get_command_status(command,
>> > --
>> > 1.5.5.6
> _______________________________________________
> Autotest mailing list
> Autotest@test.kernel.org
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>
--
Lucas
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Autotest] [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server
2009-12-03 3:16 ` [Autotest] " Lucas Meneghel Rodrigues
@ 2009-12-03 6:39 ` Cao, Chen
2009-12-04 12:28 ` Lucas Meneghel Rodrigues
0 siblings, 1 reply; 6+ messages in thread
From: Cao, Chen @ 2009-12-03 6:39 UTC (permalink / raw)
To: Lucas Meneghel Rodrigues; +Cc: Michael Goldish, autotest, kvm
Hi, Lucas,
On Thu, Dec 03, 2009 at 01:16:27AM -0200, Lucas Meneghel Rodrigues wrote:
> Chen, I have verified your patch, code looks good, but I am indeed a
> bit concerned about putting extra requirements on winutils.iso. How
> hard it is to get git working under windows? I did some quick research
> and seems that we have a portable version of git that could be kept on
> winutils.iso for that matter. Please let me know how you guys are
> doing this.
>
We have had msysgit <http://code.google.com/p/msysgit/> pre-installed in
windows guests for internal testings, actually for a long time.
> So even though the generic idea looks fine, I am a bit concerned about
> the defaults you've put in, so I will wait for your considerations
> about how exactly we are planning to get git under the windows guests,
> OK?
I think the download method is just an option that frees the users.
and we do not require the defaults.
because if the users do not like the git way, they could use
rss.exe to echo/transfer the files into guests as we provide now,
however, they should do some preparations on host anyway,
i.e. put the scripts/resource files in the hosts
(using scp/git/svn/wget/nfs/any_other_way, which also demands
the pre-existance of extra tools).
if users like to try the download method, they can also use wget,
svn, or even ftp (with command file from the command line), we
just try to provide options but not limitations.
For your concerns, I think you mean to make autotest(kvm)
easy to use, and more user-friendly, but from my point of view,
it is very hard to let a user take actually advantages from the
autotest framework and the kvm subtests if s/he knows nothing or
very little about these.
Besides, I think the best argument for the download method is that
the rss.exe way does not meet the testing requirements.
our tests involve binary testing tools for floating point tests, for
example, and video/audio files for multimedia tests, and other
non-text files, which we cannot manage with only rss.exe, at least
for now.
So, I suggest we make our testcases more open.
Thanks for your review, advice and extra researching effort.
Regards,
Cao, Chen
2009/12/03
>
> On Tue, Dec 1, 2009 at 8:17 AM, Cao, Chen <kcao@redhat.com> wrote:
> > On Tue, Dec 01, 2009 at 02:49:43AM -0500, Michael Goldish wrote:
> >>
> >> ----- "Chen Cao" <kcao@redhat.com> wrote:
> >>
> >> > Add an option to let user download the .au3 script from a remote
> >> > server, and keep the original method to prepare the script.
> >> >
> >> > This makes it possible to employ AutoIt tests that involve several
> >> > files.
> >> >
> >> > new variants:
> >> > 1. download,
> >> > if params.get("download") == "yes", download the scripts to guest,
> >> > else use the original method, echo the code into guest.
> >> > 2. download_cmd,
> >> > What tool to use to download.
> >> > User can choose git, as in the sample file, svn, ftp, or wget,
> >> > or other preferred tools.
> >> > NOTE, this requires that the download tool is installed in the
> >> > guest, or the tools have been placed in winutils.iso.
> >> > 3. rsc_server,
> >> > Resource server which contains the AutoIt script
> >> > and provide a download service.
> >> > 4. dst_rsc_dir,
> >> > Destination of the AutoIt scripts in the guest.
> >> > i.e. the downloaded resource will be saved in this default dir.
> >> > 5. autoit_entry,
> >> > Which .au3 file to start to run.
> >> > this will be useful if a test involves several .au3 files.
> >> >
> >> > Signed-off-by: Cao, Chen <kcao@redhat.com>
> >>
> >> I haven't reviewed the code yet, but I have 2 quick questions:
> >>
> >> - If the files we'll be downloading are text files (.au3 files), then
> >> why not download them in the host and send them to the guest using
> >> the echo method? This imposes less requirements on the guest.
> >>
> >
> > downloading/preparing them in the host also requires extra effects
> > before the test.
> >
> > and we may also need testing tools, which are binary executables,
> > to aid our tests. then we have to wait for the improved rss.exe,
> > it is bad for the users/testers.
> >
> >> - Why not add the ability to send multiple files from the host to the
> >> guest, using the echo method, without downloading them?
> >>
> >> BTW, this echo method is meant to be used only until we add file
> >> transfer support to rss.exe (I'm not sure when exactly that will
> >> happen).
> >>
> >
> > I just like to give the users/testers more choices to focus on the tests.
> > especially, for now it is a little hard to echo multiple files into guest.
> >
> > I am also looking forward to the new version of rss with file transfer
> > functions.
> >
> > Thanks for your questions, buddy.
> >
> >
> > Regards,
> >
> > Cao, Chen
> > 2009/12/01
> >
> >>
> >> > ---
> >> > client/tests/kvm/kvm_tests.cfg.sample | 6 ++++
> >> > client/tests/kvm/tests/autoit.py | 45
> >> > ++++++++++++++++++++++----------
> >> > 2 files changed, 37 insertions(+), 14 deletions(-)
> >> >
> >> > diff --git a/client/tests/kvm/kvm_tests.cfg.sample
> >> > b/client/tests/kvm/kvm_tests.cfg.sample
> >> > index 5e15b30..f688b97 100644
> >> > --- a/client/tests/kvm/kvm_tests.cfg.sample
> >> > +++ b/client/tests/kvm/kvm_tests.cfg.sample
> >> > @@ -169,6 +169,12 @@ variants:
> >> > variants:
> >> > - notepad:
> >> > autoit_script = autoit/notepad1.au3
> >> > + - stub:
> >> > + download = yes
> >> > + download_cmd = "git clone"
> >> > + rsc_server = "git://the.resource.server/autoit"
> >> > + dst_rsc_dir = "C:\"
> >> > + autoit_entry = "C:\autoit\stub\stub.au3"
> >> >
> >> > - guest_s4: install setup unattended_install
> >> > type = guest_s4
> >> > diff --git a/client/tests/kvm/tests/autoit.py
> >> > b/client/tests/kvm/tests/autoit.py
> >> > index 9435d7c..ed1d491 100644
> >> > --- a/client/tests/kvm/tests/autoit.py
> >> > +++ b/client/tests/kvm/tests/autoit.py
> >> > @@ -25,23 +25,40 @@ def run_autoit(test, params, env):
> >> > # Collect test parameters
> >> > binary = params.get("autoit_binary")
> >> > script = params.get("autoit_script")
> >> > + autoit_entry = params.get("autoit_entry", "script.au3")
> >> > script_params = params.get("autoit_script_params", "")
> >> > timeout = float(params.get("autoit_script_timeout", 600))
> >> >
> >> > - # Send AutoIt script to guest (this code will be replaced
> >> > once we
> >> > - # support sending files to Windows guests)
> >> > - session.get_command_output("del script.au3",
> >> > internal_timeout=0)
> >> > - file = open(kvm_utils.get_path(test.bindir, script))
> >> > - for line in file.readlines():
> >> > - # Insert a '^' before each character
> >> > - line = "".join("^" + c for c in line.rstrip())
> >> > - if line:
> >> > - # Append line to the file
> >> > - session.get_command_output("echo %s>>script.au3" %
> >> > line,
> >> > - internal_timeout=0)
> >> > - file.close()
> >> > -
> >> > - command = "cmd /c %s script.au3 %s" % (binary,
> >> > script_params)
> >> > + # Download the script resource from a remote server, or
> >> > + # prepare the script using rss?
> >> > + if params.get("download") == "yes":
> >> > + download_cmd = params.get("download_cmd")
> >> > + rsc_server = params.get("rsc_server")
> >> > + dst_rsc_dir = params.get("dst_rsc_dir")
> >> > +
> >> > + # Change dir to dst_rsc_dir, and remove 'autoit' there,
> >> > then
> >> > + # download the resource.
> >> > + rsc_cmd = "cd %s && (rmdir /s /q autoit || del /s /q
> >> > autoit) && " \
> >> > + "%s %s" % (dst_rsc_dir, download_cmd,
> >> > rsc_server)
> >> > +
> >> > + if session.get_command_status(rsc_cmd, timeout=timeout)
> >> > != 0:
> >> > + raise error.TestFail("Download test resource
> >> > failed.")
> >> > + logging.info("Download resource finished.")
> >> > + else:
> >> > + # Send AutoIt script to guest (this code will be replaced
> >> > once we
> >> > + # support sending files to Windows guests)
> >> > + session.get_command_output("del script.au3",
> >> > internal_timeout=0)
> >> > + file = open(kvm_utils.get_path(test.bindir, script))
> >> > + for line in file.readlines():
> >> > + # Insert a '^' before each character
> >> > + line = "".join("^" + c for c in line.rstrip())
> >> > + if line:
> >> > + # Append line to the file
> >> > + session.get_command_output("echo %s>>script.au3"
> >> > % line,
> >> > + internal_timeout=0)
> >> > + file.close()
> >> > +
> >> > + command = "cmd /c %s %s %s" % (binary, autoit_entry,
> >> > script_params)
> >> >
> >> > logging.info("---------------- Script output
> >> > ----------------")
> >> > status = session.get_command_status(command,
> >> > --
> >> > 1.5.5.6
> > _______________________________________________
> > Autotest mailing list
> > Autotest@test.kernel.org
> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
> >
>
>
>
> --
> Lucas
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Autotest] [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server
2009-12-03 6:39 ` Cao, Chen
@ 2009-12-04 12:28 ` Lucas Meneghel Rodrigues
0 siblings, 0 replies; 6+ messages in thread
From: Lucas Meneghel Rodrigues @ 2009-12-04 12:28 UTC (permalink / raw)
To: Cao, Chen; +Cc: autotest, kvm
Ok, fair enough, applied! Thanks Chen
On Thu, Dec 3, 2009 at 4:39 AM, Cao, Chen <kcao@redhat.com> wrote:
> Hi, Lucas,
>
> On Thu, Dec 03, 2009 at 01:16:27AM -0200, Lucas Meneghel Rodrigues wrote:
>> Chen, I have verified your patch, code looks good, but I am indeed a
>> bit concerned about putting extra requirements on winutils.iso. How
>> hard it is to get git working under windows? I did some quick research
>> and seems that we have a portable version of git that could be kept on
>> winutils.iso for that matter. Please let me know how you guys are
>> doing this.
>>
>
> We have had msysgit <http://code.google.com/p/msysgit/> pre-installed in
> windows guests for internal testings, actually for a long time.
>
>> So even though the generic idea looks fine, I am a bit concerned about
>> the defaults you've put in, so I will wait for your considerations
>> about how exactly we are planning to get git under the windows guests,
>> OK?
>
> I think the download method is just an option that frees the users.
> and we do not require the defaults.
>
> because if the users do not like the git way, they could use
> rss.exe to echo/transfer the files into guests as we provide now,
> however, they should do some preparations on host anyway,
> i.e. put the scripts/resource files in the hosts
> (using scp/git/svn/wget/nfs/any_other_way, which also demands
> the pre-existance of extra tools).
>
> if users like to try the download method, they can also use wget,
> svn, or even ftp (with command file from the command line), we
> just try to provide options but not limitations.
>
>
> For your concerns, I think you mean to make autotest(kvm)
> easy to use, and more user-friendly, but from my point of view,
> it is very hard to let a user take actually advantages from the
> autotest framework and the kvm subtests if s/he knows nothing or
> very little about these.
>
>
> Besides, I think the best argument for the download method is that
> the rss.exe way does not meet the testing requirements.
> our tests involve binary testing tools for floating point tests, for
> example, and video/audio files for multimedia tests, and other
> non-text files, which we cannot manage with only rss.exe, at least
> for now.
>
> So, I suggest we make our testcases more open.
>
>
> Thanks for your review, advice and extra researching effort.
>
>
> Regards,
>
> Cao, Chen
> 2009/12/03
>
>>
>> On Tue, Dec 1, 2009 at 8:17 AM, Cao, Chen <kcao@redhat.com> wrote:
>> > On Tue, Dec 01, 2009 at 02:49:43AM -0500, Michael Goldish wrote:
>> >>
>> >> ----- "Chen Cao" <kcao@redhat.com> wrote:
>> >>
>> >> > Add an option to let user download the .au3 script from a remote
>> >> > server, and keep the original method to prepare the script.
>> >> >
>> >> > This makes it possible to employ AutoIt tests that involve several
>> >> > files.
>> >> >
>> >> > new variants:
>> >> > 1. download,
>> >> > if params.get("download") == "yes", download the scripts to guest,
>> >> > else use the original method, echo the code into guest.
>> >> > 2. download_cmd,
>> >> > What tool to use to download.
>> >> > User can choose git, as in the sample file, svn, ftp, or wget,
>> >> > or other preferred tools.
>> >> > NOTE, this requires that the download tool is installed in the
>> >> > guest, or the tools have been placed in winutils.iso.
>> >> > 3. rsc_server,
>> >> > Resource server which contains the AutoIt script
>> >> > and provide a download service.
>> >> > 4. dst_rsc_dir,
>> >> > Destination of the AutoIt scripts in the guest.
>> >> > i.e. the downloaded resource will be saved in this default dir.
>> >> > 5. autoit_entry,
>> >> > Which .au3 file to start to run.
>> >> > this will be useful if a test involves several .au3 files.
>> >> >
>> >> > Signed-off-by: Cao, Chen <kcao@redhat.com>
>> >>
>> >> I haven't reviewed the code yet, but I have 2 quick questions:
>> >>
>> >> - If the files we'll be downloading are text files (.au3 files), then
>> >> why not download them in the host and send them to the guest using
>> >> the echo method? This imposes less requirements on the guest.
>> >>
>> >
>> > downloading/preparing them in the host also requires extra effects
>> > before the test.
>> >
>> > and we may also need testing tools, which are binary executables,
>> > to aid our tests. then we have to wait for the improved rss.exe,
>> > it is bad for the users/testers.
>> >
>> >> - Why not add the ability to send multiple files from the host to the
>> >> guest, using the echo method, without downloading them?
>> >>
>> >> BTW, this echo method is meant to be used only until we add file
>> >> transfer support to rss.exe (I'm not sure when exactly that will
>> >> happen).
>> >>
>> >
>> > I just like to give the users/testers more choices to focus on the tests.
>> > especially, for now it is a little hard to echo multiple files into guest.
>> >
>> > I am also looking forward to the new version of rss with file transfer
>> > functions.
>> >
>> > Thanks for your questions, buddy.
>> >
>> >
>> > Regards,
>> >
>> > Cao, Chen
>> > 2009/12/01
>> >
>> >>
>> >> > ---
>> >> > client/tests/kvm/kvm_tests.cfg.sample | 6 ++++
>> >> > client/tests/kvm/tests/autoit.py | 45
>> >> > ++++++++++++++++++++++----------
>> >> > 2 files changed, 37 insertions(+), 14 deletions(-)
>> >> >
>> >> > diff --git a/client/tests/kvm/kvm_tests.cfg.sample
>> >> > b/client/tests/kvm/kvm_tests.cfg.sample
>> >> > index 5e15b30..f688b97 100644
>> >> > --- a/client/tests/kvm/kvm_tests.cfg.sample
>> >> > +++ b/client/tests/kvm/kvm_tests.cfg.sample
>> >> > @@ -169,6 +169,12 @@ variants:
>> >> > variants:
>> >> > - notepad:
>> >> > autoit_script = autoit/notepad1.au3
>> >> > + - stub:
>> >> > + download = yes
>> >> > + download_cmd = "git clone"
>> >> > + rsc_server = "git://the.resource.server/autoit"
>> >> > + dst_rsc_dir = "C:\"
>> >> > + autoit_entry = "C:\autoit\stub\stub.au3"
>> >> >
>> >> > - guest_s4: install setup unattended_install
>> >> > type = guest_s4
>> >> > diff --git a/client/tests/kvm/tests/autoit.py
>> >> > b/client/tests/kvm/tests/autoit.py
>> >> > index 9435d7c..ed1d491 100644
>> >> > --- a/client/tests/kvm/tests/autoit.py
>> >> > +++ b/client/tests/kvm/tests/autoit.py
>> >> > @@ -25,23 +25,40 @@ def run_autoit(test, params, env):
>> >> > # Collect test parameters
>> >> > binary = params.get("autoit_binary")
>> >> > script = params.get("autoit_script")
>> >> > + autoit_entry = params.get("autoit_entry", "script.au3")
>> >> > script_params = params.get("autoit_script_params", "")
>> >> > timeout = float(params.get("autoit_script_timeout", 600))
>> >> >
>> >> > - # Send AutoIt script to guest (this code will be replaced
>> >> > once we
>> >> > - # support sending files to Windows guests)
>> >> > - session.get_command_output("del script.au3",
>> >> > internal_timeout=0)
>> >> > - file = open(kvm_utils.get_path(test.bindir, script))
>> >> > - for line in file.readlines():
>> >> > - # Insert a '^' before each character
>> >> > - line = "".join("^" + c for c in line.rstrip())
>> >> > - if line:
>> >> > - # Append line to the file
>> >> > - session.get_command_output("echo %s>>script.au3" %
>> >> > line,
>> >> > - internal_timeout=0)
>> >> > - file.close()
>> >> > -
>> >> > - command = "cmd /c %s script.au3 %s" % (binary,
>> >> > script_params)
>> >> > + # Download the script resource from a remote server, or
>> >> > + # prepare the script using rss?
>> >> > + if params.get("download") == "yes":
>> >> > + download_cmd = params.get("download_cmd")
>> >> > + rsc_server = params.get("rsc_server")
>> >> > + dst_rsc_dir = params.get("dst_rsc_dir")
>> >> > +
>> >> > + # Change dir to dst_rsc_dir, and remove 'autoit' there,
>> >> > then
>> >> > + # download the resource.
>> >> > + rsc_cmd = "cd %s && (rmdir /s /q autoit || del /s /q
>> >> > autoit) && " \
>> >> > + "%s %s" % (dst_rsc_dir, download_cmd,
>> >> > rsc_server)
>> >> > +
>> >> > + if session.get_command_status(rsc_cmd, timeout=timeout)
>> >> > != 0:
>> >> > + raise error.TestFail("Download test resource
>> >> > failed.")
>> >> > + logging.info("Download resource finished.")
>> >> > + else:
>> >> > + # Send AutoIt script to guest (this code will be replaced
>> >> > once we
>> >> > + # support sending files to Windows guests)
>> >> > + session.get_command_output("del script.au3",
>> >> > internal_timeout=0)
>> >> > + file = open(kvm_utils.get_path(test.bindir, script))
>> >> > + for line in file.readlines():
>> >> > + # Insert a '^' before each character
>> >> > + line = "".join("^" + c for c in line.rstrip())
>> >> > + if line:
>> >> > + # Append line to the file
>> >> > + session.get_command_output("echo %s>>script.au3"
>> >> > % line,
>> >> > + internal_timeout=0)
>> >> > + file.close()
>> >> > +
>> >> > + command = "cmd /c %s %s %s" % (binary, autoit_entry,
>> >> > script_params)
>> >> >
>> >> > logging.info("---------------- Script output
>> >> > ----------------")
>> >> > status = session.get_command_status(command,
>> >> > --
>> >> > 1.5.5.6
>> > _______________________________________________
>> > Autotest mailing list
>> > Autotest@test.kernel.org
>> > http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>> >
>>
>>
>>
>> --
>> Lucas
> _______________________________________________
> Autotest mailing list
> Autotest@test.kernel.org
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>
--
Lucas
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-12-04 12:28 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-01 7:16 [KVM-AUTOTEST PATCH] Improve kvm subtest AutoIt - add option to download script from remote server Cao, Chen
2009-12-01 7:49 ` Michael Goldish
2009-12-01 10:17 ` Cao, Chen
2009-12-03 3:16 ` [Autotest] " Lucas Meneghel Rodrigues
2009-12-03 6:39 ` Cao, Chen
2009-12-04 12:28 ` Lucas Meneghel Rodrigues
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox