Smoke Query Language (Smoquel)
The Smoke Query Language or Smoquel was designed as an
irc-bot interface to the smoke database where parsed versions of smoke-reports
are stored.
The {patchlevel} and last smoqueries gather information about the
different attributes of smoke reports so that they can be transferred
to SQL. The result of a smoquery is a single smoke-report that
qualifies as the last. This is the report with the highest
changenumber (patchlevel), that came last in the newsgroup (has the
highest articlenumber).
The language is parsed by a Parse::RecDescent parser and has
basically five (5) production-rules. Most keywords have one or more
alternatives (see table below).
I run a webface for Smoquel to smoquery
the smoke database from your browser.
The basic production rules for Smoquel 5
- [show] version
-
Shows the version of the agent and the language.
- [show] list os|arch|cc
-
Shows a list of known operating systems, acrchitectures or compilers.
- [show] id {report_id}
-
Show a report by its report_id as used on the
perl.org nntp gateway(new window)
-
[show] {patchlevel} [[to] pass|fail] [[for] <os>[ <osver>]]
[on <arch>] [from <smoker>] [using <cc>]
-
Show "the last" report of patchlevel that matches the criteria
specified.
-
[show] [the] last [blead|maint|any|{pversion}] [before|after {patchlevel}]
[[to] pass|fail]
[test <testname>]
[[for] <os>[ <osver>]]
[on <arch>] [from <smoker>] [using <compiler>]
-
Show "the last" report that matches the criteria specified.
Phrases in [ ] are optional.
Words in < > are MySQL regexen.
Words in { } are (version)numbers.
Smoquel keywords and their alternatives
Keyword | Alternative(s) |
show | what is, what's, whats |
list | all |
os arch cc (with list) |
ossen, osses architecture, architectures, archs, hw
compiler, compilers, ccs |
blead, maint, any | bleadperl, maintperl, anyperl |
before, after | <, > |
to (with status) | that |
pass fail |
passed, passes, succeed, succeeds, succeded, ok
failed, fails, nok |
for | with |
on | having, hw |
from | by |
using | cc, compiler |
Examples of Smoquries
- {patchlevel} smoquery
- 24263 for solaris on x86
- 24309 for hp-ux
- 24309 for hp-ux by merijn
- last smoquery
- last
- last for hp-ux
- what is the last bleadperl before 24271 that passed using xlc
- last to pass test 105oneshot-deflate.t for linux 2.6 on ppc by ztreet