%Task tests

\def\testtaska
{
\mytabulartestresult{OK}
{Text result is slightly different from "test\_periodic0.jpg" file.
Use of dummy processor?}
}

\def\testtaskb
{
\mytabulartestresult{OK}
{
No test on address space existence, Cheddar can crash by selecting a task 
in update/add task window if the task address space has a wrong name.
}
}

\def\testtaskc
{
\mytabulartestresult{NA}
{
\begin{itemize}
\item "edf2" : no reference for response time.
\item "llf2" : strange behavior for the $2^{nd}$ task "T20" activation, 
task "T11" shall have a higher priority but "T20" takes the processor.
\item "rm2" : message for processor utilization is not clear,
not sure "T15" response time is 6.
\item Cheddar crash when try to select task in update/add task window (error in XML project file).
\end{itemize}
}
}

\def\testtaskd
{
\mytabulartestresult{KO}
{
Scheduling OK. 
Simulation results OK.
Feasibility KO : no response time computation for POSIX. 
}
}

\def\testtaske
{
\mytabulartestresult{OK}
{
Scheduling OK. 
Simulation results OK.
Feasibility OK (no results because set of periodic/aperiodic tasks). 
}
}

\def\testtaskf
{
\mytabulartestresult{KO}
{
Utilization factor equation to be checked for all scheduler.
}
}

\def\testtaskg
{
\mytabulartestresult{OK}
{
Utilization factor equation to be checked for all scheduler.
}
}

\def\testtaskh
{
\mytabulartestresult{OK}
{
The base period is computed with the following equation : 

$B = max(start time) + 2 * PPCM(period)$

Thus $B = 10 + 2 * 290 = 590$. OK.
}
}

\def\testtaskj
{
\mytabulartestresult{OK}
{
}
}

\def\testtaskk
{
\mytabulartestresult{OK}
{
}
}

\def\testtaskl
{
\mytabulartestresult{OK}
{

}
}

\def\testtaskm
{
\mytabulartestresult{OK}
{

}
}

\def\testtaskn
{
\mytabulartestresult{OK}
{
}
}


\def\testtasko
{
\mytabulartestresult{OK}
{
2 activations can occur at the same time!!!
}
}


% message tests

\def\testmessagea
{
\mytabulartestresult{KO}
{
\begin{itemize}
\item Task "receiver1" : scheduling OK, simulation result KO (no response time computed!!!).
\item Task "sender1" : scheduling OK, simulation result OK
\item Message "m1" : no scheduling!!!
\end{itemize}
}
}

\def\testmessageb
{
\mytabulartestresult{KO}
{
Strange drawing for messages!!!
}
}


% resource tests

\def\testresourcea
{
\mytabulartestresult{OK}
{
Textual message seems better in test 2.
}
}

\def\testresourceb
{
\mytabulartestresult{OK}
{

}
}

\def\testresourcec
{
\mytabulartestresult{OK}
{
}
}

\def\testresourced
{
\mytabulartestresult{OK}
{
}
}

\def\testresourcee
{
\mytabulartestresult{OK}
{

}
}

\def\testresourcef
{
\mytabulartestresult{OK}
{

}
}

\def\testresourceg
{
\mytabulartestresult{OK}
{

}
}

\def\testresourceh
{
\mytabulartestresult{OK}
{

}
}

\def\testresourcei
{
\mytabulartestresult{OK}
{

}
}

\def\testresourcej
{
\mytabulartestresult{OK}
{

}
}


% statistic tool tests

\def\teststatistica
{
\mytabulartestresult{OK}
{

}
}


% buffer tests

\def\testbuffera
{
\mytabulartestresult{OK}
{

}
}

\def\testbufferb
{
\mytabulartestresult{OK}
{
Buffer occupation graph window for buffer B2 seems strange (flat).
}
}


% end to end response time

\def\testendtoenda
{
\mytabulartestresult{KO}
{
Response time from simulation is wrong for task "T2" (3 instead 6, the precedence does not seem
to be taken int account).
}
}

\def\testendtoendb
{
\mytabulartestresult{KO}
{
}
}

\def\testendtoendc
{
\mytabulartestresult{KO}
{
Response time from simulation is wrong for task "T2" (3 instead 6, the precedence does not seem
to be taken int account).
}
}

\def\testendtoendd
{
\mytabulartestresult{KO}
{
Response time from simulation is wrong for task "T2" (3 instead 6, the precedence does not seem
to be taken int account).
}
}


% dependency tests

\def\testdependencya
{
\mytabulartestresult{OK}
{
}
}

\def\testdependencyb
{
\mytabulartestresult{OK}
{

}
}

\def\testdependencyc
{
\mytabulartestresult{OK}
{ 
}
}

\def\testdependencyd
{
\mytabulartestresult{OK}
{
}
}


% precedences graph tests

\def\testprecedencegrapha
{
\mytabulartestresult{ND}
{

}
}

\def\testprecedencegraphb
{
\mytabulartestresult{ND}
{

}
}

\def\testprecedencegraphc
{
\mytabulartestresult{ND}
{

}
}

\def\testprecedencegraphd
{
\mytabulartestresult{ND}
{

}
}

\def\testprecedencegraphe
{
\mytabulartestresult{ND}
{

}
}

\def\testprecedencegraphf
{
\mytabulartestresult{ND}
{

}
}

\def\testprecedencegraphg
{
\mytabulartestresult{ND}
{

}
}


