jhclark / ducttape

A workflow management system for researchers who heart Unix.
http://jhclark.github.com/ducttape
Other
119 stars 14 forks source link

Graft Glob Bug #145

Open jhclark opened 11 years ago

jhclark commented 11 years ago

Graft globs that are routed to a parent task via a global variable do not work. The following should have only 1 realization for "broken" but instead has 2:

task feeder < in=(TestSet: x=/dev/null y=/dev/null) > out {}

task works1 < in=$out@feeder[TestSet:*] {}

global {
  file=(TestSet: x=/dev/null y=/dev/null)
}
task works2 < in=$file[TestSet:*] {}

global {
  var=$out@feeder
}
task broken < in=$var[TestSet:*] {}

Output:

RUN: /home/jhclark/software/ducttape/syntax/issues/shouldSucceed/./works2/Baseline.baseline (Baseline.baseline)
RUN: /home/jhclark/software/ducttape/syntax/issues/shouldSucceed/./feeder/Baseline.baseline (TestSet.x)
RUN: /home/jhclark/software/ducttape/syntax/issues/shouldSucceed/./broken/Baseline.baseline (TestSet.x)
RUN: /home/jhclark/software/ducttape/syntax/issues/shouldSucceed/./feeder/TestSet.y (TestSet.y)
RUN: /home/jhclark/software/ducttape/syntax/issues/shouldSucceed/./broken/TestSet.y (TestSet.y)
RUN: /home/jhclark/software/ducttape/syntax/issues/shouldSucceed/./works1/Baseline.baseline (Baseline.baseline)
jhclark commented 11 years ago

This is now checked in as syntax/issues/shouldSucceed/145.tape

jhclark commented 10 years ago

To be clear, this bug is that because "broken" uses a glob, and introduces no other branch points, it should have exactly one realization.