[libvirt] [test-API PATCH] Added screenshot test

Guannan Ren gren at redhat.com
Wed Apr 4 11:23:27 UTC 2012


On 04/04/2012 06:30 PM, Martin Kletzander wrote:
> On 04/04/2012 07:13 AM, Guannan Ren wrote:
>>
>>        Hi
>>
>>           Currently, the testcase parser supports to cleanup testing
>> environment
>>           after each testcase finished. we only need to add a flag
>> command 'clean'
>>           after each testcase in testcase config, for example:
>>
>>                        ...
>>                        domain:screenshot
>>                            guestname
>>                                rhel6
>>                            filename
>>                                /tmp/filescreen
>>                            screen
>>                                0
>>                        clean
>>
>>                        domain: start
>>                             guestname
>>                        ...
>>
>>
>>           the 'clean' flag will make the framework invoke the function
>> named screenshot_clean
>>           in screenshot.py.  That means each testcase needs two mandatory
>> functions, one is the
>>           main function, the other is main function name with '_clean'
>> appended.
>>           So I send a patch for this testcase as an example.  According
>> to the above testcase config
>>           the '/tmp/filescreen.ppm' file will be removed after running.
>>           There are some other flags, I need to update the documentation
>> sooner:)
>>
>> ---
>>   repos/domain/screenshot.py |    5 +++++
>>   1 files changed, 5 insertions(+), 0 deletions(-)
>>
>> diff --git a/repos/domain/screenshot.py b/repos/domain/screenshot.py
>> index 9986cab..eeda2b5 100644
>> --- a/repos/domain/screenshot.py
>> +++ b/repos/domain/screenshot.py
>> @@ -55,3 +55,8 @@ def screenshot(params):
>>               conn.close()
>>
>>       return ret
>> +
>> +def screenshot_clean(params):
>> +    """clean testing environment"""
>> +    filename = params['filename']
>> +    os.system('rm -f %s.*' % filename)
> The extension can be different every time, so we have to check that. I'd
> prefer something like this:
>
> diff --git a/repos/domain/screenshot.py b/repos/domain/screenshot.py
> index 9986cab..c620085 100644
> --- a/repos/domain/screenshot.py
> +++ b/repos/domain/screenshot.py
> @@ -39,8 +39,8 @@ def screenshot(params):
>           st = conn.newStream(0)
>           mime = dom.screenshot(st, params['screen'], 0)
>
> -        ext = mimetypes.guess_extension(mime) or '.ppm'
> -        filename = params['filename'] + ext
> +        params['ext'] = mimetypes.guess_extension(mime) or '.ppm'


                  This modification on params couldn't be passed in 
screenshot_clean()
                  The params to screenshot_clean() is the same as the 
screenshot() which
                  is from testcase config file.


> +        filename = params['filename'] + params['ext']
>           f = file(filename, 'w')
>
>           logger.debug('Saving screenshot into %s' % filename)
> @@ -55,3 +55,8 @@ def screenshot(params):
>               conn.close()
>
>       return ret
> +
> +def screenshot_clean(params):
> +    """clean testing environment"""
> +    filename = params['filename'] + params['ext']
> +    os.remove(filename)




More information about the libvir-list mailing list