<!-- -*- coding: utf-8 -*- -->
(2009-05-23)
Spooler
- manages a queue of test jobs and several backends
- public methods (used by frontends):
- getStatus
- getBackends
- getBackendStatus,
- getBackendInputFields
- getBackendTestFields
- appendJob
- getResult,
- normal progress:
- get spooler handle
- append a job: use 'appendJob' (cf. 'BackendJob' for required
key-value-pairs) which will return a a job ID
- get the result (used 'getResult' with the job ID; getResult
returns a dictionary)
- public methods (used by 'backendctl'):
- addBackend
- removeBackend
Backend
- execute/process tests
- attributes: id, name, version, input fields, test environments
- public methods: execute, getInputFields, getTestFields, shutdown
- normal progress:
- spooler calls execute
- execute calls process_execute, which must be implemented by each backend
- execute returns a dictionary
BackendJob/TestJob
- at least a dictionary with key-value-pairs
- required keys: backend, submission/testTerm
- all other keys are specified by the backend's input schema
BackendResult/TestResult
- at least a dictionary with key-value-pairs
- required keys: value, message
*value*
- normal case: True/False (e.g., Haskell or Scheme backend) or 0..100
(e.g., Keywords backend)
- error case: a negative integer
- undefinded error: -42
- internal error (spooler): -100
- authentication failed (spooler): -110
- backend not registered (spooler): -120
- backend already registered (spooler): -121
- backend not found (spooler): -122
- invalid or insufficient job data (spooler): -150
- unexpected backend result type (spooler): -151
- internal error during backend call or in backend (spooler): -152
- internal error during job processing (spooler): -153
- no result for a job (spooler): -160
- internal error (backend): -200
- authentication failed (backend): -210
- internal error during test (backend): -215
- no test data found (backend): -216
- no test environment/specification selected (backend): -217
- internal error during syntax check (ProgrammingBackend): -220
- no compiler/interpreter defined (ProgrammingBackend): -221
- internal error during semantic check (ProgrammingBackend): -230
*message*
- backend specific messages used as feedback