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