Fix 'A required privilege is not held by the client' on Windows

pull/65/head
Pagran 4 years ago committed by Daniel Martí
parent bad4e52ac4
commit 0c5e0a8944

@ -6,6 +6,7 @@ package main
import ( import (
"flag" "flag"
"fmt" "fmt"
"io"
"os" "os"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
@ -63,8 +64,10 @@ func TestScripts(t *testing.T) {
binfile += ".exe" binfile += ".exe"
} }
if err := os.Symlink(os.Args[0], binfile); err != nil { if err := os.Symlink(os.Args[0], binfile); err != nil {
if err := copyFile(os.Args[0], binfile); err != nil { // Fallback to copy if symlink failed. Useful for Windows not elevated processes
return err return err
} }
}
env.Vars = append(env.Vars, fmt.Sprintf("PATH=%s%c%s", bindir, filepath.ListSeparator, os.Getenv("PATH"))) env.Vars = append(env.Vars, fmt.Sprintf("PATH=%s%c%s", bindir, filepath.ListSeparator, os.Getenv("PATH")))
env.Vars = append(env.Vars, "TESTSCRIPT_COMMAND=garble") env.Vars = append(env.Vars, "TESTSCRIPT_COMMAND=garble")
return nil return nil
@ -81,6 +84,23 @@ func TestScripts(t *testing.T) {
testscript.Run(t, p) testscript.Run(t, p)
} }
func copyFile(from, to string) error {
writer, err := os.Create(to)
if err != nil {
return err
}
defer writer.Close()
reader, err := os.Open(from)
if err != nil {
return err
}
defer reader.Close()
_, err = io.Copy(writer, reader)
return err
}
func binsubstr(ts *testscript.TestScript, neg bool, args []string) { func binsubstr(ts *testscript.TestScript, neg bool, args []string) {
if len(args) < 2 { if len(args) < 2 {
ts.Fatalf("usage: binsubstr file substr...") ts.Fatalf("usage: binsubstr file substr...")

Loading…
Cancel
Save