X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0fa7cd5bfdab924f316046f923aec282b699d8a1..0eb72b526bf8bbb011551ecf019f604e17a534f1:/sdk/go/crunchrunner/crunchrunner_test.go diff --git a/sdk/go/crunchrunner/crunchrunner_test.go b/sdk/go/crunchrunner/crunchrunner_test.go index 52d5c1a64e..f2827c6a35 100644 --- a/sdk/go/crunchrunner/crunchrunner_test.go +++ b/sdk/go/crunchrunner/crunchrunner_test.go @@ -1,8 +1,10 @@ +// Copyright (C) The Arvados Authors. All rights reserved. +// +// SPDX-License-Identifier: Apache-2.0 + package main import ( - "git.curoverse.com/arvados.git/sdk/go/arvadosclient" - . "gopkg.in/check.v1" "io" "io/ioutil" "log" @@ -10,6 +12,9 @@ import ( "syscall" "testing" "time" + + "git.curoverse.com/arvados.git/sdk/go/arvadosclient" + . "gopkg.in/check.v1" ) // Gocheck boilerplate @@ -53,7 +58,7 @@ func (s *TestSuite) TestSimpleRun(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"echo", "foo"}}}}}, Task{Sequence: 0}) c.Check(err, IsNil) @@ -88,9 +93,9 @@ func (s *TestSuite) TestSimpleRunSubtask(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{ - TaskDef{Command: []string{"echo", "bar"}}, - TaskDef{Command: []string{"echo", "foo"}}}}}, + Job{ScriptParameters: Tasks{[]TaskDef{ + {Command: []string{"echo", "bar"}}, + {Command: []string{"echo", "foo"}}}}}, Task{Parameters: TaskDef{ Command: []string{"echo", "foo"}, Stdout: "output.txt"}, @@ -118,7 +123,7 @@ func (s *TestSuite) TestRedirect(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"cat"}, Stdout: "output.txt", Stdin: tmpfile.Name()}}}}, @@ -140,7 +145,7 @@ func (s *TestSuite) TestEnv(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"/bin/sh", "-c", "echo $BAR"}, Stdout: "output.txt", Env: map[string]string{"BAR": "foo"}}}}}, @@ -161,7 +166,7 @@ func (s *TestSuite) TestEnvSubstitute(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "foo\n", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"/bin/sh", "-c", "echo $BAR"}, Stdout: "output.txt", Env: map[string]string{"BAR": "$(task.keep)"}}}}}, @@ -182,7 +187,7 @@ func (s *TestSuite) TestEnvReplace(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"/bin/sh", "-c", "echo $PATH"}, Stdout: "output.txt", Env: map[string]string{"PATH": "foo"}}}}}, @@ -211,14 +216,14 @@ func (t SubtaskTestClient) Update(resourceType string, uuid string, parameters a func (s *TestSuite) TestScheduleSubtask(c *C) { api := SubtaskTestClient{c, []Task{ - Task{Job_uuid: "zzzz-8i9sb-111111111111111", - Created_by_job_task_uuid: "zzzz-ot0gb-111111111111111", - Sequence: 1, + {JobUUID: "zzzz-8i9sb-111111111111111", + CreatedByJobTaskUUID: "zzzz-ot0gb-111111111111111", + Sequence: 1, Parameters: TaskDef{ Command: []string{"echo", "bar"}}}, - Task{Job_uuid: "zzzz-8i9sb-111111111111111", - Created_by_job_task_uuid: "zzzz-ot0gb-111111111111111", - Sequence: 1, + {JobUUID: "zzzz-8i9sb-111111111111111", + CreatedByJobTaskUUID: "zzzz-ot0gb-111111111111111", + Sequence: 1, Parameters: TaskDef{ Command: []string{"echo", "foo"}}}}, 0} @@ -233,9 +238,9 @@ func (s *TestSuite) TestScheduleSubtask(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{ - TaskDef{Command: []string{"echo", "bar"}}, - TaskDef{Command: []string{"echo", "foo"}}}}}, + Job{ScriptParameters: Tasks{[]TaskDef{ + {Command: []string{"echo", "bar"}}, + {Command: []string{"echo", "foo"}}}}}, Task{Sequence: 0}) c.Check(err, IsNil) @@ -252,7 +257,7 @@ func (s *TestSuite) TestRunFail(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"/bin/sh", "-c", "exit 1"}}}}}, Task{Sequence: 0}) c.Check(err, FitsTypeOf, PermFail{}) @@ -269,7 +274,7 @@ func (s *TestSuite) TestRunSuccessCode(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"/bin/sh", "-c", "exit 1"}, SuccessCodes: []int{0, 1}}}}}, Task{Sequence: 0}) @@ -287,7 +292,7 @@ func (s *TestSuite) TestRunFailCode(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"/bin/sh", "-c", "exit 0"}, PermanentFailCodes: []int{0, 1}}}}}, Task{Sequence: 0}) @@ -305,7 +310,7 @@ func (s *TestSuite) TestRunTempFailCode(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"/bin/sh", "-c", "exit 1"}, TemporaryFailCodes: []int{1}}}}}, Task{Sequence: 0}) @@ -329,7 +334,7 @@ func (s *TestSuite) TestVwd(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"ls", "output.txt"}, Vwd: map[string]string{ "output.txt": tmpfile.Name()}}}}}, @@ -361,7 +366,7 @@ func (s *TestSuite) TestSubstitutionStdin(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, keepmount, - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"cat"}, Stdout: "output.txt", Stdin: "$(task.keep)/file1.txt"}}}}, @@ -389,7 +394,7 @@ func (s *TestSuite) TestSubstitutionCommandLine(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, keepmount, - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"cat", "$(task.keep)/file1.txt"}, Stdout: "output.txt"}}}}, Task{Sequence: 0}) @@ -417,7 +422,7 @@ func (s *TestSuite) TestSignal(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"sleep", "4"}}}}}, Task{Sequence: 0}) c.Check(err, FitsTypeOf, PermFail{}) @@ -437,9 +442,37 @@ func (s *TestSuite) TestQuoting(c *C) { "zzzz-ot0gb-111111111111111", tmpdir, "", - Job{Script_parameters: Tasks{[]TaskDef{TaskDef{ + Job{ScriptParameters: Tasks{[]TaskDef{{ Command: []string{"echo", "foo"}, Stdout: "s ub:dir/:e vi\nl"}}}}, Task{Sequence: 0}) c.Check(err, IsNil) } + +func (s *TestSuite) TestKeepTmp(c *C) { + tmpdir, _ := ioutil.TempDir("", "") + defer func() { + os.RemoveAll(tmpdir) + }() + + os.Setenv("TASK_KEEPMOUNT_TMP", tmpdir) + defer os.Setenv("TASK_KEEPMOUNT_TMP", "") + + fn, err := os.Create(tmpdir + "/.arvados#collection") + fn.Write([]byte("{\"manifest_text\":\". unparsed 0:3:foo\\n\",\"uuid\":null}")) + defer fn.Close() + + err = runner(ArvTestClient{c, + ". unparsed 0:3:foo\n", true}, + KeepTestClient{}, + "zzzz-8i9sb-111111111111111", + "zzzz-ot0gb-111111111111111", + tmpdir, + "", + Job{ScriptParameters: Tasks{[]TaskDef{{ + Command: []string{"echo", "foo"}, + KeepTmpOutput: true}}}}, + Task{Sequence: 0}) + c.Check(err, IsNil) + +}