Implement basic smoke test

This commit is contained in:
Mikolaj Izdebski 2023-12-07 14:36:32 +01:00
parent b14e048321
commit 3125eb89db
6 changed files with 100 additions and 0 deletions

View File

@ -6,3 +6,4 @@ decision_contexts:
- bodhi_update_push_stable
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/javapackages.functional}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/smoke.functional}

5
plans/smoke.fmf Normal file
View File

@ -0,0 +1,5 @@
summary: Basic smoke test
discover:
how: fmf
execute:
how: tmt

54
tests/Sanity/smoke/calc.y Normal file
View File

@ -0,0 +1,54 @@
%{
%}
%token NUM
%left '+' '-'
%left '*' '/'
%%
exp : NUM { $$.ival = $1.ival; }
| exp '+' exp { $$.ival = $1.ival + $3.ival; }
| exp '-' exp { $$.ival = $1.ival - $3.ival; }
| exp '*' exp { $$.ival = $1.ival * $3.ival; }
| exp '/' exp { $$.ival = $1.ival / $3.ival; }
| '(' exp ')' { $$.ival = $2.ival; }
;
%%
private String buf;
private void yyerror(String s) {
throw new RuntimeException("Parse error: " + s);
}
private int yylex() {
if (buf.isEmpty()) {
return 0;
}
int ch = buf.charAt(0);
buf = buf.substring(1);
if (ch >= '0' && ch <= '9') {
yylval.ival = ch - '0';
while (!buf.isEmpty() && buf.charAt(0) >= '0' && buf.charAt(0) <= '9') {
yylval.ival = yylval.ival * 10 + buf.charAt(0) - '0';
buf = buf.substring(1);
}
return NUM;
}
return ch;
}
private int parse(String expr) {
buf = expr;
yyparse();
return val_pop().ival;
}
public static void main(String args[])
{
Parser par = new Parser(true);
int res = par.parse(args[0]);
System.out.println("RESULT is: " + res);
}

View File

@ -0,0 +1,4 @@
summary: byaccj smoke test
description: |
Test basic functionality of byaccj.
require: java-devel

32
tests/Sanity/smoke/runtest.sh Executable file
View File

@ -0,0 +1,32 @@
#!/bin/bash
# Author: Mikolaj Izdebski <mizdebsk@redhat.com>
. /usr/share/beakerlib/beakerlib.sh
rlJournalStart
rlPhaseStartTest "check for presence of byaccj command"
rlAssertRpm byaccj
rlAssertBinaryOrigin byaccj byaccj
rlPhaseEnd
rlPhaseStartTest "display byaccj usage"
rlRun -s "byaccj" 1
rlAssertGrep "^usage:" $rlRun_LOG
rlAssertGrep "Jclass=className" $rlRun_LOG
rlPhaseEnd
rlPhaseStartTest "generate, compile and run a simple parser"
rlRun -s "byaccj -J calc.y"
rlAssertExists "Parser.java"
rlAssertExists "ParserVal.java"
rlRun -s "javac *.java"
rlAssertExists "Parser.class"
rlAssertExists "ParserVal.class"
rlRun -s "java -cp . Parser '(42+10)/8*5'"
rlAssertGrep "^RESULT is: 30" $rlRun_LOG
rlRun -s "java -cp . Parser 'boom'" 1
rlAssertGrep "syntax error" $rlRun_LOG
rlPhaseEnd
rlJournalEnd
rlJournalPrintText

4
tests/main.fmf Normal file
View File

@ -0,0 +1,4 @@
contact: Mikolaj Izdebski <mizdebsk@redhat.com>
framework: beakerlib
test: ./runtest.sh
tier: 1