Skip to content

Commit 020dcbb

Browse files
committed
Add tests for merging ROOT and streamer files with different hardware resources
1 parent 12b2879 commit 020dcbb

File tree

6 files changed

+82
-4
lines changed

6 files changed

+82
-4
lines changed

IOPool/Input/test/BuildFile.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,6 @@
3939
</test>
4040
<test name="TestIOPoolInputRefProductIDMetadataConsistency" command="testRefProductIDMetadataConsistencyRoot.sh"/>
4141
<test name="TestIOPoolInputReducedProcessHistoryVersion" command="testReducedProcessHistoryVersion.sh"/>
42+
<test name="TestIOPoolInputReducedProcessHistoryHardwareResources" command="testReducedProcessHistoryHardwareResources.sh"/>
4243

4344
</environment>

IOPool/Input/test/testReducedProcessHistoryCreate_cfg.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,30 @@
22
import argparse
33

44
parser = argparse.ArgumentParser(description='Create files for reduced ProcessHistory test')
5-
parser.add_argument("--version", type=str, help="CMSSW version to be used in the ProcessHistory")
5+
parser.add_argument("--version", type=str, help="CMSSW version to be used in the ProcessHistory (default is unset")
6+
parser.add_argument("--accelerators", type=str, nargs='+', help="Propagated to process.options.accelerators (default is unset)")
67
parser.add_argument("--firstEvent", default=1, type=int, help="Number of first event")
78
parser.add_argument("--lumi", default=1, type=int, help="LuminosityBlock number")
89
parser.add_argument("--output", type=str, help="Output file name")
910

1011
args = parser.parse_args()
1112

13+
class ProcessAcceleratorTest(cms.ProcessAccelerator):
14+
def __init__(self):
15+
super(ProcessAcceleratorTest,self).__init__()
16+
self._labels = ["test-one", "test-two"]
17+
def labels(self):
18+
return self._labels
19+
def enabledLabels(self):
20+
return self._labels
21+
22+
1223
process = cms.Process("PROD")
13-
process._specialOverrideReleaseVersionOnlyForTesting(args.version)
24+
if args.version:
25+
process._specialOverrideReleaseVersionOnlyForTesting(args.version)
26+
if args.accelerators:
27+
process.add_(ProcessAcceleratorTest())
28+
process.options.accelerators = args.accelerators
1429

1530
process.maxEvents.input = 10
1631

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#!/bin/bash
2+
3+
function die { echo $1: status $2 ; exit $2; }
4+
function runSuccess {
5+
echo "cmsRun $@"
6+
cmsRun $@ || die "cmsRun $*" $?
7+
echo
8+
}
9+
10+
11+
# Check that changing hardware resources does not lead to new lumi or run
12+
runSuccess ${SCRAM_TEST_PATH}/testReducedProcessHistoryCreate_cfg.py --accelerators test-one --firstEvent 1 --output test-one.root
13+
runSuccess ${SCRAM_TEST_PATH}/testReducedProcessHistoryCreate_cfg.py --accelerators test-two --firstEvent 101 --output test-two.root
14+
15+
edmProvDump test-one.root | grep -q "PROD.*test-one" || die "Did not find test-one from test-one.root provenance" $?
16+
edmProvDump test-two.root | grep -q "PROD.*test-two" || die "Did not find test-two from test-two.root provenance" $?
17+
18+
runSuccess ${SCRAM_TEST_PATH}/test_merge_two_files.py test-one.root test-two.root
19+
20+
runSuccess ${SCRAM_TEST_PATH}/testReducedProcessHistory_cfg.py --input merged_files.root
21+
22+
edmProvDump merged_files.root | grep -q "PROD.*test-one" || die "Did not find test-one from merged_files.root provenance" $?
23+
edmProvDump merged_files.root | grep -q "PROD.*test-two" || die "Did not find test-two from merged_files.root provenance" $?
24+
25+
26+
exit 0

IOPool/Streamer/test/BuildFile.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<test name="TestIOPoolStreamerFailures" command="run_failures.sh"/>
3434

3535
<test name="TestIOPoolStreamerReducedProcessHistoryVersion" command="run_TestReducedProcessHistoryVersion.sh"/>
36+
<test name="TestIOPoolStreamerReducedProcessHistoryHardwareResources" command="run_TestReducedProcessHistoryHardwareResources.sh"/>
3637

3738
<library file="StreamThingProducer.cc" name="StreamThingProducer">
3839
<flags EDM_PLUGIN="1"/>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#!/bin/bash
2+
3+
function die { echo Failure $1: status $2 ; exit $2 ; }
4+
function runSuccess {
5+
echo "cmsRun $@"
6+
cmsRun $@ || die "cmsRun $*" $?
7+
echo
8+
}
9+
10+
# Check that changing hardware resources does not lead to new lumi or run
11+
runSuccess ${SCRAM_TEST_PATH}/testReducedProcessHistoryCreate_cfg.py --accelerators test-one --firstEvent 1 --output test-one.dat
12+
runSuccess ${SCRAM_TEST_PATH}/testReducedProcessHistoryCreate_cfg.py --accelerators test-two --firstEvent 101 --output test-two.dat
13+
14+
CatStreamerFiles merged.dat test-one.dat test-two.dat
15+
16+
runSuccess ${SCRAM_TEST_PATH}/testReducedProcessHistory_cfg.py --input merged.dat --output merged.root
17+
18+
edmProvDump merged.root | grep -q "PROD.*test-one" || die "Did not find test-one from merged.root provenance" $?
19+
edmProvDump merged.root | grep -q "PROD.*test-two" || die "Did not find test-two from merged.root provenance" $?
20+
21+
exit 0

IOPool/Streamer/test/testReducedProcessHistoryCreate_cfg.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,29 @@
22
import argparse
33

44
parser = argparse.ArgumentParser(description='Create files for reduced ProcessHistory test')
5-
parser.add_argument("--version", type=str, help="CMSSW version to be used in the ProcessHistory")
5+
parser.add_argument("--version", type=str, help="CMSSW version to be used in the ProcessHistory (default is unset")
6+
parser.add_argument("--accelerators", type=str, nargs='+', help="Propagated to process.options.accelerators (default is unset)")
67
parser.add_argument("--firstEvent", default=1, type=int, help="Number of first event")
78
parser.add_argument("--lumi", default=1, type=int, help="LuminosityBlock number")
89
parser.add_argument("--output", type=str, help="Output file name")
910

1011
args = parser.parse_args()
1112

13+
class ProcessAcceleratorTest(cms.ProcessAccelerator):
14+
def __init__(self):
15+
super(ProcessAcceleratorTest,self).__init__()
16+
self._labels = ["test-one", "test-two"]
17+
def labels(self):
18+
return self._labels
19+
def enabledLabels(self):
20+
return self._labels
21+
1222
process = cms.Process("PROD")
13-
process._specialOverrideReleaseVersionOnlyForTesting(args.version)
23+
if args.version:
24+
process._specialOverrideReleaseVersionOnlyForTesting(args.version)
25+
if args.accelerators:
26+
process.add_(ProcessAcceleratorTest())
27+
process.options.accelerators = args.accelerators
1428

1529
process.maxEvents.input = 10
1630

0 commit comments

Comments
 (0)