fix test cases on Windows

SysProcAttr.Credential is not available on Windows we need to move the
WrapCmd test in a separate file to be able to build test cases on Windows,
skipping the test is not enough
This commit is contained in:
Nicola Murino 2019-12-26 08:29:38 +01:00
parent ae812e55af
commit f49c280a7f
2 changed files with 19 additions and 15 deletions

View file

@ -7,7 +7,6 @@ import (
"io/ioutil" "io/ioutil"
"net" "net"
"os" "os"
"os/exec"
"runtime" "runtime"
"strings" "strings"
"testing" "testing"
@ -1213,17 +1212,3 @@ func TestSFTPExtensions(t *testing.T) {
} }
sftpExtensions = initialSFTPExtensions sftpExtensions = initialSFTPExtensions
} }
func TestWrapCmd(t *testing.T) {
if runtime.GOOS == "windows" {
t.Skip("executing a command as another uid/gid is not supported on Windows")
}
cmd := exec.Command("ls")
cmd = wrapCmd(cmd, 1000, 1001)
if cmd.SysProcAttr.Credential.Uid != 1000 {
t.Errorf("unexpected uid")
}
if cmd.SysProcAttr.Credential.Gid != 1001 {
t.Errorf("unexpected gid")
}
}

View file

@ -0,0 +1,19 @@
// +build !windows
package sftpd
import (
"os/exec"
"testing"
)
func TestWrapCmd(t *testing.T) {
cmd := exec.Command("ls")
cmd = wrapCmd(cmd, 1000, 1001)
if cmd.SysProcAttr.Credential.Uid != 1000 {
t.Errorf("unexpected uid")
}
if cmd.SysProcAttr.Credential.Gid != 1001 {
t.Errorf("unexpected gid")
}
}