diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2017-06-01 18:24:27 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2017-06-03 10:41:09 +0200 |
| commit | 03ad13e65574b4c2a5c85456cf7f09a7411acc95 (patch) | |
| tree | 13132237fb9575c5380a0dc7024e3a8934b1a193 /pkg | |
| parent | 5d2b332ab5b3b5c8a170f1854d31015dbe376458 (diff) | |
pkg/kernel: add CompilerIdentity function
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/kernel/kernel.go | 12 | ||||
| -rw-r--r-- | pkg/kernel/kernel_test.go | 25 |
2 files changed, 37 insertions, 0 deletions
diff --git a/pkg/kernel/kernel.go b/pkg/kernel/kernel.go index 80a8e29c6..d19d9c5e6 100644 --- a/pkg/kernel/kernel.go +++ b/pkg/kernel/kernel.go @@ -18,6 +18,7 @@ import ( "path/filepath" "runtime" "strconv" + "strings" "time" "github.com/google/syzkaller/pkg/osutil" @@ -72,3 +73,14 @@ func CreateImage(kernelDir, userspaceDir, tag, image string) error { } return nil } + +func CompilerIdentity(compiler string) (string, error) { + output, err := osutil.RunCmd(time.Minute, "", compiler, "--version") + if err != nil { + return "", err + } + if len(output) == 0 { + return "", fmt.Errorf("no output from compiler --version") + } + return strings.Split(string(output), "\n")[0], nil +} diff --git a/pkg/kernel/kernel_test.go b/pkg/kernel/kernel_test.go new file mode 100644 index 000000000..301a21b28 --- /dev/null +++ b/pkg/kernel/kernel_test.go @@ -0,0 +1,25 @@ +// Copyright 2017 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +package kernel + +import ( + "strings" + "testing" +) + +func TestCompilerIdentity(t *testing.T) { + id, err := CompilerIdentity("gcc") + if err != nil { + t.Fatalf("failed: %v", err) + } + if len(id) == 0 { + t.Fatalf("identity is empty") + } + if strings.Index(id, "\n") != -1 { + t.Fatalf("identity contains a new line") + } + // We don't know what's the right answer, + // so just print it for manual inspection. + t.Logf("id: '%v'", id) +} |
