aboutsummaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-09-29 13:26:57 +0000
committerArne Juul <arnej@yahooinc.com>2022-09-29 13:26:57 +0000
commit8e9b28e7617cdcd7ccc6d5e7111d3b6b17d66626 (patch)
tree1bd3b425b4c098e97cbf8143de09a061fdb947a2 /client
parent791b304870044f478fcd7fcd095157c63c55b978 (diff)
simplify argv handling
Diffstat (limited to 'client')
-rw-r--r--client/go/script-utils/startcbinary/cmd.go2
-rw-r--r--client/go/script-utils/startcbinary/execvp.go8
-rw-r--r--client/go/script-utils/startcbinary/numactl.go3
-rw-r--r--client/go/script-utils/startcbinary/numactl_test.go6
-rw-r--r--client/go/script-utils/startcbinary/startcbinary.go4
-rw-r--r--client/go/script-utils/startcbinary/valgrind.go3
-rw-r--r--client/go/script-utils/startcbinary/valgrind_test.go4
7 files changed, 12 insertions, 18 deletions
diff --git a/client/go/script-utils/startcbinary/cmd.go b/client/go/script-utils/startcbinary/cmd.go
index 05d3d1d6c79..faa9a3fa595 100644
--- a/client/go/script-utils/startcbinary/cmd.go
+++ b/client/go/script-utils/startcbinary/cmd.go
@@ -20,7 +20,7 @@ func Run(args []string) int {
}
spec := ProgSpec{
Program: args[0],
- Args: args[1:],
+ Args: args,
}
spec.setup()
vespa.LoadDefaultEnv()
diff --git a/client/go/script-utils/startcbinary/execvp.go b/client/go/script-utils/startcbinary/execvp.go
index a39f76ebc3b..1ceaf88b47a 100644
--- a/client/go/script-utils/startcbinary/execvp.go
+++ b/client/go/script-utils/startcbinary/execvp.go
@@ -29,14 +29,10 @@ func findInPath(prog string) string {
return prog
}
-func myexecvp(prog string, args []string, envv []string) error {
- argv := make([]string, 0, 1+len(args))
- argv = append(argv, prog)
- for _, arg := range args {
- argv = append(argv, arg)
- }
+func myexecvp(prog string, argv []string, envv []string) error {
trace.Trace("run cmd", strings.Join(argv, " "))
prog = findInPath(prog)
+ argv[0] = prog
err := unix.Exec(prog, argv, envv)
return fmt.Errorf("cannot execute '%s': %v", prog, err)
}
diff --git a/client/go/script-utils/startcbinary/numactl.go b/client/go/script-utils/startcbinary/numactl.go
index bc34193da59..1456fe05a5f 100644
--- a/client/go/script-utils/startcbinary/numactl.go
+++ b/client/go/script-utils/startcbinary/numactl.go
@@ -56,7 +56,7 @@ func (p *ProgSpec) numaCtlBinary() string {
return "numactl"
}
-func (p *ProgSpec) prependNumaCtl(program string, args []string) []string {
+func (p *ProgSpec) prependNumaCtl(args []string) []string {
result := make([]string, 0, 5+len(args))
result = append(result, "numactl")
if p.numaSocket >= 0 {
@@ -66,7 +66,6 @@ func (p *ProgSpec) prependNumaCtl(program string, args []string) []string {
result = append(result, "--interleave")
result = append(result, "all")
}
- result = append(result, program)
for _, arg := range args {
result = append(result, arg)
}
diff --git a/client/go/script-utils/startcbinary/numactl_test.go b/client/go/script-utils/startcbinary/numactl_test.go
index a1d5586f57d..326ff088276 100644
--- a/client/go/script-utils/startcbinary/numactl_test.go
+++ b/client/go/script-utils/startcbinary/numactl_test.go
@@ -44,7 +44,7 @@ func TestNumaCtlDetection(t *testing.T) {
spec.configureNumaCtl()
assert.Equal(t, true, spec.shouldUseNumaCtl)
assert.Equal(t, -1, spec.numaSocket)
- argv = spec.prependNumaCtl("/bin/myprog", []string{"-c", "cfgid"})
+ argv = spec.prependNumaCtl([]string{"/bin/myprog", "-c", "cfgid"})
trace.Trace("argv:", argv)
assert.Equal(t, 6, len(argv))
assert.Equal(t, "numactl", argv[0])
@@ -56,7 +56,7 @@ func TestNumaCtlDetection(t *testing.T) {
spec.configureNumaCtl()
assert.Equal(t, true, spec.shouldUseNumaCtl)
assert.Equal(t, 0, spec.numaSocket)
- argv = spec.prependNumaCtl("/bin/myprog", []string{"-c", "cfgid", "-p", "param"})
+ argv = spec.prependNumaCtl([]string{"/bin/myprog", "-c", "cfgid", "-p", "param"})
trace.Trace("argv:", argv)
assert.Equal(t, 8, len(argv))
assert.Equal(t, "numactl", argv[0])
@@ -68,7 +68,7 @@ func TestNumaCtlDetection(t *testing.T) {
spec.configureNumaCtl()
assert.Equal(t, true, spec.shouldUseNumaCtl)
assert.Equal(t, 1, spec.numaSocket)
- argv = spec.prependNumaCtl("/bin/myprog", []string{})
+ argv = spec.prependNumaCtl([]string{"/bin/myprog"})
trace.Trace("argv:", argv)
assert.Equal(t, 4, len(argv))
assert.Equal(t, "numactl", argv[0])
diff --git a/client/go/script-utils/startcbinary/startcbinary.go b/client/go/script-utils/startcbinary/startcbinary.go
index 92f09d9098c..9c06ead4d06 100644
--- a/client/go/script-utils/startcbinary/startcbinary.go
+++ b/client/go/script-utils/startcbinary/startcbinary.go
@@ -30,10 +30,10 @@ func (spec *ProgSpec) run() error {
prog := spec.Program + "-bin"
args := spec.Args
if spec.shouldUseValgrind {
- args = spec.prependValgrind(prog, args)
+ args = spec.prependValgrind(args)
prog = spec.valgrindBinary()
} else if spec.shouldUseNumaCtl {
- args = spec.prependNumaCtl(prog, args)
+ args = spec.prependNumaCtl(args)
prog = spec.numaCtlBinary()
}
if spec.shouldUseVespaMalloc {
diff --git a/client/go/script-utils/startcbinary/valgrind.go b/client/go/script-utils/startcbinary/valgrind.go
index 0b49e1b3265..f474347016d 100644
--- a/client/go/script-utils/startcbinary/valgrind.go
+++ b/client/go/script-utils/startcbinary/valgrind.go
@@ -71,14 +71,13 @@ func (p *ProgSpec) valgrindLogOption() string {
return fmt.Sprintf("--log-file=%s/tmp/valgrind.%s.log.%d", vespa.FindHome(), p.BaseName, os.Getpid())
}
-func (p *ProgSpec) prependValgrind(program string, args []string) []string {
+func (p *ProgSpec) prependValgrind(args []string) []string {
result := make([]string, 0, 15+len(args))
result = append(result, p.valgrindBinary())
for _, arg := range p.valgrindOptions() {
result = append(result, arg)
}
result = append(result, p.valgrindLogOption())
- result = append(result, program)
for _, arg := range args {
result = append(result, arg)
}
diff --git a/client/go/script-utils/startcbinary/valgrind_test.go b/client/go/script-utils/startcbinary/valgrind_test.go
index 6c01945a828..906dfc054c6 100644
--- a/client/go/script-utils/startcbinary/valgrind_test.go
+++ b/client/go/script-utils/startcbinary/valgrind_test.go
@@ -63,7 +63,7 @@ func TestValgrindDetection(t *testing.T) {
assert.Equal(t, true, spec.shouldUseValgrind)
assert.Equal(t, false, spec.shouldUseCallgrind)
- argv = spec.prependValgrind("/bin/myprog", []string{"-c", "cfgid"})
+ argv = spec.prependValgrind([]string{"/bin/myprog", "-c", "cfgid"})
trace.Trace("argv:", argv)
assert.Equal(t, 11, len(argv))
assert.Equal(t, "valgrind", argv[0])
@@ -79,7 +79,7 @@ func TestValgrindDetection(t *testing.T) {
assert.Equal(t, true, spec.shouldUseValgrind)
assert.Equal(t, true, spec.shouldUseCallgrind)
- argv = spec.prependValgrind("/bin/myprog", []string{"-c", "cfgid"})
+ argv = spec.prependValgrind([]string{"/bin/myprog", "-c", "cfgid"})
trace.Trace("argv:", argv)
assert.Equal(t, 6, len(argv))
assert.Equal(t, "valgrind", argv[0])