In reply to tfitz:
By bundled, I meant the group of sequencer handles offers a test writer a quick glimpse into all the sequencers available for a block. Your wrapper suggestion would provide the same feature, and also remove one level of digging.
For example, this code, pulled from my test, sets up a sequence which drives an ethernet layering agent in my component environment. There are six long path-names right out of the gate.
SeqTraffic.init(
.chip_select(EXEC_LNP_CS),
.eth_sqr(env.comp_env1.input_pkt_agent.Eth2LL.sequencer),
.ip_sqr(env.comp_env1.input_pkt_agent.Ip2Eth.sequencer),
.icmp_sqr(env.comp_env1.input_pkt_agent.Icmp2Ip.sequencer),
.igmp_sqr(env.comp_env1.input_pkt_agent.Igmp2Ip.sequencer),
.udp_sqr(env.comp_env1.input_pkt_agent.Udp2Ip.sequencer),
.arp_sqr(env.comp_env1.input_pkt_agent.Arp2Eth.sequencer)
// ...
);
Now lets say I start adding more of these block level environments, and drive those embedded agents as well…
SeqTraffic.init(
.chip_select(SYS_LNP_CS),
.eth_sqr(env.comp_env2.input_pkt_agent.Eth2LL.sequencer),
.ip_sqr(env.env.comp_env2.input_pkt_agent.Ip2Eth.sequencer),
.icmp_sqr(env.env.comp_env2.input_pkt_agent.Icmp2Ip.sequencer),
.igmp_sqr(env.env.comp_env2.input_pkt_agent.Igmp2Ip.sequencer),
.udp_sqr(env.env.comp_env2.input_pkt_agent.Udp2Ip.sequencer),
.arp_sqr(env.env.comp_env2.input_pkt_agent.Arp2Eth.sequencer)
// ...
);
// etc…
As more and more components are added, it’s verbose. Generally in other parts of the hierarchy, path-names are shunned. Perhaps in the test, it’s not quite as important, as the test is not portable anyway. Anyway, I’m rambling a bit. I think I’ll stick with this approach for the time being.