18290: LSF: make the bsub arguments completely configurable.
[arvados.git] / lib / lsf / dispatch_test.go
index 7cf6df6431e05772e104d3da083321d5efe975ec..641453e5480ced43609efcb499d5dbff61383cae 100644 (file)
@@ -53,7 +53,7 @@ type lsfstub struct {
        errorRate float64
 }
 
-func (stub lsfstub) stubCommand(c *check.C) func(prog string, args ...string) *exec.Cmd {
+func (stub lsfstub) stubCommand(s *suite, c *check.C) func(prog string, args ...string) *exec.Cmd {
        mtx := sync.Mutex{}
        nextjobid := 100
        fakejobq := map[int]string{}
@@ -71,17 +71,28 @@ func (stub lsfstub) stubCommand(c *check.C) func(prog string, args ...string) *e
                }
                switch prog {
                case "bsub":
-                       c.Assert(args, check.HasLen, 4)
-                       c.Check(args[0], check.Equals, "-J")
+                       defaultArgs := s.disp.Cluster.Containers.LSF.BsubArgumentsList
+                       c.Assert(len(args), check.Equals, len(defaultArgs))
+                       // %%J must have been rewritten to %J
+                       c.Check(args[1], check.Equals, "/tmp/crunch-run.%J.out")
+                       args = args[4:]
                        switch args[1] {
                        case arvadostest.LockedContainerUUID:
-                               c.Check(args, check.DeepEquals, []string{"-J", arvadostest.LockedContainerUUID, "-R", "rusage[mem=11701MB:tmp=0MB] affinity[core(4)]"})
+                               c.Check(args, check.DeepEquals, []string{
+                                       "-J", arvadostest.LockedContainerUUID,
+                                       "-n", "4",
+                                       "-D", "11701MB",
+                                       "-R", "rusage[mem=11701MB:tmp=0MB] span[hosts=1]"})
                                mtx.Lock()
                                fakejobq[nextjobid] = args[1]
                                nextjobid++
                                mtx.Unlock()
                        case arvadostest.QueuedContainerUUID:
-                               c.Check(args, check.DeepEquals, []string{"-J", arvadostest.QueuedContainerUUID, "-R", "rusage[mem=11701MB:tmp=45777MB] affinity[core(4)]"})
+                               c.Check(args, check.DeepEquals, []string{
+                                       "-J", arvadostest.QueuedContainerUUID,
+                                       "-n", "4",
+                                       "-D", "11701MB",
+                                       "-R", "rusage[mem=11701MB:tmp=45777MB] span[hosts=1]"})
                                mtx.Lock()
                                fakejobq[nextjobid] = args[1]
                                nextjobid++
@@ -124,7 +135,7 @@ func (s *suite) TestSubmit(c *check.C) {
        s.disp.lsfcli.stubCommand = lsfstub{
                errorRate: 0.1,
                sudoUser:  s.disp.Cluster.Containers.LSF.BsubSudoUser,
-       }.stubCommand(c)
+       }.stubCommand(s, c)
        s.disp.Start()
        deadline := time.Now().Add(20 * time.Second)
        for range time.NewTicker(time.Second).C {