Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
avocado
提交
2303ef2c
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,发现更多精彩内容 >>
提交
2303ef2c
编写于
10月 04, 2015
作者:
L
Lucas Meneghel Rodrigues
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #819 from lmr/ldoktor-logdir
avocado.core.data_dir: Make logdir creation safer [v3]
上级
2064f82a
8f24117d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
40 addition
and
3 deletion
+40
-3
avocado/core/data_dir.py
avocado/core/data_dir.py
+19
-3
selftests/unit/test_datadir.py
selftests/unit/test_datadir.py
+21
-0
未找到文件。
avocado/core/data_dir.py
浏览文件 @
2303ef2c
...
...
@@ -213,13 +213,29 @@ def create_job_logs_dir(logdir=None, unique_id=None):
start_time
=
time
.
strftime
(
'%Y-%m-%dT%H.%M'
)
if
logdir
is
None
:
logdir
=
get_logs_dir
()
if
not
os
.
path
.
exists
(
logdir
):
utils_path
.
init_dir
(
logdir
)
# Stand alone tests handling
if
unique_id
is
None
:
unique_id
=
job_id
.
create_unique_job_id
()
debugbase
=
'job-%s-%s'
%
(
start_time
,
unique_id
[:
7
])
debugdir
=
utils_path
.
init_dir
(
logdir
,
debugbase
)
return
debugdir
debugdir
=
os
.
path
.
join
(
logdir
,
'job-%s-%s'
%
(
start_time
,
unique_id
[:
7
]))
for
i
in
xrange
(
7
,
len
(
unique_id
)):
try
:
os
.
mkdir
(
debugdir
)
except
OSError
:
debugdir
+=
unique_id
[
i
]
continue
return
debugdir
debugdir
+=
"."
for
i
in
xrange
(
1000
):
try
:
os
.
mkdir
(
debugdir
+
str
(
i
))
except
OSError
:
continue
return
debugdir
+
str
(
i
)
raise
IOError
(
"Unable to create unique logdir in 1000 iterations: %s"
%
(
debugdir
))
class
_TmpDirTracker
(
Borg
):
...
...
selftests/unit/test_datadir.py
浏览文件 @
2303ef2c
...
...
@@ -52,6 +52,27 @@ class DataDirTest(unittest.TestCase):
reload
(
data_dir
)
del
data_dir
def
testUniqueLogDir
(
self
):
"""
Tests that multiple queries for a logdir at the same time provides
unique results.
"""
from
avocado.core
import
data_dir
flexmock
(
data_dir
.
time
).
should_receive
(
'strftime'
).
and_return
(
"date"
)
logdir
=
os
.
path
.
join
(
self
.
mapping
[
'base_dir'
],
"foor"
,
"bar"
,
"baz"
)
path_prefix
=
os
.
path
.
join
(
logdir
,
"job-date-"
)
uid
=
"1234567890"
*
4
for
i
in
xrange
(
7
,
40
):
path
=
data_dir
.
create_job_logs_dir
(
logdir
,
uid
)
self
.
assertEqual
(
path
,
path_prefix
+
uid
[:
i
])
self
.
assertTrue
(
os
.
path
.
exists
(
path
))
path
=
data_dir
.
create_job_logs_dir
(
logdir
,
uid
)
self
.
assertEqual
(
path
,
path_prefix
+
uid
+
".0"
)
self
.
assertTrue
(
os
.
path
.
exists
(
path
))
path
=
data_dir
.
create_job_logs_dir
(
logdir
,
uid
)
self
.
assertEqual
(
path
,
path_prefix
+
uid
+
".1"
)
self
.
assertTrue
(
os
.
path
.
exists
(
path
))
def
tearDown
(
self
):
os
.
unlink
(
self
.
config_file
.
name
)
shutil
.
rmtree
(
self
.
mapping
[
'base_dir'
])
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录