35 lines
1 KiB
Go
35 lines
1 KiB
Go
|
|
package budget
|
||
|
|
|
||
|
|
import (
|
||
|
|
"reflect"
|
||
|
|
"strings"
|
||
|
|
"testing"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestRunArgs(t *testing.T) {
|
||
|
|
command := []string{"--", "rg", "--glob", "*.go", "a b", "-"}
|
||
|
|
args, err := runArgs(testConfig(), "unrestricted", "123abc", command)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
wantTail := []string{"--", "rg", "--glob", "*.go", "a b", "-"}
|
||
|
|
if !reflect.DeepEqual(args[len(args)-len(wantTail):], wantTail) {
|
||
|
|
t.Fatal("command arguments changed", args)
|
||
|
|
}
|
||
|
|
if !strings.Contains(strings.Join(args, "\n"), "--property=CPUQuota=\n") {
|
||
|
|
t.Fatal("quota wasn't reset")
|
||
|
|
}
|
||
|
|
args, err = runArgs(testConfig(), "search", "123abc", []string{"rg", "pattern", "path"})
|
||
|
|
if err != nil {
|
||
|
|
t.Fatal(err)
|
||
|
|
}
|
||
|
|
if !strings.Contains(strings.Join(args, "\n"), "--slice=search.slice\n") {
|
||
|
|
t.Fatal("search didn't join shared slice")
|
||
|
|
}
|
||
|
|
if _, err := runArgs(testConfig(), "compute", "123abc", []string{"--"}); err == nil {
|
||
|
|
t.Fatal("empty command accepted")
|
||
|
|
}
|
||
|
|
if _, err := runArgs(testConfig(), "missing", "123abc", []string{"rg"}); err == nil {
|
||
|
|
t.Fatal("unknown profile accepted")
|
||
|
|
}
|
||
|
|
}
|