import os import sys from user_param import * def main(): configNamePattern=[0, 0, 0, 0, 0, 0] f=open("user_param.py", "r") for line in f: line = line.strip() if line.startswith("UsingServer2"): configNamePattern[0] = '_UsingSrv2=' + UsingServer2 elif line.startswith("RatioServer2"): configNamePattern[1] = '_RatioSrv2=' + repr(RatioServer2) elif line.startswith("NumberPoolsServer2"): configNamePattern[2] = '_NbPoolsSrv2=' + repr(NumberPoolsServer2) elif line.startswith("NumberClients"): configNamePattern[3] = '_NbClients=' + repr(NumberClients) elif line.startswith("NumberServers"): configNamePattern[4] = '_NbServers=' + repr(NumberServers) elif line.startswith("Duration"): configNamePattern[5] = '_Duration=' + Duration f.close() configName = "config" defaultConfig = True for i in range(len(configNamePattern)): if configNamePattern[i] != 0: configName = configName + configNamePattern[i] defaultConfig = False if defaultConfig: configName = "config_default" if not os.path.exists(configName): os.mkdir(configName) print("\n ****************************************************************") print(" * Directory " + repr(configName) + " Created ") print(" * Copy results to \'not_validated_reference\' folder") print(" ****************************************************************\n") os.mkdir(configName+'/setup') os.mkdir(configName+'/tmp_reference') os.system('cp param.def '+configName+'/setup/') os.system('cp iodef.xml '+configName+'/setup/') os.system('cp context_atm.xml '+configName+'/setup/') os.system('cp context_grid_dynamico.xml '+configName+'/setup/') os.system('cp dynamico_grid.nc '+configName+'/setup/') os.system('cp atm_output.nc '+configName+'/tmp_reference/') # os.system('cp -r '+configName+'/tmp_reference/ ' + configName+'/reference/') else: print("\n ********************************************************") print(" * Directory " + repr(configName) + " already exists") print(" * Start comparing results with (tmp) references") print(" ********************************************************\n") tmp_ref = os.path.isdir(configName+'/tmp_reference') ref = os.path.isdir(configName+'/reference') if ref: print("\n =====================================") print(" | Comparing results with references |") print(" =====================================\n") os.system('rm -rf '+configName+'/tmp_reference/') tmp_ref = False path = configName+'/reference/' elif tmp_ref: print("\n ===================================================") print(" | Comparing results with NON-Validated references |") print(" ===================================================\n") path = ' '+configName+'/tmp_reference/' # os.system('> diff.txt') f=open("checkfile.def", "r") g=open("diff.txt", "w+r") h=open("report.txt", "a+") for line in f: line=line.strip() line=line.rstrip() if not line.startswith("#") and len(line) != 0: cmd = 'cdo diffn '+ line + path + line + ' | tail -1 > diff.txt' # print(cmd) os.system(cmd) for gline in g: if gline.strip().startswith("0"): h.write("test for "+configName+" for file "+line+" \tPASSED\n") print "\n ****************************************" print " ** "+line+" is valid !!! **" print "\n ****************************************" else: h.write("test for "+configName+" failed for "+line+" \tFAILED\n") print "\n **************************************************" print " ** "+line+" is NOT valid. Please debugging.. **" print "\n **************************************************" f.close() if __name__== "__main__": main()