Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-02-26 04:25:16

0001 #!/bin/bash
0002 SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
0003 
0004 function diebu {  echo Failure $1: status $2 ; echo "" ; echo "----- Error -----"; echo ""; cat out_2_bu.log;  rm -rf $3/{ramdisk,data,dqmdisk,ecalInDir,*.py}; exit $2 ; }
0005 function diefu {  echo Failure $1: status $2 ; echo "" ; echo "----- Error -----"; echo ""; cat out_2_fu.log;  rm -rf $3/{ramdisk,data,dqmdisk,ecalInDir,*.py}; exit $2 ; }
0006 function diedqm { echo Failure $1: status $2 ; echo "" ; echo "----- Error -----"; echo ""; cat out_2_dqm.log; rm -rf $3/{ramdisk,data,dqmdisk,ecalInDir,*.py}; exit $2 ; }
0007 function dieecal { echo Failure $1: status $2 ; echo "" ; echo "----- Error -----"; echo ""; cat out_2_ecal.log; rm -rf $3/{ramdisk,data,dqmdisk,ecalInDir,*.py}; exit $2 ; }
0008 
0009 copy_index_files() {
0010   directory=$1
0011   sourceid=$2
0012   del_orig=$3
0013   shopt -s nullglob
0014   for file in "$directory"/*_index*.raw; do
0015     filename=$(basename "$file")
0016     if [[ "$filename" =~ ^(.*)_index([0-9]+)\.raw$ ]]; then
0017         base="${BASH_REMATCH[1]}"
0018         x="${BASH_REMATCH[2]}"
0019         new_name="${base}_index${x}_source${sourceid}.raw"
0020         cp -- "$file" "$directory/$new_name"
0021         #echo "Copied: $filename -> $new_name"
0022         if [[ $del_orig -eq 1 ]]; then
0023           rm -rf $file
0024         fi
0025     fi
0026   done
0027   shopt -u nullglob
0028 }
0029 
0030 copy_json_files() {
0031   directory=$1
0032   sourceid=$2
0033   shopt -s nullglob
0034   for file in "$directory"/*.jsn; do
0035     filename=$(basename "$file")
0036     if [[ "$filename" =~ ^(.*)_EoR.jsn$ ]]; then
0037         base="${BASH_REMATCH[1]}"
0038         x="${BASH_REMATCH[2]}"
0039         new_name="${base}_EoR_source${sourceid}.jsn"
0040         mv "$file" "$directory/$new_name"
0041     fi
0042     if [[ "$filename" =~ ^(.*)_EoLS.jsn$ ]]; then
0043         base="${BASH_REMATCH[1]}"
0044         x="${BASH_REMATCH[2]}"
0045         new_name="${base}_EoLS_source${sourceid}.jsn"
0046         mv "$file" "$directory/$new_name"
0047     fi
0048   done
0049   shopt -u nullglob
0050 }
0051 
0052 FUSCRIPT="startFU.py"
0053 
0054 if [ -z  ${SCRAM_TEST_PATH} ]; then
0055 SCRAM_TEST_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
0056 fi
0057 echo "SCRAM_TEST_PATH = ${SCRAM_TEST_PATH}"
0058 
0059 RC=0
0060 P=$$
0061 PREFIX=results_${USER}${P}
0062 OUTDIR=${PWD}/${PREFIX}
0063 
0064 echo "OUT_TMP_DIR = $OUTDIR"
0065 
0066 mkdir ${OUTDIR}
0067 cp ${SCRIPTDIR}/startBU.py ${OUTDIR}
0068 cp ${SCRIPTDIR}/startFU.py ${OUTDIR}
0069 cp ${SCRIPTDIR}/unittest_FU.py ${OUTDIR}
0070 cp ${SCRIPTDIR}/startFU_daqsource.py ${OUTDIR}
0071 cp ${SCRIPTDIR}/unittest_FU_daqsource.py ${OUTDIR}
0072 cp ${SCRIPTDIR}/startFU_ds_multi.py ${OUTDIR}
0073 cp ${SCRIPTDIR}/test_dqmstream.py ${OUTDIR}
0074 cp ${SCRIPTDIR}/testECALCalib_cfg.py ${OUTDIR}
0075 cd ${OUTDIR}
0076 
0077 rm -rf $OUTDIR/{ramdisk,data,dqmdisk,ecalInDir,*.log}
0078 
0079 runnumber="100101"
0080 
0081 ################
0082 echo "Running fileListMode test"
0083 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=20 eventsPerLS=35 frdFileVersion=2"
0084 CMDLINE_STARTFU="cmsRun unittest_FU.py runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0085 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0086 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR
0087 
0088 rm -rf $OUTDIR/{ramdisk,data,*.log}
0089 
0090 echo "Running test with FRD file header v1 (no index JSONs)"
0091 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=40 eventsPerLS=55 frdFileVersion=1"
0092 #CMDLINE_STARTFU="cmsRun startFU.py runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0093 CMDLINE_STARTFU="cmsRun ${FUSCRIPT} runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0094 mkdir dqmdisk/run${runnumber} -p
0095 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0096 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR
0097 
0098 #prepare DQM and ECAL Calibration files
0099 cat data/run${runnumber}/run${runnumber}_ls0000_streamDQM_pid*.ini > dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.dat
0100 cat data/run${runnumber}/run${runnumber}_ls0001_streamDQM_pid*.dat >> dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.dat
0101 
0102 rm -rf $OUTDIR/{data}
0103 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR
0104 
0105 #prepare DQM and ECAL Calibration files, merged from two processes, containing two metadata events
0106 cat data/run${runnumber}/run${runnumber}_ls0001_streamDQM_pid*.dat >> dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.dat
0107 
0108 find dqmdisk
0109 echo '{"data": [12950, 1620, 0, "run'${runnumber}'_ls0001_streamDQM_test.dat", 40823782, 1999348078, 135, 13150, 0, "Failsafe"]}' > dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.jsn
0110 
0111 mkdir ecalInDir
0112 cp dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.dat ecalInDir/
0113 
0114 echo "Running DQM source"
0115 CMDLINE_STARTDQM="cmsRun test_dqmstream.py runInputDir=./dqmdisk runNumber=100101 maxLS=1 eventsPerLS=35"
0116 ${CMDLINE_STARTDQM} > out_2_dqm.log 2>&1 || diedqm "${CMDLINE_STARTDQM}" $? $OUTDIR
0117 
0118 echo "Running ECAL Calibration source"
0119 CMDLINE_STARTECAL="cmsRun testECALCalib_cfg.py"
0120 ${CMDLINE_STARTECAL} > out_2_ecal.log 2>&1 || dieecal "${CMDLINE_STARTECAL}" $? $OUTDIR
0121 
0122 
0123 rm -rf $OUTDIR/{ramdisk,data,dqmdisk,ecalInDir,*.log}
0124 
0125 ###################
0126 echo "Running test with FRD file header v1 (no index JSONs) and empty files"
0127 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=20 eventsPerLS=35 frdFileVersion=1"
0128 #CMDLINE_STARTFU="cmsRun startFU.py runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0129 CMDLINE_STARTFU="cmsRun ${FUSCRIPT} runNumber=${runnumber} fffBaseDir=${OUTDIR} numEventsToWrite=0"
0130 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0131 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR
0132 
0133 #prepare DQM files
0134 mkdir dqmdisk/run${runnumber} -p
0135 cat data/run${runnumber}/run${runnumber}_ls0000_streamDQM_pid*.ini > dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.dat
0136 cat data/run${runnumber}/run${runnumber}_ls0001_streamDQM_pid*.dat >> dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.dat
0137 find dqmdisk
0138 echo '{"data": [12950, 1620, 0, "run'${runnumber}'_ls0001_streamDQM_test.dat", 40823782, 1999348078, 135, 13150, 0, "Failsafe"]}' > dqmdisk/run${runnumber}/run${runnumber}_ls0001_streamDQM_test.jsn
0139 
0140 echo "Running DQM source"
0141 CMDLINE_STARTDQM="cmsRun test_dqmstream.py runInputDir=./dqmdisk runNumber=100101 maxLS=1 eventsPerLS=0"
0142 ${CMDLINE_STARTDQM} > out_2_dqm.log 2>&1 || diedqm "${CMDLINE_STARTDQM}" $? $OUTDIR
0143 
0144 rm -rf $OUTDIR/{ramdisk,data,dqmdisk,*.log}
0145 
0146 ################
0147 echo "Running test with FRD file header v2"
0148 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=20 eventsPerLS=35 frdFileVersion=2"
0149 CMDLINE_STARTFU="cmsRun ${FUSCRIPT} runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0150 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0151 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR
0152 
0153 rm -rf $OUTDIR/{ramdisk,data,*.log}
0154 
0155 echo "running DAQSource fileListMode test with full event FRD"
0156 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=20 eventsPerLS=35 frdFileVersion=1"
0157 CMDLINE_STARTFU="cmsRun unittest_FU_daqsource.py daqSourceMode=FRD runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0158 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0159 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR out_2_fu.log
0160 
0161 #no failures, clean up everything including logs if there are no errors
0162 rm -rf $OUTDIR/{ramdisk,data,*.log}
0163 
0164 echo "running DAQSource test with full event FRD"
0165 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=20 eventsPerLS=35 frdFileVersion=2"
0166 CMDLINE_STARTFU="cmsRun startFU_daqsource.py daqSourceMode=FRDStriped runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0167 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0168 #run reader
0169 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR out_2_fu.log
0170 rm -rf $OUTDIR/{ramdisk,data,*.log}
0171 
0172 echo "running DAQSource test with striped FRD"
0173 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=20 eventsPerLS=35 frdFileVersion=2"
0174 CMDLINE_STARTFU="cmsRun unittest_FU_daqsource.py daqSourceMode=FRDStriped runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0175 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0176 #duplicate files
0177 cp ramdisk/run${runnumber}/run${runnumber}_ls0001_index000000.raw ramdisk/run${runnumber}/run${runnumber}_ls0001_index000000.raw_1
0178 cp ramdisk/run${runnumber}/run${runnumber}_ls0001_index000001.raw ramdisk/run${runnumber}/run${runnumber}_ls0001_index000001.raw_1
0179 cp ramdisk/run${runnumber}/run${runnumber}_ls0002_index000000.raw ramdisk/run${runnumber}/run${runnumber}_ls0002_index000000.raw_1
0180 cp ramdisk/run${runnumber}/run${runnumber}_ls0002_index000001.raw ramdisk/run${runnumber}/run${runnumber}_ls0002_index000001.raw_1
0181 #run reader
0182 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR out_2_fu.log
0183 rm -rf $OUTDIR/{ramdisk,data,*.log}
0184 
0185 echo "running DAQSource test with FRDPreUnpack"
0186 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=20 eventsPerLS=35 frdFileVersion=1"
0187 CMDLINE_STARTFU="cmsRun startFU_daqsource.py daqSourceMode=FRDPreUnpack runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0188 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0189 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR out_2_fu.log
0190 
0191 #no failures, clean up everything including logs if there are no errors
0192 rm -rf $OUTDIR/{ramdisk,data,*.log}
0193 
0194 echo "running DAQSource test with raw DTH orbit payload"
0195 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=2 eventsPerLS=3 frdFileVersion=0 dataType=DTH"
0196 CMDLINE_STARTFU="cmsRun startFU_daqsource.py daqSourceMode=DTH runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0197 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0198 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR out_2_fu.log
0199 
0200 #no failures, clean up everything including logs if there are no errors
0201 rm -rf $OUTDIR/{ramdisk,data,*.log}
0202 
0203 echo "running DAQSource test with striped DTH"
0204 CMDLINE_STARTBU="cmsRun startBU.py runNumber=${runnumber} fffBaseDir=${OUTDIR} maxLS=2 fedMeanSize=128 eventsPerFile=2 eventsPerLS=3 frdFileVersion=0 dataType=DTH"
0205 CMDLINE_STARTFU="cmsRun startFU_ds_multi.py daqSourceMode=DTH runNumber=${runnumber} fffBaseDir=${OUTDIR}"
0206 ${CMDLINE_STARTBU}  > out_2_bu.log 2>&1 || diebu "${CMDLINE_STARTBU}" $? $OUTDIR
0207 #duplicate files
0208 copy_index_files ramdisk/run${runnumber} 0111
0209 copy_index_files ramdisk/run${runnumber} 0222 1
0210 copy_json_files ramdisk/run${runnumber} 0111
0211 #find ramdisk/run${runnumber}
0212 ${CMDLINE_STARTFU}  > out_2_fu.log 2>&1 || diefu "${CMDLINE_STARTFU}" $? $OUTDIR out_2_fu.log
0213 
0214 rm -rf $OUTDIR/{ramdisk,data,*.log}
0215 
0216 #no failures, clean up everything including logs if there are no errors
0217 echo "Completed sucessfully"
0218 #rm -rf $OUTDIR/{ramdisk,data,*.py,*.log}
0219 rm -rf $OUTDIR
0220 
0221 exit ${RC}