diff options
author | Ryan Beltran <ryanbeltran@chromium.org> | 2021-01-18 23:56:57 +0000 |
---|---|---|
committer | Ryan Beltran <ryanbeltran@chromium.org> | 2021-01-20 22:52:53 +0000 |
commit | a58bd46ce286e2546c432c8fedd23b14a8fc651d (patch) | |
tree | fbdcc3ea84aad442e6eab1ba4fdc6f59d317db84 /compiler_wrapper | |
parent | 6f559ce22c83d2ebe12c7858c107f2151e769879 (diff) | |
download | toolchain-utils-a58bd46ce286e2546c432c8fedd23b14a8fc651d.tar.gz |
compiler_wrapper: add working dir to rusage logs
Adds current working directory as a new field in rusage logs.
This is useful for determining what package was being compiled.
BUG=chromium:1156314
TEST=Modified and ran unit tests
Change-Id: I58d7040c90fbd7d9b81532d0114862cbf4b23f88
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/toolchain-utils/+/2636450
Tested-by: Ryan Beltran <ryanbeltran@chromium.org>
Reviewed-by: George Burgess <gbiv@chromium.org>
Diffstat (limited to 'compiler_wrapper')
-rw-r--r-- | compiler_wrapper/rusage_flag.go | 36 | ||||
-rw-r--r-- | compiler_wrapper/rusage_flag_test.go | 7 |
2 files changed, 29 insertions, 14 deletions
diff --git a/compiler_wrapper/rusage_flag.go b/compiler_wrapper/rusage_flag.go index 31ff0d10..c6f887d7 100644 --- a/compiler_wrapper/rusage_flag.go +++ b/compiler_wrapper/rusage_flag.go @@ -39,13 +39,14 @@ func lockFileExclusive(fd uintptr) error { } type rusageLog struct { - ExitCode int `json:"exit_code"` - ElapsedRealTime float64 `json:"elapsed_real_time"` - ElapsedUserTime float64 `json:"elapsed_user_time"` - ElapsedSysTime float64 `json:"elapsed_sys_time"` - MaxMemUsed int64 `json:"max_mem_used"` - Compiler string `json:"compiler"` - CompilerArgs []string `json:"compiler_args"` + ExitCode int `json:"exit_code"` + ElapsedRealTime float64 `json:"elapsed_real_time"` + ElapsedUserTime float64 `json:"elapsed_user_time"` + ElapsedSysTime float64 `json:"elapsed_sys_time"` + MaxMemUsed int64 `json:"max_mem_used"` + Compiler string `json:"compiler"` + CompilerArgs []string `json:"compiler_args"` + WorkingDirectory string `json:"working_directory"` } func logRusage(env env, logFileName string, compilerCmd *command) (exitCode int, err error) { @@ -87,14 +88,21 @@ func logRusage(env env, logFileName string, compilerCmd *command) (exitCode int, timeUnit := float64(time.Second) + // We want to know what package is being compiled. The working directory gives us a good clue. + cwd, err := os.Getwd() + if err != nil { + return 0, wrapErrorwithSourceLocf(err, "error getting working directory for rusage log") + } + logEntry := rusageLog{ - ExitCode: exitCode, - ElapsedRealTime: float64(elapsedRealTime) / timeUnit, - ElapsedUserTime: float64(elapsedUserTime) / timeUnit, - ElapsedSysTime: float64(elapsedSysTime) / timeUnit, - MaxMemUsed: maxMemUsed, - Compiler: absCompilerPath, - CompilerArgs: compilerCmd.Args, + ExitCode: exitCode, + ElapsedRealTime: float64(elapsedRealTime) / timeUnit, + ElapsedUserTime: float64(elapsedUserTime) / timeUnit, + ElapsedSysTime: float64(elapsedSysTime) / timeUnit, + MaxMemUsed: maxMemUsed, + Compiler: absCompilerPath, + CompilerArgs: compilerCmd.Args, + WorkingDirectory: cwd, } // Note: using file mode 0666 so that a root-created log is writable by others. diff --git a/compiler_wrapper/rusage_flag_test.go b/compiler_wrapper/rusage_flag_test.go index 0736c757..940f4a79 100644 --- a/compiler_wrapper/rusage_flag_test.go +++ b/compiler_wrapper/rusage_flag_test.go @@ -105,6 +105,13 @@ func TestLogRusageFileContent(t *testing.T) { if matched, _ := regexp.MatchString("--sysroot=.*", rlog.CompilerArgs[0]); !matched { t.Errorf("unexpected compiler args. Got: %s", rlog.CompilerArgs) } + cwd, err := os.Getwd() + if err != nil { + t.Fatalf("Failed to get current working directory: %v", err) + } + if rlog.WorkingDirectory != cwd { + t.Errorf("Unexpected working directory. Got: %q, Want: %q", rlog.WorkingDirectory, cwd) + } }) } |