project: rimmer
rimmer currently supports
- all of the instruments that skipper supports
- output reports
- tests
- test prestates
- test poststates
- CSV output for test results
- log output for test results
- customisation of the CSS for the HTML output report
- external test modules
- a small built in test library
the general structure of rimmer is based around a shared library and a runtime. the shared library contains all of the actual test executive bits and the runtime application contains some tests, an external module loader, and a test specification loader, validator, and runner.
rimmer test specifications are ".ace" files and are yaml which contains details about TE, the EUT, output report configuration, external test modules, and tests to run
the output reports contain information about any TE used, any provided EUT information, a passfail, readings(truncatable to a configurable level) with links to unmodified logs and readings, and information about the test performed
test pre and post states are states that instruments can be put in before running tests, for example multiplexors may be set to a test specification defined configuration. these are non optional for tests and are presented in the report
the built in tests are
- watcher
- simpleEfficiency
origin of the name
ace rimmer will be a test pilot. a test pilot runs tests. i want this to be ace! therefore: fingers crossed
below is an example ace file which uses a switchBox and a siglent SDM3055 with some resistors
# -*- mode: yaml -*-
---
TE:
- DMM: DMM
URL: tcp://192.168.0.13:5025
driver: "siglent SDM3055(-SC)"
- switchSet: switches
URL: tcp://192.168.0.5:5025
driver: JBDLI switchBox
channels:
- 5k:
bank: 3
contact: 0
closed: false
- 10k:
bank: 3
contact: 2
closed: false
- 20k:
bank: 3
contact: 1
closed: false
EUT:
- name: this programme!
- meta: this field
- remarks: |
the EUT is a set of resistors to be wired as follows:-
* a 5k resistor connected to the C contact of "switches" bank 1 contact 1
* a 10k resistor connected to the C contact of "switches" bank 1 contact 2
* a 20k resistor connected to the C contact of "switches" bank 1 contact 3
* the free end of all of these resistors is to be connected together
* all three NO contacts should be connected together
* the two commoned points should be connected to "DMM"
* DO NOT connect any voltage sources
tests:
- test: only 5k switch on
catalogueName: "watcher"
preState:
5k:
- closed: true
10k:
- closed: false
20k:
- closed: false
args:
- sources: DMM.resistance
- samples: 1
- expectTolerance: DMM.resistance(5e3 2.5%)
postState:
5k:
- closed: false
10k:
- closed: false
20k:
- closed: false
- test: all switches off
catalogueName: "watcher"
args:
- sources: DMM.resistance
- samples: 1
- expectAbove: DMM.resistance(10e9)