mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-03 02:27:48 +00:00
add FindProcess for posix
Signed-off-by: leongross <leon.gross@9elements.com>
This commit is contained in:
+6
-1
@@ -58,7 +58,7 @@ type Process struct {
|
||||
}
|
||||
|
||||
func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error) {
|
||||
return nil, &PathError{"fork/exec", name, ErrNotImplemented}
|
||||
return nil, &PathError{Op: "fork/exec", Path: name, Err: ErrNotImplemented}
|
||||
}
|
||||
|
||||
func (p *Process) Wait() (*ProcessState, error) {
|
||||
@@ -77,3 +77,8 @@ func Ignore(sig ...Signal) {
|
||||
// leave all the signals unaltered
|
||||
return
|
||||
}
|
||||
|
||||
// Keep compatibility with golang and always succeed and return new proc with pid on Linux.
|
||||
func FindProcess(pid int) (*Process, error) {
|
||||
return findProcess(pid)
|
||||
}
|
||||
|
||||
@@ -19,3 +19,8 @@ var (
|
||||
Interrupt Signal = syscall.SIGINT
|
||||
Kill Signal = syscall.SIGKILL
|
||||
)
|
||||
|
||||
// Keep compatible with golang and always succeed and return new proc with pid on Linux.
|
||||
func findProcess(pid int) (*Process, error) {
|
||||
return &Process{Pid: pid}, nil
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
// Copyright 2024 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
package os_test
|
||||
|
||||
import (
|
||||
. "os"
|
||||
"runtime"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFindProcess(t *testing.T) {
|
||||
// NOTE: For now, we only test the Linux case since only exec_posix.go is currently the only implementation.
|
||||
if runtime.GOOS == "linux" {
|
||||
// Linux guarantees that there is pid 0
|
||||
proc, err := FindProcess(0)
|
||||
if err != nil {
|
||||
t.Error("FindProcess(0): wanted err == nil, got %v:", err)
|
||||
}
|
||||
|
||||
if proc.Pid != 0 {
|
||||
t.Error("Expected pid 0, got: ", proc.Pid)
|
||||
}
|
||||
|
||||
pid0 := Process{Pid: 0}
|
||||
if *proc != pid0 {
|
||||
t.Error("Expected &Process{Pid: 0}, got", *proc)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user