fix: clangtidy parser get result
This commit is contained in:
		
							parent
							
								
									cab7861494
								
							
						
					
					
						commit
						bb63cb65ba
					
				|  | @ -9,8 +9,8 @@ import ( | |||
| ) | ||||
| 
 | ||||
| type Match struct { | ||||
| 	Keyword []string | ||||
| 	Score   int | ||||
| 	Keywords []string | ||||
| 	Score    int | ||||
| } | ||||
| 
 | ||||
| type Conf struct { | ||||
|  | @ -41,9 +41,10 @@ func Parse(executorResult stage.ExecutorResult, conf Conf) stage.ParserResult { | |||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	score, comment := GetResult(formattedMessages, conf) | ||||
| 	return stage.ParserResult{ | ||||
| 		Score:   GetScore(formattedMessages, conf), | ||||
| 		Comment: GetComment(formattedMessages), | ||||
| 		Score:   score, | ||||
| 		Comment: comment, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
|  |  | |||
|  | @ -5,32 +5,9 @@ import ( | |||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| func contains(arr []string, element string) bool { | ||||
| 	for i := range arr { | ||||
| 		// TODO: The keyword in json report might also be an array, need to split it
 | ||||
| 		if strings.Contains(arr[i], element) { | ||||
| 			return true | ||||
| 		} | ||||
| 	} | ||||
| 	return false | ||||
| } | ||||
| 
 | ||||
| func GetScore(jsonMessages []JsonMessage, conf Conf) int { | ||||
| 	fullmark := conf.Score | ||||
| 	for _, jsonMessage := range jsonMessages { | ||||
| 		keyword := jsonMessage.CheckName | ||||
| 		for _, match := range conf.Matches { | ||||
| 			if contains(match.Keyword, keyword) { | ||||
| 				fullmark -= match.Score | ||||
| 				break | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 	return fullmark | ||||
| } | ||||
| 
 | ||||
| func GetComment(jsonMessages []JsonMessage) string { | ||||
| 	res := "### Test results summary\n\n" | ||||
| func GetResult(jsonMessages []JsonMessage, conf Conf) (int, string) { | ||||
| 	score := conf.Score | ||||
| 	comment := "### Test results summary\n\n" | ||||
| 	keys := [...]string{ | ||||
| 		"codequality-unchecked-malloc-result", | ||||
| 		"codequality-no-global-variables", | ||||
|  | @ -56,22 +33,29 @@ func GetComment(jsonMessages []JsonMessage) string { | |||
| 		mapping[key] = 0 | ||||
| 	} | ||||
| 	for _, jsonMessage := range jsonMessages { | ||||
| 		keyword := jsonMessage.CheckName | ||||
| 		flag := true | ||||
| 		for key := range mapping { | ||||
| 			if strings.Contains(keyword, key) { | ||||
| 				mapping[key] += 1 | ||||
| 				flag = false | ||||
| 				break | ||||
| 		checkName := jsonMessage.CheckName | ||||
| 		for _, match := range conf.Matches { | ||||
| 			for _, keyword := range match.Keywords { | ||||
| 				// TODO: The keyword in json report might also be an array, need to split it
 | ||||
| 				if strings.Contains(checkName, keyword) { | ||||
| 					score -= match.Score | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		if flag { | ||||
| 		listed := false | ||||
| 		for key := range mapping { | ||||
| 			if strings.Contains(checkName, key) { | ||||
| 				mapping[key] += 1 | ||||
| 				listed = true | ||||
| 			} | ||||
| 		} | ||||
| 		if !listed { | ||||
| 			mapping["others"] += 1 | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	for i, key := range keys { | ||||
| 		res = fmt.Sprintf("%s%d. %s: %d\n", res, i+1, key, mapping[key]) | ||||
| 		comment = fmt.Sprintf("%s%d. %s: %d\n", comment, i+1, key, mapping[key]) | ||||
| 	} | ||||
| 	return res | ||||
| 	return score, comment | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user