Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle
提交
e63a68fe
P
Paddle
项目概览
PaddlePaddle
/
Paddle
大约 1 年 前同步成功
通知
2299
Star
20931
Fork
5422
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1423
列表
看板
标记
里程碑
合并请求
543
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1,423
Issue
1,423
列表
看板
标记
里程碑
合并请求
543
合并请求
543
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
e63a68fe
编写于
12月 20, 2020
作者:
C
chalsliu
提交者:
GitHub
12月 20, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Retry when download failed for precision test
上级
07790ba1
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
83 addition
and
32 deletion
+83
-32
paddle/scripts/paddle_build.sh
paddle/scripts/paddle_build.sh
+9
-3
tools/check_added_ut.sh
tools/check_added_ut.sh
+8
-5
tools/coverage/paddle_coverage.sh
tools/coverage/paddle_coverage.sh
+10
-10
tools/get_pr_ut.py
tools/get_pr_ut.py
+56
-14
未找到文件。
paddle/scripts/paddle_build.sh
浏览文件 @
e63a68fe
...
@@ -1044,12 +1044,17 @@ function parallel_test_base_gpu() {
...
@@ -1044,12 +1044,17 @@ function parallel_test_base_gpu() {
========================================
========================================
EOF
EOF
set
+
x
set
-
x
precison_cases
=
""
precison_cases
=
""
bash
$PADDLE_ROOT
/tools/check_added_ut.sh
if
[
${
PRECISION_TEST
:-
OFF
}
==
"ON"
]
;
then
if
[
${
PRECISION_TEST
:-
OFF
}
==
"ON"
]
;
then
precision_cases
=
`
python
$PADDLE_ROOT
/tools/get_pr_ut.py
`
python3.7
$PADDLE_ROOT
/tools/get_pr_ut.py
if
[[
-f
"ut_list"
]]
;
then
set
+x
precision_cases
=
`
cat
ut_list
`
set
-x
fi
fi
fi
bash
$PADDLE_ROOT
/tools/check_added_ut.sh
if
[
-a
"
$PADDLE_ROOT
/added_ut"
]
;
then
if
[
-a
"
$PADDLE_ROOT
/added_ut"
]
;
then
added_uts
=
^
$(
awk
BEGIN
{
RS
=
EOF
}
'{gsub(/\n/,"$|^");print}'
$PADDLE_ROOT
/added_ut
)
$
added_uts
=
^
$(
awk
BEGIN
{
RS
=
EOF
}
'{gsub(/\n/,"$|^");print}'
$PADDLE_ROOT
/added_ut
)
$
ctest
-R
"(
${
added_uts
}
)"
--output-on-failure
--repeat-until-fail
3
--timeout
15
;
added_ut_error
=
$?
ctest
-R
"(
${
added_uts
}
)"
--output-on-failure
--repeat-until-fail
3
--timeout
15
;
added_ut_error
=
$?
...
@@ -1060,6 +1065,7 @@ set +x
...
@@ -1060,6 +1065,7 @@ set +x
exit
8
;
exit
8
;
fi
fi
fi
fi
set
+x
EXIT_CODE
=
0
;
EXIT_CODE
=
0
;
test_cases
=
$(
ctest
-N
-V
)
# get all test cases
test_cases
=
$(
ctest
-N
-V
)
# get all test cases
exclusive_tests
=
''
# cases list which would be run exclusively
exclusive_tests
=
''
# cases list which would be run exclusively
...
...
tools/check_added_ut.sh
浏览文件 @
e63a68fe
...
@@ -14,7 +14,8 @@
...
@@ -14,7 +14,8 @@
# See the License for the specific language governing permissions and
# See the License for the specific language governing permissions and
# limitations under the License.
# limitations under the License.
set
-e
set
+e
set
-x
if
[
-z
${
BRANCH
}
]
;
then
if
[
-z
${
BRANCH
}
]
;
then
BRANCH
=
"develop"
BRANCH
=
"develop"
fi
fi
...
@@ -25,6 +26,7 @@ CURDIR=`pwd`
...
@@ -25,6 +26,7 @@ CURDIR=`pwd`
cd
$PADDLE_ROOT
cd
$PADDLE_ROOT
cp
$PADDLE_ROOT
/paddle/scripts/paddle_build.sh
$PADDLE_ROOT
/paddle/scripts/paddle_build_pre.sh
cp
$PADDLE_ROOT
/paddle/scripts/paddle_build.sh
$PADDLE_ROOT
/paddle/scripts/paddle_build_pre.sh
CURBRANCH
=
`
git rev-parse
--abbrev-ref
HEAD
`
CURBRANCH
=
`
git rev-parse
--abbrev-ref
HEAD
`
echo
$CURBRANCH
git checkout
-b
prec_added_ut upstream/
${
BRANCH
}
git checkout
-b
prec_added_ut upstream/
${
BRANCH
}
mkdir
prec_build
mkdir
prec_build
cd
prec_build
cd
prec_build
...
@@ -32,13 +34,14 @@ bash $PADDLE_ROOT/paddle/scripts/paddle_build_pre.sh cmake_gen_in_current_dir >p
...
@@ -32,13 +34,14 @@ bash $PADDLE_ROOT/paddle/scripts/paddle_build_pre.sh cmake_gen_in_current_dir >p
ctest
-N
|
awk
-F
':'
'{print $2}'
|
sed
'/^$/d'
|
sed
'$d'
|
sed
's/ //g'
>
/
$PADDLE_ROOT
/br-ut
ctest
-N
|
awk
-F
':'
'{print $2}'
|
sed
'/^$/d'
|
sed
'$d'
|
sed
's/ //g'
>
/
$PADDLE_ROOT
/br-ut
cd
$PADDLE_ROOT
/build
cd
$PADDLE_ROOT
/build
ctest
-N
|
awk
-F
':'
'{print $2}'
|
sed
'/^$/d'
|
sed
'$d'
|
sed
's/ //g'
>
/
$PADDLE_ROOT
/pr-ut
ctest
-N
|
awk
-F
':'
'{print $2}'
|
sed
'/^$/d'
|
sed
'$d'
|
sed
's/ //g'
>
/
$PADDLE_ROOT
/pr-ut
cd
/
$PADDLE_ROOT
cd
$PADDLE_ROOT
grep
-F
-x
-v
-f
br-ut pr-ut
>
/
$PADDLE_ROOT
/added_ut
grep
-F
-x
-v
-f
br-ut pr-ut
>
$PADDLE_ROOT
/added_ut
echo
"New-UT:"
echo
"New-UT:"
cat
/
$PADDLE_ROOT
/added_ut
cat
$PADDLE_ROOT
/added_ut
rm
-rf
prec_build
rm
-rf
prec_build
rm
/
$PADDLE_ROOT
/br-ut /
$PADDLE_ROOT
/pr-ut
$PADDLE_ROOT
/paddle/scripts/paddle_build_pre.sh
rm
$PADDLE_ROOT
/br-ut
$PADDLE_ROOT
/pr-ut
$PADDLE_ROOT
/paddle/scripts/paddle_build_pre.sh
git checkout
$CURBRANCH
git checkout
$CURBRANCH
echo
$CURBRANCH
git branch
-D
prec_added_ut
git branch
-D
prec_added_ut
cd
$CURDIR
cd
$CURDIR
export
CI_SKIP_CPP_TEST
=
export
CI_SKIP_CPP_TEST
=
tools/coverage/paddle_coverage.sh
浏览文件 @
e63a68fe
...
@@ -28,7 +28,7 @@ make install
...
@@ -28,7 +28,7 @@ make install
cd
/paddle/build
cd
/paddle/build
python3
${
PADDLE_ROOT
}
/tools/coverage/gcda_clean.py
${
GIT_PR_ID
}
python3
.7
${
PADDLE_ROOT
}
/tools/coverage/gcda_clean.py
${
GIT_PR_ID
}
lcov
--capture
-d
./
-o
coverage.info
--rc
lcov_branch_coverage
=
0
lcov
--capture
-d
./
-o
coverage.info
--rc
lcov_branch_coverage
=
0
...
@@ -67,9 +67,9 @@ gen_full_html_report || true
...
@@ -67,9 +67,9 @@ gen_full_html_report || true
function
gen_diff_html_report
()
{
function
gen_diff_html_report
()
{
if
[
"
${
GIT_PR_ID
}
"
!=
""
]
;
then
if
[
"
${
GIT_PR_ID
}
"
!=
""
]
;
then
COVERAGE_DIFF_PATTERN
=
"
`
python3
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py files
${
GIT_PR_ID
}
`
"
COVERAGE_DIFF_PATTERN
=
"
`
python3
.7
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py files
${
GIT_PR_ID
}
`
"
python3
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py diff
${
GIT_PR_ID
}
>
git-diff.out
python3
.7
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py diff
${
GIT_PR_ID
}
>
git-diff.out
fi
fi
lcov
--extract
coverage-full.info
\
lcov
--extract
coverage-full.info
\
...
@@ -77,7 +77,7 @@ function gen_diff_html_report() {
...
@@ -77,7 +77,7 @@ function gen_diff_html_report() {
-o
coverage-diff.info
\
-o
coverage-diff.info
\
--rc
lcov_branch_coverage
=
0
--rc
lcov_branch_coverage
=
0
python3
${
PADDLE_ROOT
}
/tools/coverage/coverage_diff.py coverage-diff.info git-diff.out
>
coverage-diff.tmp
python3
.7
${
PADDLE_ROOT
}
/tools/coverage/coverage_diff.py coverage-diff.info git-diff.out
>
coverage-diff.tmp
mv
-f
coverage-diff.tmp coverage-diff.info
mv
-f
coverage-diff.tmp coverage-diff.info
...
@@ -96,7 +96,7 @@ set -x
...
@@ -96,7 +96,7 @@ set -x
coverage xml
-i
-o
python-coverage.xml
coverage xml
-i
-o
python-coverage.xml
python3
${
PADDLE_ROOT
}
/tools/coverage/python_coverage.py
>
python-coverage.info
python3
.7
${
PADDLE_ROOT
}
/tools/coverage/python_coverage.py
>
python-coverage.info
# python full html report
# python full html report
#
#
...
@@ -122,9 +122,9 @@ gen_python_full_html_report || true
...
@@ -122,9 +122,9 @@ gen_python_full_html_report || true
function
gen_python_diff_html_report
()
{
function
gen_python_diff_html_report
()
{
if
[
"
${
GIT_PR_ID
}
"
!=
""
]
;
then
if
[
"
${
GIT_PR_ID
}
"
!=
""
]
;
then
COVERAGE_DIFF_PATTERN
=
"
`
python
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py files
${
GIT_PR_ID
}
`
"
COVERAGE_DIFF_PATTERN
=
"
`
python
3.7
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py files
${
GIT_PR_ID
}
`
"
python
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py diff
${
GIT_PR_ID
}
>
python-git-diff.out
python
3.7
${
PADDLE_ROOT
}
/tools/coverage/pull_request.py diff
${
GIT_PR_ID
}
>
python-git-diff.out
fi
fi
lcov
--extract
python-coverage-full.info
\
lcov
--extract
python-coverage-full.info
\
...
@@ -132,7 +132,7 @@ function gen_python_diff_html_report() {
...
@@ -132,7 +132,7 @@ function gen_python_diff_html_report() {
-o
python-coverage-diff.info
\
-o
python-coverage-diff.info
\
--rc
lcov_branch_coverage
=
0
--rc
lcov_branch_coverage
=
0
python
${
PADDLE_ROOT
}
/tools/coverage/coverage_diff.py python-coverage-diff.info python-git-diff.out
>
python-coverage-diff.tmp
python
3.7
${
PADDLE_ROOT
}
/tools/coverage/coverage_diff.py python-coverage-diff.info python-git-diff.out
>
python-coverage-diff.tmp
mv
-f
python-coverage-diff.tmp python-coverage-diff.info
mv
-f
python-coverage-diff.tmp python-coverage-diff.info
...
@@ -150,11 +150,11 @@ gen_python_diff_html_report || true
...
@@ -150,11 +150,11 @@ gen_python_diff_html_report || true
echo
"Assert Diff Coverage"
echo
"Assert Diff Coverage"
python
${
PADDLE_ROOT
}
/tools/coverage/coverage_lines.py coverage-diff.info 0.9
||
COVERAGE_LINES_ASSERT
=
1
python
3.7
${
PADDLE_ROOT
}
/tools/coverage/coverage_lines.py coverage-diff.info 0.9
||
COVERAGE_LINES_ASSERT
=
1
echo
"Assert Python Diff Coverage"
echo
"Assert Python Diff Coverage"
python
${
PADDLE_ROOT
}
/tools/coverage/coverage_lines.py python-coverage-diff.info 0.9
||
PYTHON_COVERAGE_LINES_ASSERT
=
1
python
3.7
${
PADDLE_ROOT
}
/tools/coverage/coverage_lines.py python-coverage-diff.info 0.9
||
PYTHON_COVERAGE_LINES_ASSERT
=
1
if
[
"
$COVERAGE_LINES_ASSERT
"
=
"1"
]
||
[
"
$PYTHON_COVERAGE_LINES_ASSERT
"
=
"1"
]
;
then
if
[
"
$COVERAGE_LINES_ASSERT
"
=
"1"
]
||
[
"
$PYTHON_COVERAGE_LINES_ASSERT
"
=
"1"
]
;
then
echo
"exit 9"
>
/tmp/paddle_coverage.result
echo
"exit 9"
>
/tmp/paddle_coverage.result
...
...
tools/get_pr_ut.py
浏览文件 @
e63a68fe
...
@@ -17,6 +17,8 @@ import os
...
@@ -17,6 +17,8 @@ import os
import
json
import
json
import
re
import
re
import
sys
import
sys
import
time
import
subprocess
import
requests
import
requests
from
github
import
Github
from
github
import
Github
...
@@ -45,7 +47,7 @@ class PRChecker(object):
...
@@ -45,7 +47,7 @@ class PRChecker(object):
""" Get pull request. """
""" Get pull request. """
pr_id
=
os
.
getenv
(
'GIT_PR_ID'
)
pr_id
=
os
.
getenv
(
'GIT_PR_ID'
)
if
not
pr_id
:
if
not
pr_id
:
print
(
'No PR ID'
)
print
(
'
PREC
No PR ID'
)
exit
(
0
)
exit
(
0
)
suffix
=
os
.
getenv
(
'PREC_SUFFIX'
)
suffix
=
os
.
getenv
(
'PREC_SUFFIX'
)
if
suffix
:
if
suffix
:
...
@@ -60,9 +62,31 @@ class PRChecker(object):
...
@@ -60,9 +62,31 @@ class PRChecker(object):
else
:
else
:
break
break
ix
=
ix
+
1
ix
=
ix
+
1
if
last_commit
.
message
.
find
(
'test=full_case'
)
!=
-
1
:
if
last_commit
.
message
.
find
(
'test=allcase'
)
!=
-
1
:
print
(
'PREC test=allcase is set'
)
self
.
full_case
=
True
self
.
full_case
=
True
#todo: exception
def
__wget_with_retry
(
self
,
url
):
ix
=
1
proxy
=
'--no-proxy'
while
ix
<
6
:
if
ix
//
2
==
0
:
proxy
=
''
else
:
proxy
=
'--no-proxy'
code
=
subprocess
.
call
(
'wget -q {} --no-check-certificate {}'
.
format
(
proxy
,
url
),
shell
=
True
)
if
code
==
0
:
return
True
print
(
'PREC download {} error, retry {} time(s) after {} secs.[proxy_option={}]'
.
format
(
url
,
ix
,
ix
*
10
,
proxy
))
time
.
sleep
(
ix
*
10
)
ix
+=
1
return
False
def
get_pr_files
(
self
):
def
get_pr_files
(
self
):
""" Get files in pull request. """
""" Get files in pull request. """
page
=
0
page
=
0
...
@@ -101,6 +125,7 @@ class PRChecker(object):
...
@@ -101,6 +125,7 @@ class PRChecker(object):
def
get_comment_of_file
(
self
,
f
):
def
get_comment_of_file
(
self
,
f
):
#content = self.repo.get_contents(f.replace(PADDLE_ROOT, ''), 'pull/').decoded_content
#content = self.repo.get_contents(f.replace(PADDLE_ROOT, ''), 'pull/').decoded_content
#todo: get file from github
with
open
(
f
)
as
fd
:
with
open
(
f
)
as
fd
:
lines
=
fd
.
readlines
()
lines
=
fd
.
readlines
()
lineno
=
1
lineno
=
1
...
@@ -166,6 +191,7 @@ class PRChecker(object):
...
@@ -166,6 +191,7 @@ class PRChecker(object):
for
l
in
diff_lines
:
for
l
in
diff_lines
:
if
l
not
in
comment_lines
:
if
l
not
in
comment_lines
:
return
False
return
False
print
(
'PREC {} is only comment'
.
format
(
f
))
return
True
return
True
def
get_pr_ut
(
self
):
def
get_pr_ut
(
self
):
...
@@ -175,8 +201,12 @@ class PRChecker(object):
...
@@ -175,8 +201,12 @@ class PRChecker(object):
check_added_ut
=
False
check_added_ut
=
False
ut_list
=
[]
ut_list
=
[]
file_ut_map
=
None
file_ut_map
=
None
cmd
=
'wget -q --no-proxy --no-check-certificate https://sys-p0.bj.bcebos.com/prec/file_ut.json'
+
self
.
suffix
ret
=
self
.
__wget_with_retry
(
os
.
system
(
cmd
)
'https://sys-p0.bj.bcebos.com/prec/file_ut.json{}'
.
format
(
self
.
suffix
))
if
not
ret
:
print
(
'PREC download file_ut.json failed'
)
exit
(
1
)
with
open
(
'file_ut.json'
+
self
.
suffix
)
as
jsonfile
:
with
open
(
'file_ut.json'
+
self
.
suffix
)
as
jsonfile
:
file_ut_map
=
json
.
load
(
jsonfile
)
file_ut_map
=
json
.
load
(
jsonfile
)
for
f
in
self
.
get_pr_files
():
for
f
in
self
.
get_pr_files
():
...
@@ -187,16 +217,24 @@ class PRChecker(object):
...
@@ -187,16 +217,24 @@ class PRChecker(object):
if
self
.
is_only_comment
(
f
):
if
self
.
is_only_comment
(
f
):
ut_list
.
append
(
'h_cu_comment_placeholder'
)
ut_list
.
append
(
'h_cu_comment_placeholder'
)
else
:
else
:
print
(
'PREC dismatch: {} not in file ut map and not md or comment'
.
format
(
f
))
return
''
return
''
elif
f
.
endswith
(
'.cc'
)
or
f
.
endswith
(
'.py'
)
or
f
.
endswith
(
elif
f
.
endswith
(
'.cc'
)
or
f
.
endswith
(
'.py'
)
or
f
.
endswith
(
'.cu'
):
'.cu'
):
if
f
.
find
(
'test_'
)
!=
-
1
or
f
.
find
(
'_test'
)
!=
-
1
:
if
f
.
find
(
'test_'
)
!=
-
1
or
f
.
find
(
'_test'
)
!=
-
1
:
print
(
'PREC {} need check new ut'
.
format
(
f
))
check_added_ut
=
True
check_added_ut
=
True
elif
self
.
is_only_comment
(
f
):
elif
self
.
is_only_comment
(
f
):
ut_list
.
append
(
'nomap_comment_placeholder'
)
ut_list
.
append
(
'nomap_comment_placeholder'
)
else
:
else
:
print
(
'PREC dismatch: {} not in file ut map and not new ut or comment'
.
format
(
f
))
return
''
return
''
else
:
else
:
print
(
'PREC dismatch: {} not in file ut map'
.
format
(
f
))
return
''
return
''
else
:
else
:
if
self
.
is_only_comment
(
f
):
if
self
.
is_only_comment
(
f
):
...
@@ -204,24 +242,28 @@ class PRChecker(object):
...
@@ -204,24 +242,28 @@ class PRChecker(object):
else
:
else
:
ut_list
.
extend
(
file_ut_map
.
get
(
f
))
ut_list
.
extend
(
file_ut_map
.
get
(
f
))
ut_list
=
list
(
set
(
ut_list
))
ut_list
=
list
(
set
(
ut_list
))
cmd
=
'wget -q --no-proxy --no-check-certificate https://sys-p0.bj.bcebos.com/prec/prec_delta'
+
self
.
suffix
ret
=
self
.
__wget_with_retry
(
os
.
system
(
cmd
)
'https://sys-p0.bj.bcebos.com/prec/prec_delta{}'
.
format
(
with
open
(
'prec_delta'
+
self
.
suffix
)
as
delta
:
self
.
suffix
))
for
ut
in
delta
:
if
ret
:
ut_list
.
append
(
ut
.
rstrip
(
'
\r\n
'
))
with
open
(
'prec_delta'
+
self
.
suffix
)
as
delta
:
for
ut
in
delta
:
ut_list
.
append
(
ut
.
rstrip
(
'
\r\n
'
))
else
:
print
(
'PREC download prec_delta failed'
)
if
check_added_ut
:
if
check_added_ut
:
cmd
=
'bash {}/tools/check_added_ut.sh >/tmp/pre_ut 2>&1'
.
format
(
PADDLE_ROOT
)
os
.
system
(
cmd
)
with
open
(
'{}/added_ut'
.
format
(
PADDLE_ROOT
))
as
utfile
:
with
open
(
'{}/added_ut'
.
format
(
PADDLE_ROOT
))
as
utfile
:
for
ut
in
utfile
:
for
ut
in
utfile
:
print
(
'PREC NEW UT: {}'
.
format
(
ut
.
rstrip
(
'
\r\n
'
)))
ut_list
.
append
(
ut
.
rstrip
(
'
\r\n
'
))
ut_list
.
append
(
ut
.
rstrip
(
'
\r\n
'
))
return
'
'
.
join
(
ut_list
)
return
'
\n
'
.
join
(
ut_list
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
pr_checker
=
PRChecker
()
pr_checker
=
PRChecker
()
pr_checker
.
init
()
pr_checker
.
init
()
print
(
pr_checker
.
get_pr_ut
())
#print(pr_checker.get_pr_ut())
with
open
(
'ut_list'
,
'w'
)
as
f
:
f
.
write
(
pr_checker
.
get_pr_ut
())
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录