% parametric tests

\def\testparametrica
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricb
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricc
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricd
{
\mytabulartestresult{OK}
{
}
}

\def\testparametrice
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricf
{
\mytabulartestresult{KO}
{
For processor "hpf2", the scheduling is not correct (task with lower priority value are
executed first, should be the contrary).
Ticket has been created.
}
}

\def\testparametricg
{
\mytabulartestresult{OK}
{
}
}

\def\testparametrici
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricj
{
\mytabulartestresult{OK}
{
}
}

\def\testparametrick
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricl
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricm
{
\mytabulartestresult{KO}
{
}
}

\def\testparametricn
{
\mytabulartestresult{OK}
{
}
}

\def\testparametrico
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricp
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricq
{
\mytabulartestresult{OK}
{
}
}

\def\testparametricr
{
\mytabulartestresult{KO}
{
Ticket has been created.
}
}

% partition tests

\def\testpartitiona
{
\mytabulartestresult{OK}
{
}
}

\def\testpartitionb
{
\mytabulartestresult{KO}
{
Crash : task has been changed from periodic to aperiodic, click on Partition with Best Fit $\Rightarrow$
crash.
Ticket has been created.
}
}

\def\testpartitionc
{
\mytabulartestresult{OK}
{

}
}

\def\testpartitiond
{
\mytabulartestresult{OK}
{

}
}

\def\testpartitione
{
\mytabulartestresult{OK}
{
\begin{itemize}
\item A $4^{th}$ processor should be added by default.
\item No references to compare the results.
\end{itemize}
}
}

\def\testpartitionf
{
\mytabulartestresult{OK}
{
Test interest ?
}
}

\def\testpartitiong
{
\mytabulartestresult{OK}
{
}
}


% automaton tests

\def\testautomatona
{
\mytabulartestresult{OK}
{
}
}

\def\testautomatonb
{
\mytabulartestresult{OK}
{
}
}

\def\testautomatonc
{
\mytabulartestresult{OK}
{
}
}

\def\testautomatond
{
\mytabulartestresult{OK}
{
}
}

\def\testautomatone
{
\mytabulartestresult{OK}
{
}
}

\def\testautomatonf
{
\mytabulartestresult{OK}
{
}
}

\def\testautomatong
{
\mytabulartestresult{OK}
{
}
}

\def\testautomatonh
{
\mytabulartestresult{OK}
{
}
}


% large task set tests

\def\testlargetaskseta
{
\mytabulartestresult{OK}
{
}
}

\def\testlargetasksetb
{
\mytabulartestresult{OK}
{
}
}


% AADL/stood tests

\def\testaadla
{
\mytabulartestresult{OK}
{
}
}

% conclusion

\def\testconclusion
{
\noindent \underline{Features to be added :}
\begin{itemize}

\item Cheddar project filename should appear on Cheddar window.

\item In "open/save file" dialog box, current directory should be memorized.
Furthermore, an extension filter should be added (*.xml or *.aadl).

\item Change "random" menu by "Statistic/probabilist" menu.

\item Add unit in "buffer" dialog boxes.

\end{itemize}

\noindent \underline{Bugs found during tests :}
\begin{itemize}
\item Several crashes : 
\begin{itemize}
\item \mycit{test 1} and \mycit{test 2} in \mycit{task} section.   
\item \mycit{test 1} in \mycit{dependencies} section.
\item \mycit{test 2} and \mycit{test 7} in \mycit{partition} section.   
\end{itemize}

\item Response time computation problem when tasks have an identical priority : 
tasks with same priority preemption should be taken into account to consider
the worst case.

\item Change "precedencies" to "precedences".

\item Edit box limitation for "*.sc" files (in all "add/update" dialog boxes).

\item Problem if a task type is changed from "periodic" to "aperiodic" : one
have to assign 0 to the period (should be automatic when the "modify" button
is pressed).

\item Bug find during Cheddar AADL manipulation : 

\begin{itemize}

\item If a very simple project is done 
(just 1 processor), if one export, import and export the project in AADL, another
import will give an "AADL parsing error" and in the AADL file, a supplementary
processor appears with only a "requires bus access" in a "features" section
for certain scheduler. The option to include system/subsystem name in Cheddar feature
does not seem to do any good for this pb. 

\item If a project containing a processor and an address space with "No local scheduler" 
defined is exported in AADL, the properties does not appear in the AADL file and when 
one import the same file, the local scheduling protocol chosen will be the default one
("Rate Monotonic"). Furthermore, the "Scheduling\_Protocol" property in a process
implementation is not parsed by Cheddar (a Cheddar exported AADL file containing a
process/address space local scheduler can be imported in Cheddar)...



\end{itemize}

\item ...
\end{itemize}

\noindent \underline{Test document : }

\noindent The tests shall be split in two parts : HMI tests and framework tests. 

\bigskip
\noindent The main advantage is that framework tests could be automated : 
framework can give result in textual format,
a "diff" between a reference file and a result file can be done (even is there is a slight 
difference between the reference and a good result (time, date,...), 
the tester can easily see if this difference is important or not).

\bigskip
\noindent Furthermore, group tests can be chosen : for example, HMI tests, which are long
to make, can be done less time than framework tests.

\bigskip
\noindent All HMI features are not tested and perhaps framework features as well.

\bigskip
\noindent I think there is not enough AADL test.
}














