140 likes | 276 Views
Component Interface Testing. SciDAC Quarterly Report Argonne, IL William McLendon Erik DeBenedictis Ron Oldfield Sandia National Laboratories.
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