#!groovy
funcs = evaluate readTrusted( 'TestON/JenkinsFile/dependencies/JenkinsCommonFuncs.groovy' )
fileRelated = evaluate readTrusted( 'TestON/JenkinsFile/dependencies/JenkinsPathAndFiles.groovy' )

fileRelated.init()
nodeCluster = params.NodeCluster

funcs.initializeTrend( nodeCluster );
if( nodeCluster == "Fabric" )
  funcs.additionalInitForSR( params.ONOSbranch )
def prop = null
prop = funcs.getProperties()

def Tests = params.Test
prop[ "ONOSBranch" ] = params.ONOSbranch


graph_generator_file = fileRelated.trendIndividual
graph_saved_directory = fileRelated.jenkinsWorkspace + "postjob-" + nodeCluster + ( nodeCluster == "Fabric" ? funcs.fabricOn( prop[ "ONOSBranch" ] ) : "" ) + "/"

def testsToRun = null
testsToRun = funcs.getTestsToRun( Tests )

def tests = [:]
for( String test : testsToRun ){
    println test
    tests[ test ] = funcs.runTest( test, true, prop, test, true, [], graph_generator_file, graph_saved_directory )
}

for ( test in tests.keySet() ){
    tests[ test ].call()
}
