//Copyright 2012-2019 Keysight Technologies // //Licensed under the Apache License, Version 2.0 (the "License"); //you may not use this file except in compliance with the License. //You may obtain a copy of the License at // //http://www.apache.org/licenses/LICENSE-2.0 // //Unless required by applicable law or agreed to in writing, software //distributed under the License is distributed on an "AS IS" BASIS, //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //See the License for the specific language governing permissions and //limitations under the License. using OpenTap; // An example a parent that has certain resources available (the DUT and Instrument). // Children of this parent may "reach up" and use those resources. // This allows resources to be defined once, for a set of sibling children. namespace OpenTap.Plugins.PluginDevelopment { [Display("Parent With Resources", Groups: new[] { "Examples", "Plugin Development", "Parent Child" }, Description: "A parent step, that only allows ChildSeekingResources child steps, with resources.")] // This parent only allows children of the specified type. [AllowChildrenOfType(typeof(ChildSeekingResources))] public class ParentWithResources : TestStep { // The DUT and Instrument resources can be accessed via GetParent in child steps. public Dut SomeDut { get; set; } public Instrument SomeInstrument { get; set; } public override void PrePlanRun() { base.PrePlanRun(); } public override void Run() { RunChildSteps(); // If step has child steps. UpgradeVerdict(Verdict.Pass); } public override void PostPlanRun() { base.PostPlanRun(); } } }