Avocado Documentation Release 91.0
Total Page:16
File Type:pdf, Size:1020Kb
avocado Documentation Release 91.0 Avocado Development Team Sep 30, 2021 Quick Start 1 How does it work? 3 2 Why should I use it? 5 2.1 Multiple result formats..........................................5 2.2 Sysinfo data collector..........................................5 2.3 Job Replay and Job Diff.........................................6 2.4 Extensible by plugins..........................................7 2.5 Utility libraries..............................................7 3 Avocado Python API 9 4 How to install 11 5 Documentation 13 6 Bugs/Requests 15 7 Changelog 17 8 License 19 9 Build and Quality Status 21 9.1 Welcome to Avocado........................................... 21 9.1.1 How does it work?....................................... 21 9.1.2 Why should I use it?...................................... 22 9.1.3 Avocado Python API...................................... 24 9.1.4 How to install.......................................... 24 9.1.5 Documentation......................................... 25 9.1.6 Bugs/Requests......................................... 25 9.1.7 Changelog............................................ 25 9.1.8 License............................................. 25 9.1.9 Build and Quality Status.................................... 25 9.2 Avocado User’s Guide.......................................... 25 9.2.1 About Avocado......................................... 25 9.2.2 Installing............................................ 26 9.2.3 Introduction........................................... 28 9.2.4 Basic Concepts......................................... 39 9.2.5 Basic Operations........................................ 44 i 9.2.6 Results Specification...................................... 49 9.2.7 Filtering tests by tags...................................... 53 9.2.8 Configuring........................................... 55 9.2.9 Managing Requirements.................................... 59 9.2.10 Managing Assets........................................ 61 9.2.11 Avocado Data Directories.................................... 63 9.2.12 Avocado logging system.................................... 63 9.2.13 Understanding the plugin system................................ 64 9.2.14 Understanding the test discovery (Avocado Loaders)..................... 69 9.2.15 Advanced usage......................................... 72 9.2.16 What’s next?.......................................... 73 9.3 Avocado Test Writer’s Guide....................................... 73 9.3.1 Writing a Simple Test...................................... 73 9.3.2 Writing Avocado Tests with Python.............................. 74 9.3.3 Advanced logging capabilities................................. 101 9.3.4 Test parameters......................................... 103 9.3.5 Utility Libraries......................................... 107 9.3.6 Subclassing Avocado...................................... 111 9.3.7 Integrating Avocado....................................... 113 9.4 Avocado Contributor’s Guide...................................... 114 9.4.1 Brief introduction........................................ 114 9.4.2 How can I contribute?...................................... 114 9.4.3 Development environment................................... 118 9.4.4 Style guides........................................... 119 9.4.5 Writing an Avocado plugin................................... 120 9.4.6 The “nrunner” and “legacy runner” test runner......................... 128 9.4.7 Implementing other result formats............................... 140 9.4.8 Request for Comments (RFCs)................................. 140 9.4.9 Releasing Avocado....................................... 146 9.4.10 Avocado development tips................................... 149 9.4.11 Contact information....................................... 150 9.5 Optional plugins............................................. 150 9.5.1 Avocado-ec2 Plugin....................................... 150 9.5.2 Golang Plugin.......................................... 150 9.5.3 Result plugins.......................................... 151 9.5.4 Robot Plugin.......................................... 153 9.5.5 CIT Varianter Plugin...................................... 154 9.5.6 PICT Varianter plugin...................................... 162 9.5.7 Multiplexer........................................... 163 9.5.8 Multiplexer concept....................................... 163 9.5.9 Yaml_to_mux plugin...................................... 166 9.6 Avocado Releases............................................ 176 9.6.1 How we release Avocado.................................... 176 9.6.2 Long Term Stability Releases.................................. 176 9.6.3 Regular Releases........................................ 196 9.7 BP000.................................................. 286 9.7.1 TL;DR.............................................. 287 9.7.2 Motivation............................................ 287 9.7.3 Specification.......................................... 288 9.7.4 Backwards Compatibility.................................... 291 9.7.5 Security Implications...................................... 291 9.7.6 How to Teach This....................................... 291 9.7.7 Related Issues.......................................... 291 9.7.8 References........................................... 291 ii 9.8 BP001.................................................. 291 9.8.1 TL;DR.............................................. 292 9.8.2 Motivation............................................ 293 9.8.3 Specification.......................................... 294 9.8.4 Backwards Compatibility.................................... 298 9.8.5 Security Implications...................................... 299 9.8.6 How to Teach This....................................... 299 9.8.7 Related Issues.......................................... 299 9.8.8 References........................................... 300 9.9 BP002.................................................. 300 9.9.1 TL;DR.............................................. 301 9.9.2 Motivation............................................ 301 9.9.3 Specification.......................................... 301 9.9.4 Backward Compatibility.................................... 304 9.9.5 Security Implications...................................... 304 9.9.6 How to Teach This....................................... 304 9.9.7 Related Issues.......................................... 305 9.9.8 References........................................... 305 9.10 BP003.................................................. 305 9.10.1 TL;DR.............................................. 306 9.10.2 Motivations........................................... 307 9.10.3 Goals of this BluePrint..................................... 307 9.10.4 Requirements.......................................... 307 9.10.5 Suggested Terminology for the Task Phases.......................... 310 9.10.6 Task life-cycle example..................................... 311 9.10.7 Implementation Example.................................... 315 9.10.8 Backwards Compatibility.................................... 320 9.10.9 Security Implications...................................... 320 9.10.10 How to Teach This....................................... 320 9.10.11 Related Issues.......................................... 320 9.10.12 Future work........................................... 320 9.10.13 References........................................... 321 9.11 Other Resources............................................. 321 9.11.1 Open Source Projects Relying on Avocado........................... 321 9.11.2 Avocado extensions....................................... 322 9.11.3 Presentations.......................................... 323 9.12 Avocado’s Configuration Reference................................... 323 9.12.1 assets.fetch.ignore_errors.................................... 323 9.12.2 assets.fetch.references..................................... 324 9.12.3 assets.fetch.timeout....................................... 324 9.12.4 assets.list.days.......................................... 324 9.12.5 assets.list.overall_limit..................................... 324 9.12.6 assets.list.size_filter....................................... 324 9.12.7 assets.purge.days........................................ 324 9.12.8 assets.purge.overall_limit.................................... 325 9.12.9 assets.purge.size_filter..................................... 325 9.12.10 assets.register.name....................................... 325 9.12.11 assets.register.sha1_hash.................................... 325 9.12.12 assets.register.url........................................ 325 9.12.13 config.datadir.......................................... 325 9.12.14 core.input_encoding...................................... 326 9.12.15 core.paginator.......................................... 326 9.12.16 core.show............................................ 326 9.12.17 core.verbose........................................... 326 iii 9.12.18 datadir.paths.base_dir...................................... 326 9.12.19 datadir.paths.cache_dirs..................................... 326 9.12.20 datadir.paths.data_dir...................................... 327 9.12.21 datadir.paths.logs_dir...................................... 327 9.12.22 datadir.paths.test_dir...................................... 327 9.12.23 diff.create_reports........................................ 327 9.12.24 diff.filter............................................