53 """Run a job writing a file with FileMetaData"""
54 msg = Logging.logging.getLogger("TestFileMetaData")
55
56 flags = AllConfigFlags.initConfigFlags()
57 flags.Exec.OutputLevel = Constants.DEBUG
58 flags.Input.Files = TestDefaults.defaultTestFiles.AOD_RUN2_DATA
59 flags.Output.AODFileName = "test.pool.root"
60 flags.Output.doWriteAOD = True
61 flags.Concurrency.NumThreads = 4
62 flags.Concurrency.NumConcurrentEvents = 4
63 flags.lock()
64
65 write = MainServicesConfig.MainServicesCfg(flags)
66 write.merge(PoolReadCfg(flags))
67 write.merge(writeFileMetaData(flags))
68 write.run(100)
69
70 try:
71 if testMetaData(flags.Output.AODFileName):
72 msg.info("File contains xAOD::FileMetaData")
73 return 0
74 msg.error("File does not contain xAOD::FileMetaData")
75 except ReferenceError:
76 msg.error("Failed to produce output file")
77 except KeyError:
78 msg.error("Failed to get metadata item list from file")
79 return 1
80
81