adding new attribute lock (#8)

This commit is contained in:
Julien Neuhart
2018-05-16 12:06:30 +02:00
committed by GitHub
parent 5100693789
commit e3366d0b62
16 changed files with 97 additions and 2 deletions

View File

@@ -33,8 +33,12 @@ func (e *commandTimeoutError) Error() string {
// run runs the given command. If timeout is reached or
// something bad happened, returns an error.
func (r *runner) run(command string, interpreter []string, timeout int) error {
r.mu.Lock()
defer r.mu.Unlock()
if config.HasLock() {
r.mu.Lock()
defer r.mu.Unlock()
} else {
logger.Warn("lock disabled")
}
binary := interpreter[0]
parameters := append(interpreter[1:], command)

View File

@@ -41,6 +41,8 @@ func TestCommandTimeoutError(t *testing.T) {
func TestRun(t *testing.T) {
var cmd string
load("../../../_tests/configurations/gotenberg.yml")
// case 1: uses a simple command.
cmd = "echo Hello world"
if err := forest.run(cmd, strings.Fields("/bin/sh -c"), 30); err != nil {
@@ -58,6 +60,14 @@ func TestRun(t *testing.T) {
if err := forest.run(cmd, strings.Fields("/bin/sh -c"), 30); err == nil {
t.Errorf("Command '%s' should not have worked", cmd)
}
load("../../../_tests/configurations/no-lock-gotenberg.yml")
// case 4: uses a configuration with a no lock strategy.
cmd = "echo Hello world"
if err := forest.run(cmd, strings.Fields("/bin/sh -c"), 30); err != nil {
t.Errorf("Command '%s' should have worked", cmd)
}
}
func TestUnconv(t *testing.T) {