diff --git a/data/scenarios/Testing/201-require/00-ORDER.txt b/data/scenarios/Testing/201-require/00-ORDER.txt index 182a094f17..52db5b2867 100644 --- a/data/scenarios/Testing/201-require/00-ORDER.txt +++ b/data/scenarios/Testing/201-require/00-ORDER.txt @@ -5,3 +5,4 @@ 201-require-entities-def.yaml 533-reprogram-simple.yaml 533-reprogram.yaml +1664-require-system-robot-children.yaml diff --git a/data/scenarios/Testing/201-require/1664-require-system-robot-children.yaml b/data/scenarios/Testing/201-require/1664-require-system-robot-children.yaml new file mode 100644 index 0000000000..ef5a5b2221 --- /dev/null +++ b/data/scenarios/Testing/201-require/1664-require-system-robot-children.yaml @@ -0,0 +1,51 @@ +version: 1 +name: Requirements of system-robot children +description: | + Normally, system robots are not required to possess devices in order to use any particular command. + However, a robot built by a system robot becomes subject to the requirement. + This is a bug. + + In this scenario, the child robot cannot be built because the + parent robot ("queenbee") does not possess a "beaglepuss" in its inventory. +objectives: + - condition: | + try { + robotnamed "childbot"; + return true; + } { + return false; + } +solution: | + noop; +robots: + - name: base + dir: [1, 0] + - name: queenbee + dir: [1, 0] + system: true + display: + invisible: false + char: 'Q' + inventory: + - [1, solar panel] + - [0, beaglepuss] + program: | + def createWorker = + build { + setname "childbot"; + appear "B"; + }; + end; + + createWorker; +known: [water] +world: + palette: + '.': [grass] + 'B': [grass, null, base] + 'Q': [grass, null, queenbee] + upperleft: [-1, 1] + map: | + B..Q + .... + .... diff --git a/test/integration/Main.hs b/test/integration/Main.hs index 1fb5f0cd7c..b850b8d09a 100644 --- a/test/integration/Main.hs +++ b/test/integration/Main.hs @@ -300,6 +300,7 @@ testScenarioSolutions rs ui = , testSolution Default "Testing/201-require/201-require-entities-def" , testSolution Default "Testing/201-require/533-reprogram-simple" , testSolution Default "Testing/201-require/533-reprogram" + , testSolution Default "Testing/201-require/1664-require-system-robot-children" ] , testSolution Default "Testing/479-atomic-race" , testSolution (Sec 5) "Testing/479-atomic"