140 likes | 286 Vues
This quarterly report presents significant advancements in the APItest development at Sandia National Laboratories by William McLendon, Erik DeBenedictis, and Ron Oldfield. The report covers the overview of APItest v.1 presented at SC2003, leading to the development of APItest v.2. Improvements include enhanced HTTP interfaces, new file formats for test definitions, and better dependencies management. Key lessons learned during development highlight increased test organization and reusability. The report also discusses the collaboration with Scott Jackson and the integration of the Twisted Framework for distributed testing.
E N D
Component Interface Testing SciDAC Quarterly Report Argonne, IL William McLendon Erik DeBenedictis Ron Oldfield Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company,for the United States Department of Energy under contract DE-AC04-94AL85000.
Overview • SC2003 Demonstration of APItest v.1 • APItest Development • Lessons learned • v.2 • Ron Oldfield
SC2003 (APItest v.1) • Presented APItest at SC2003 in the ASCI booth. • HTTP interface developed for demo after September meeting. • Demonstrated APItest working with some basic tests. • Demo…
APItest v.2 • Built on Twisted Framework • URL: http://www.twistedmatrix.com • Better development environment for: • HTTPD mode of operation • Distributed component testing • DB interfacing
APItest v.2 • Some new Test file formats • Collaboration with Scott Jackson • Separates tests from groupings to allow test reuse. • Test file (.apt) -- contains 1 test • Batch file (.apb) -- lists groups of test w/ ordering • Dependencies specified in batch files similar to GraphVIZ file formatting.
New File Formats… Why? • Why split Test file from its dependencies? • Organization • Can organize tests more readily • Reusability • APItest v.1 requires you to cut and paste a LOT • Readability • Smaller files • Each file more targeted
APItest v.2 Test File Example • <?xml version="1.0" encoding="utf-8" ?> • <testDef> • <info>Some information about the this test</info> • <test name="test_name" • minPctMatch="100" • maxPctMatch="100" • numReps="1" • onMismatch="CONTINUE"> • <input name="sd">some sss command</input> • <input name="comp2">another sss command</input> • <output name="sd" format="regexp">expected reply from sd</output> • <output name="comp2" format="literal">expected reply from comp2</output> • </test> • </testDef>
APItest v.2 Batch File Example <?xml version="1.0" encoding="utf-8" ?> <testBatch> <info>Description of the test file</info> <testname="research.foo.foobar" /> <testname="research.foo.bar" /> <depparent="research.a" child="research.b" status="PASS" /> <depparent="research.a" child="research.c" /> <depparent="research.b" child="research.e" /> <depparent="research.c" child="research.d" /> <depparent="research.d" child="research.e" status="ANY" /> </testBatch>
APItest v.2 Batch File Example (Graphically) research/foo/foobar.apt research/a.apt research/foo/bar.apt research/b.apt research/c.apt research/d.apt research/e.apt
APItest v.2 Tests • APItest v.2 is the release version. • Learned a LOT from development of v.1 • Thanks for all the great feedback from those who’ve tried it out. • v.2 is mostly an integration problem with Twisted. • Twisted will greatly improve the ease for distributed testing. • Would like a copy of the latest API documents for all components if not posted on SSS Web Notebook. • Feedback is still greatly appreciated… • We have a telecon number - can set one up anytime. • Hope to get some real test suites going this quarter.
Twisted Python • Framework, written in Python for writing networked applications. • Some Features: • web server • RDDB interface • Object broker • Asynchronous event handling • Distributed Applications