Do not write build_error proto file if there are no build errors.
For successful builds, a blank build_error proto file is created. This slows down the data processing part where it reads the build_error file and there are no errors to be processed. Bug: 142277430 Test: Did a successful build and checked if the build_error file was not available. Changed a source file to make the build failed and checked if the build_error file was available. Change-Id: I300dffe32fb7f8bf984fa20ae368bdd02bf12992
This commit is contained in:
parent
f53737fadc
commit
36b5e31f62
1 changed files with 8 additions and 0 deletions
|
@ -20,6 +20,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/golang/protobuf/proto"
|
"github.com/golang/protobuf/proto"
|
||||||
|
@ -154,6 +155,7 @@ type errorProtoLog struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewProtoErrorLog(log logger.Logger, filename string) StatusOutput {
|
func NewProtoErrorLog(log logger.Logger, filename string) StatusOutput {
|
||||||
|
os.Remove(filename)
|
||||||
return &errorProtoLog{
|
return &errorProtoLog{
|
||||||
errorProto: soong_build_error_proto.BuildError{},
|
errorProto: soong_build_error_proto.BuildError{},
|
||||||
filename: filename,
|
filename: filename,
|
||||||
|
@ -178,11 +180,17 @@ func (e *errorProtoLog) FinishAction(result ActionResult, counts Counts) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *errorProtoLog) Flush() {
|
func (e *errorProtoLog) Flush() {
|
||||||
|
// Don't create the build error proto file if there is action errors.
|
||||||
|
if len(e.errorProto.ActionErrors) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
data, err := proto.Marshal(&e.errorProto)
|
data, err := proto.Marshal(&e.errorProto)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.log.Printf("Failed to marshal build status proto: %v\n", err)
|
e.log.Printf("Failed to marshal build status proto: %v\n", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ioutil.WriteFile(e.filename, []byte(data), 0644)
|
err = ioutil.WriteFile(e.filename, []byte(data), 0644)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.log.Printf("Failed to write file %s: %v\n", e.filename, err)
|
e.log.Printf("Failed to write file %s: %v\n", e.filename, err)
|
||||||
|
|
Loading…
Reference in a new issue