Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
avocado
提交
960ff725
A
avocado
项目概览
openeuler
/
avocado
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
avocado
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
960ff725
编写于
10月 01, 2014
作者:
L
Lucas Meneghel Rodrigues
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
selftests/functional: Add new output check tests
Signed-off-by:
N
Lucas Meneghel Rodrigues
<
lmr@redhat.com
>
上级
397536ae
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
126 addition
and
0 deletion
+126
-0
selftests/all/functional/avocado/output_check_tests.py
selftests/all/functional/avocado/output_check_tests.py
+126
-0
未找到文件。
selftests/all/functional/avocado/output_check_tests.py
0 → 100644
浏览文件 @
960ff725
#!/usr/bin/env python
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# See LICENSE for more details.
#
# Copyright: Red Hat Inc. 2013-2014
# Author: Lucas Meneghel Rodrigues <lmr@redhat.com>
import
os
import
shutil
import
sys
import
tempfile
import
unittest
# simple magic for using scripts within a source tree
basedir
=
os
.
path
.
join
(
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
)),
'..'
,
'..'
,
'..'
,
'..'
)
basedir
=
os
.
path
.
abspath
(
basedir
)
if
os
.
path
.
isdir
(
os
.
path
.
join
(
basedir
,
'avocado'
)):
sys
.
path
.
append
(
basedir
)
from
avocado.utils
import
process
OUTPUT_SCRIPT_CONTENTS
=
"""#!/bin/sh
echo "Hello, avocado!"
"""
class
RunnerDropinTest
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
base_logdir
=
tempfile
.
mkdtemp
(
prefix
=
'avocado_output_check_functional'
)
self
.
output_script
=
os
.
path
.
join
(
self
.
base_logdir
,
'output_check.sh'
)
with
open
(
self
.
output_script
,
'w'
)
as
output_script_obj
:
output_script_obj
.
write
(
OUTPUT_SCRIPT_CONTENTS
)
os
.
chmod
(
self
.
output_script
,
0775
)
def
test_output_record_none
(
self
):
os
.
chdir
(
basedir
)
cmd_line
=
'./scripts/avocado run %s --output-check-record none'
%
self
.
output_script
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_rc
=
0
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
stdout_file
=
os
.
path
.
join
(
"%s.data/stdout.expected"
%
self
.
output_script
)
stderr_file
=
os
.
path
.
join
(
"%s.data/stderr.expected"
%
self
.
output_script
)
self
.
assertFalse
(
os
.
path
.
isfile
(
stdout_file
))
self
.
assertFalse
(
os
.
path
.
isfile
(
stderr_file
))
def
test_output_record_stdout
(
self
):
os
.
chdir
(
basedir
)
cmd_line
=
'./scripts/avocado run %s --output-check-record stdout'
%
self
.
output_script
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_rc
=
0
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
stdout_file
=
os
.
path
.
join
(
"%s.data/stdout.expected"
%
self
.
output_script
)
stderr_file
=
os
.
path
.
join
(
"%s.data/stderr.expected"
%
self
.
output_script
)
self
.
assertTrue
(
os
.
path
.
isfile
(
stdout_file
))
self
.
assertFalse
(
os
.
path
.
isfile
(
stderr_file
))
def
test_output_record_all
(
self
):
os
.
chdir
(
basedir
)
cmd_line
=
'./scripts/avocado run %s --output-check-record all'
%
self
.
output_script
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_rc
=
0
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
stdout_file
=
os
.
path
.
join
(
"%s.data/stdout.expected"
%
self
.
output_script
)
stderr_file
=
os
.
path
.
join
(
"%s.data/stderr.expected"
%
self
.
output_script
)
self
.
assertTrue
(
os
.
path
.
isfile
(
stdout_file
))
self
.
assertTrue
(
os
.
path
.
isfile
(
stderr_file
))
def
test_output_record_and_check
(
self
):
self
.
test_output_record_all
()
cmd_line
=
'./scripts/avocado run %s'
%
self
.
output_script
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_rc
=
0
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
def
test_output_tamper_stdout
(
self
):
self
.
test_output_record_all
()
tampered_msg
=
"I PITY THE FOOL THAT STANDS ON MY WAY!"
stdout_file
=
os
.
path
.
join
(
"%s.data/stdout.expected"
%
self
.
output_script
)
with
open
(
stdout_file
,
'w'
)
as
stdout_file_obj
:
stdout_file_obj
.
write
(
tampered_msg
)
cmd_line
=
'./scripts/avocado run %s --xunit -'
%
self
.
output_script
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_rc
=
1
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
self
.
assertIn
(
tampered_msg
,
result
.
stdout
)
def
test_disable_output_check
(
self
):
self
.
test_output_record_all
()
tampered_msg
=
"I PITY THE FOOL THAT STANDS ON MY WAY!"
stdout_file
=
os
.
path
.
join
(
"%s.data/stdout.expected"
%
self
.
output_script
)
with
open
(
stdout_file
,
'w'
)
as
stdout_file_obj
:
stdout_file_obj
.
write
(
tampered_msg
)
cmd_line
=
'./scripts/avocado run %s --disable-output-check --xunit -'
%
self
.
output_script
result
=
process
.
run
(
cmd_line
,
ignore_status
=
True
)
expected_rc
=
0
self
.
assertEqual
(
result
.
exit_status
,
expected_rc
,
"Avocado did not return rc %d:
\n
%s"
%
(
expected_rc
,
result
))
self
.
assertNotIn
(
tampered_msg
,
result
.
stdout
)
def
tearDown
(
self
):
if
os
.
path
.
isdir
(
self
.
base_logdir
):
shutil
.
rmtree
(
self
.
base_logdir
,
ignore_errors
=
True
)
if
__name__
==
'__main__'
:
unittest
.
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录