1
1
#! /bin/bash
2
2
ut_suite=" ${1:- op_regression} " # op_regression / op_extended / op_ut / torch_xpu
3
3
4
- if [[ " ${ut_suite} " == ' op_regression' || " ${ut_suite} " == ' op_regression_dev1' || " ${ut_suite} " == ' op_extended' ]]; then
5
- grep -E " ^FAILED|have failures" " ${ut_suite} " _test.log | awk ' {print $2}' > ./" ${ut_suite} " _failed.log
4
+ # usage
5
+ # compare_and_filter_logs <UT'log> <Known_issue.log> [output.log]
6
+
7
+ compare_and_filter_logs () {
8
+ local file_UT=" $1 "
9
+ local file_known_issue=" $2 "
10
+ local output_file=" ${3:- ${file_UT% .* } _filtered.log} "
11
+ local filtered_content=" ${file_UT% .* } _removed.log"
12
+
13
+ if [[ $# -lt 2 ]]; then
14
+ echo " [ERROR] Need 2 files to compare"
15
+ return 1
16
+ fi
17
+
18
+ # Check whether UT's failed log contains the case of the known issue'log
19
+ echo " Checking whether $file_UT contains $file_known_issue "
20
+ if grep -qxFf " $file_known_issue " " $file_UT " ; then
21
+ echo " $file_UT contains $file_known_issue "
22
+ else
23
+ echo " $file_UT does not contain $file_known_issue "
24
+ return 1
25
+ fi
26
+
27
+ # Filter the same content from file_UT as file_known_issue
28
+ echo " Filtering $file_known_issue for $file_UT "
29
+ grep -vFxf " $file_known_issue " " $file_UT " > " $output_file "
30
+
31
+ # Keep the filtered UT cases
32
+ grep -noFf " $file_known_issue " " $file_UT " > " $filtered_content "
33
+ echo " Filtered cases file: $filtered_content "
34
+ if [[ -s " $filtered_content " ]]; then
35
+ echo -e " \n\033[1;31m[Filtered Cases]\033[0m"
36
+ awk -F' :' ' {
37
+ line_number = $1
38
+ $1 = ""
39
+ gsub(/^ /, "", $0)
40
+ printf "\033[33m%3d\033[0m: %s\n", line_number, $0
41
+ }' " $filtered_content "
42
+ else
43
+ echo -e " \n\033[1;32mNo Filtered Cases\033[0m"
44
+ fi
45
+ }
46
+
47
+ if [[ " ${ut_suite} " == ' op_regression' || " ${ut_suite} " == ' op_regression_dev1' || " ${ut_suite} " == ' op_extended' || " ${ut_suite} " == ' op_transformers' ]]; then
48
+ grep -E " FAILED" " ${ut_suite} " _test.log | awk ' {print $1}' | grep -v " FAILED" > ./" ${ut_suite} " _failed.log
49
+ grep -E " have failures" " ${ut_suite} " _test.log | awk ' {print $1}' >> ./" ${ut_suite} " _failed.log
6
50
grep " PASSED" " ${ut_suite} " _test.log | awk ' {print $1}' > ./" ${ut_suite} " _passed.log
7
- num_failed=$( wc -l < " ./${ut_suite} _failed.log" )
51
+ compare_and_filter_logs " ${ut_suite} " _failed.log Known_issue.log
52
+ if [[ -f " ${ut_suite} _failed_filtered.log" ]]; then
53
+ num_failed=$( wc -l < " ./${ut_suite} _failed_filtered.log" )
54
+ else
55
+ num_failed=$( wc -l < " ./${ut_suite} _failed.log" )
56
+ fi
8
57
num_passed=$( wc -l < " ./${ut_suite} _passed.log" )
9
58
echo -e " ========================================================================="
10
59
echo -e " Show Failed cases in ${ut_suite} "
@@ -18,10 +67,23 @@ if [[ "${ut_suite}" == 'op_regression' || "${ut_suite}" == 'op_regression_dev1'
18
67
fi
19
68
fi
20
69
if [[ " ${ut_suite} " == ' op_ut' ]]; then
21
- grep -E " ^FAILED|have failures" op_ut_with_skip_test.log | awk ' {print $2}' > ./" ${ut_suite} " _with_skip_test_failed.log
22
- grep -E " ^FAILED|have failures" op_ut_with_only_test.log | awk ' {print $2}' > ./" ${ut_suite} " _with_only_test_failed.log
23
- num_failed_with_skip=$( wc -l < " ./${ut_suite} _with_skip_test_failed.log" )
24
- num_failed_with_only=$( wc -l < " ./${ut_suite} _with_only_test_failed.log" )
70
+ grep -E " FAILED" op_ut_with_skip_test.log | awk ' {print $1}' | grep -v " FAILED" > ./" ${ut_suite} " _with_skip_test_failed.log
71
+ grep -E " have failures" op_ut_with_skip_test.log | awk ' {print $1}' >> ./" ${ut_suite} " _with_skip_test_failed.log
72
+ grep -E " FAILED" op_ut_with_only_test.log | awk ' {print $1}' | grep -v " FAILED" > ./" ${ut_suite} " _with_only_test_failed.log
73
+ grep -E " have failures" op_ut_with_only_test.log | awk ' {print $1}' >> ./" ${ut_suite} " _with_only_test_failed.log
74
+ compare_and_filter_logs " ${ut_suite} " _with_skip_test_failed.log Known_issue.log
75
+ if [[ -f " ${ut_suite} _with_skip_test_failed_filtered.log" ]]; then
76
+ num_failed_with_skip=$( wc -l < " ./${ut_suite} _with_skip_test_failed_filtered.log" )
77
+ else
78
+ num_failed_with_skip=$( wc -l < " ./${ut_suite} _with_skip_test_failed.log" )
79
+ fi
80
+ compare_and_filter_logs " ${ut_suite} " _with_only_test_failed.log Known_issue.log
81
+ if [[ -f " ${ut_suite} _with_only_test_failed_filtered.log" ]]; then
82
+ num_failed_with_only=$( wc -l < " ./${ut_suite} _with_only_test_failed_filtered.log" )
83
+ else
84
+ num_failed_with_only=$( wc -l < " ./${ut_suite} _with_only_test_failed.log" )
85
+ fi
86
+ num_failed_with_only=$( wc -l < " ./${ut_suite} _with_only_test_failed_filtered.log" )
25
87
echo -e " ========================================================================="
26
88
echo -e " Show Failed cases in ${ut_suite} with skip"
27
89
echo -e " ========================================================================="
@@ -73,13 +135,19 @@ if [[ "${ut_suite}" == 'torch_xpu' ]]; then
73
135
fi
74
136
fi
75
137
if [[ " ${ut_suite} " == ' xpu_distributed' || " ${ut_suite} " == ' pytorch_distributed' ]]; then
76
- grep -E " ^FAILED|have failures" " ${ut_suite} " _test.log | awk ' {print $2}' > ./" ${ut_suite} " _test_failed.log
77
- num_failed_distributed=$( wc -l < " ./${ut_suite} _test_failed.log" )
138
+ grep -E " ^FAILED" xpu_distributed_test.log | awk ' {print $2}' > ./" ${ut_suite} " _test_failed.log
139
+ grep -E " have failures" xpu_distributed_test.log | awk ' {print $1}' >> ./" ${ut_suite} " _test_failed.log
140
+ compare_and_filter_logs " ${ut_suite} " _test_failed.log Known_issue.log
141
+ if [[ -f " ${ut_suite} _test_failed_filtered.log" ]]; then
142
+ num_failed_xpu_distributed=$( wc -l < " ./${ut_suite} _test_failed_filtered.log" )
143
+ else
144
+ num_failed_xpu_distributed=$( wc -l < " ./${ut_suite} _test_failed.log" )
145
+ fi
78
146
echo -e " ========================================================================="
79
- echo -e " Show Failed cases in ${ut_suite} "
147
+ echo -e " Show Failed cases in ${ut_suite} xpu distributed "
80
148
echo -e " ========================================================================="
81
149
cat " ./${ut_suite} _test_failed.log"
82
- (( num_failed= num_failed_distributed ))
150
+ (( num_failed= num_failed_xpu_distributed ))
83
151
if [[ $num_failed -gt 0 ]]; then
84
152
echo -e " [ERROR] UT ${ut_suite} test Fail"
85
153
exit 1
0 commit comments