@@ -19,24 +19,35 @@ if [[ ${#TEST_RESULT_DIRS[@]} -eq 0 ]]; then
1919 exit 0
2020fi
2121
22- echo " Saving test results:"
23- while IFS= read -r -d ' ' RESULT_XML_FILE
24- do
25- echo -n " - $RESULT_XML_FILE "
26- # Get source file for testcases
22+ function get_source_file () {
2723 FILE_PATH=" ${RESULT_XML_FILE%% " /build" * } "
2824 FILE_PATH=" ${FILE_PATH/# " $WORKSPACE_DIR " \/ / } /src"
2925 if ! [[ $RESULT_XML_FILE == * " #" * ]]; then
3026 CLASS=" ${RESULT_XML_FILE% .xml} "
3127 CLASS=" ${CLASS##* " TEST-" } "
3228 CLASS=" ${CLASS##* " ." } "
33- CLASS_PATH=$( grep -rl " class $CLASS " " $FILE_PATH " | tail -n 1)
34- FILE_PATH=" $CLASS_PATH "
29+ COMMON_ROOT=$( grep -rl " class $CLASS " " $FILE_PATH " | head -n 1)
30+ while IFS= read -r LINE; do
31+ while [[ $LINE != " $COMMON_ROOT " * ]]; do
32+ COMMON_ROOT=$( dirname " $COMMON_ROOT " )
33+ if [[ " $COMMON_ROOT " == " $COMMON_ROOT /.." ]]; then
34+ break
35+ fi
36+ done
37+ done < <( grep -rl " class $CLASS " " $FILE_PATH " )
38+ FILE_PATH=" $COMMON_ROOT "
3539 fi
40+ }
41+
42+ echo " Saving test results:"
43+ while IFS= read -r -d ' ' RESULT_XML_FILE
44+ do
45+ echo -n " - $RESULT_XML_FILE "
3646 AGGREGATED_FILE_NAME=$( echo " $RESULT_XML_FILE " | rev | cut -d " /" -f 1,2,5 | rev | tr " /" " _" )
3747 echo -n " as $AGGREGATED_FILE_NAME "
3848 cp " $RESULT_XML_FILE " " $TEST_RESULTS_DIR /$AGGREGATED_FILE_NAME "
3949 # Insert file attribute to testcase XML nodes
50+ get_source_file
4051 sed -i " /<testcase/ s|\(time=\" [^\" ]*\" \)|\1 file=\" $FILE_PATH \" |g" " $TEST_RESULTS_DIR /$AGGREGATED_FILE_NAME "
4152 # Replace Java Object hashCode by marker in testcase XML nodes to get stable test names
4253 sed -i ' /<testcase/ s/@[0-9a-f]\{5,\}/@HASHCODE/g' " $TEST_RESULTS_DIR /$AGGREGATED_FILE_NAME "
0 commit comments