120 likes | 171 Views
“All dancing bears depicted in this presentation are fictitious. Any similarity to any person living or dead is merely coincidental.". MTToGDS - Disclaimer. Milestones and Features Object model MTT client changes MTT output in XML format Open Issues. Agenda . Milestone #1:
E N D
“All dancing bears depicted in this presentation are fictitious. Any similarity to any person living or dead is merely coincidental." MTToGDS - Disclaimer
Milestones and Features Object model MTT client changes MTT output in XML format Open Issues Agenda
Milestone #1: Mtt will dump test results in XML format, preserving all phase relations New script: mtt-gds-submit-results.py – will parse XML files generated by mtt and submit results to GDS Milestone #2: New script: mtt-gds-query.py – query GDS by user provided criteria and generate simple reports Milestone #3 : Mtt integration with GDS related scripts. Milestones and Features
Object Model BuildPhase TestSession InstallPhase RunPhase
TestSession class contains mtt session related info (org name, start/end dates, test description, …) BuildPhase class contains information for every test built with mtt. (compiler related info, build messages and flows) InstallPhase class contains info for every MPI instance used in the specific TestSession. It is also points to corresponding MPI BuildPhase object. (mpi version, mpi name, mpi pathes, confugure options, stdout/in/err) RunPhase class contains runtime info for specific test. (os, start/end dates, stdout/err/in,…). RunPhase points to its corresponding BuildPhase and InstallPhase objects. Object Model – description
# create mtt session objects with all MPI related params mttSession = models.TestSession() # create phase related objects buildTestPhase = models.BuildTestPhase() runTestPhase = models.RunTestPhase() mpiInstTestPhase = models.InstallTestPhase() # setup relations between phases and set phase specific attributes buildTestPhase.session = mttSession buildTestPhase.compiler_name = “gnu” buildTestPhase.suite = “intel” Object Model (example)
# MPI Install phase setup mpiInstTestPhase.session = mttSession mpiInstTestPhase.buildPhase = buildTestPhase mpiInstTestPhase.configure_args = “CFLAGS=-g –with-openib” mpiInstTestPhase.mpi_version = 1.3 # Test run phase setup runPhase.session = mttSession runPhase.installPhase = mpiInstTestPhase runPhase.test_name = “MPI_SSend_ator_f” runPhase.command = “/path/to/mpirun ….” runPhase.exit_value = 0 Object Model - example
Select * from TestSession allSessionsObjects = models.TestSession.all() allSessionObjects = db.GqlQuery(“select * from TestSession where org == :1”, “voltaire”); for mttSession in mttSessionObjects … Using GQL language over Object Model q = db.GqlQuery("SELECT * FROM TestSession " + "WHERE start_date = :1 AND end_date < :2 " + "ORDER BY org DESC", “01-01-2009", “01-02-2009")# The query is not executed until results are accessed.results = q.fetch(5)for p in results: … When a model has a ReferenceProperty to another model, each referenced entity gets a property whose value is a Query that returns all of the entities of the first model that refer to it (.modelname.set is a special property representing all back-references of specified type) # To fetch and iterate over every BuildPhase entity that refers to the TestPhase # instance mttSession for buildPhase in mttSession.BuildPhase_set: # ... MTToGDS – query examples
Add code to generate XML from test reports (same way we generate HTML tables) Add perl wrapper to call GDS python script (mtt-submit-to-gds.py) to submit results in GDS Introduce GUID to interconnect various mtt reports phases MTT client changes
<mtt_session start_date=“” id=xxx> <mtt_phase type=“MPIInstallphase” id=“1” buildPhaseID=“8”> <attr name=“org” value=“voltaire”/> … </mtt_phase> <mtt_phase type=“TestRunPhase” id=“2” installPhaseID=“4”> <att name=“command” value=“/path/to/mpirun ….”/> … </mtt_phase> … </mtt_session> MTT XML output example
Read/write permissions to access GDS Gmail login is required to access GDS We need master ompi Gmail account Mtt will contain Google's SDK to provide GDS API. Mtt will depend on python version and libs. Do we need Object model versioning mechanism? Maybe more? Open Issues