I think this is what I need. I have multiple builds that do things differently (build on different branches), but share the same group of tests. The tests have a parent job, which uses the parametized trigger plugin to kick off all the tests. I am using the NodeLabel Parameter plugin to restrict which slaves tests run on so different branches don't step on each others toes.
So A -> BuildA (Matrix build on all A Nodes)
-> Test(A label as a parameter) -> Triggers Jobs (A label as a parameter) (A Nodes)
B -> BuildB (Matrix build on all B Nodes)
-> Test(B label as a parameter) -> Triggers Jobs (B label as a parameter) (B Nodes)
The problem is "Test" returns after the jobs are triggered, not after all the triggered jobs are actually complete, so if there is another scm commit, A or B can get triggered while the tests of the previous test run are still executing.
At the moment all I can do is schedule test runs to ensure that they are run every 2 hours, instead of allowing them to be dynamically kicked off by scm commits. 
I think this is what I need. I have multiple builds that do things differently (build on different branches), but share the same group of tests. The tests have a parent job, which uses the parametized trigger plugin to kick off all the tests. I am using the NodeLabel Parameter plugin to restrict which slaves tests run on so different branches don't step on each others toes.
So A -> BuildA (Matrix build on all A Nodes)
-> Test(A label as a parameter) -> Triggers Jobs (A label as a parameter) (A Nodes)
B -> BuildB (Matrix build on all B Nodes)
-> Test(B label as a parameter) -> Triggers Jobs (B label as a parameter) (B Nodes)
The problem is "Test" returns after the jobs are triggered, not after all the triggered jobs are actually complete, so if there is another scm commit, A or B can get triggered while the tests of the previous test run are still executing.
At the moment all I can do is schedule test runs to ensure that they are run every 2 hours, instead of allowing them to be dynamically kicked off by scm commits.