Dedication
Dedicated to my wife, Joanna, who has, for many years now, supported all my wacky ideas and nutty projects with only the occasional grumble and roll of the eyes.
Thanks
To all the great people from the various places I’ve worked over the years, thank you. I’ve benefitted from your patience and insight and I hope that some of what I’ve learned from you has been incorporated into Megatest.
Also, my thanks to all the wonderful open source creators. These truly free projects, from Linux, xemacs, chicken scheme, and fossil to asciidoc and bash are the philosophical and direct underpinnings of the Megatest project.
Preface
This book is organised as three sub-books; getting started, writing tests and reference.
Why Megatest?
The Megatest project was started for two reasons, the first was an immediate and pressing need for a generalized tool to manage a suite of regression tests and the second was the fact that I had written or maintained several such tools at different companies over the years and it seemed a good thing to have a single open source tool, flexible enough to meet the needs of any team doing continuous integrating and or running a complex suite of tests for release qualification.
Megatest Design Philosophy
Megatest is intended to provide the minimum needed resources to make writing a suite of tests and implementing continuous build for software, design engineering or process control (via owlfs for example) without being specialized for any specific problem space. Megatest in of itself does not know what constitutes a PASS or FAIL of a test. In most cases megatest is best used in conjunction with logpro or a similar tool to parse, analyze and decide on the test outcome.
Megatest Architecture
All data to specify the tests and configure the system is stored in plain text files. All system state is stored in an sqlite3 database. Tests are launched using the launching system available for the distributed compute platform in use. A template script is provided which can launch jobs on local and remote Linux hosts. Currently megatest uses the network filesystem to call home to your master sqlite3 database.
Getting Started
How to install Megatest and set it up for running your regressions and continuous integration process.
Installation
Dependencies
Chicken scheme and a number of "eggs" are required for building Megatest. See the script installall.sch in the utils directory of the distribution for a mostly automated way to install everything needed for building Megatest on Linux.
[An example footnote.]
And now for something completely different: monkeys, lions and tigers (Bengal and Siberian) using the alternative syntax index entries. Note that multi-entry terms generate separate index entries.
Here are a couple of image examples: an example inline image followed by an example block image:
Followed by an example table:
Option | Description |
---|---|
-a USER GROUP |
Add USER to GROUP. |
-R GROUP |
Disables access to GROUP. |
Lorum ipum…
Sub-section with Anchor
Sub-section at level 2.
Chapter Sub-section
Sub-section at level 3.
Chapter Sub-section
Sub-section at level 4.
This is the maximum sub-section depth supported by the distributed
AsciiDoc configuration.
[A second example footnote.]
The Second Chapter
An example link to anchor at start of the first sub-section.
An example link to a bibliography entry [taoup].
Reference
The First Chapter of the Second Part
Chapters grouped into book parts are at level 1 and can contain sub-sections.
The testconfig File
# testconfig [requirements] # A normal waiton waits for the prior tests to be COMPLETED # and PASS, CHECK or WAIVED waiton test1 test2 # A item based waiton will start items in a test when the # same-named item is COMPLETED and PASS, CHECK or WAIVED # in the prior test # mode normal | toplevel # With a toplevel test you may wish to generate your list # of tests to run dynamically # # waiton #{shell get-valid-tests-to-run.sh}
Appendix A: Example Appendix
One or more optional appendixes go here at section level zero.
Appendix Sub-section
Note
|
Preface and appendix subsections start out of sequence at level 2 (level 1 is skipped). This only applies to multi-part book documents. |
Example Bibliography
Example Glossary
Glossaries are optional. Glossaries entries are an example of a style of AsciiDoc labeled lists.
- A glossary term
-
The corresponding (indented) definition.
- A second glossary term
-
The corresponding (indented) definition.
Example Colophon
Text at the end of a book describing facts about its production.