\documentclass[a4paper,11pt]{paper} \usepackage{t1enc} \usepackage{color} \usepackage{vmargin} \usepackage{array} \usepackage{minitoc} \usepackage{ifthen} \usepackage{calc} %\setmarginsrb{2cm}{2cm}{2cm}{1.5cm}{0cm}{0cm}{0cm}{0cm} \setcounter{tocdepth}{3} \newcolumntype{a}{p{8cm}} \newcolumntype{t}{p{6cm}} \newcolumntype{d}{p{3cm}} \newcolumntype{e}{p{11cm}} %%% New commands \newcommand{\mysection}[1]{\textcolor{blue}{\section{\textcolor{blue}{#1}}}} \newcommand{\mysubsection}[1]{\textcolor{blue}{\subsection{#1}}} %\newcommand{\mysection}[1]{\section{#1}} %\newcommand{\mysubsection}[1]{\subsection{#1}} \newcommand{\TBD}{\textcolor{red}{To Be Done}} \definecolor{gray25}{gray}{0.25} \newcommand{\mycit}[1]{\textcolor{gray25}{\textit{#1}}} \newcommand{\mytestresult}[1] { \stepcounter{testTotal} \ifthenelse{\equal{#1}{OK}}{\stepcounter{testOKTotal} \textbf{\textcolor{green}{OK}}}{} \ifthenelse{\equal{#1}{KO}}{\stepcounter{testKOTotal} \textbf{\textcolor{red}{KO}}}{} \ifthenelse{\equal{#1}{NA}}{\stepcounter{testNATotal} \textbf{NA}}{} \ifthenelse{\equal{#1}{ND}}{\stepcounter{testNDTotal} \textbf{Not Done}}{} } \newcommand{\mytabulartestresult}[2] { \begin{center} \begin{tabular}{|d|e|} \hline \textbf{Results} : & \mytestresult{#1} \\ \hline \textbf{Observations} : & #2 \\ \hline \end{tabular} \end{center} } \include{April2008Report} %\include{DefaultReport} \begin{document} % new counter definition for test statistics \newcounter{testTotal} \newcounter{testOKTotal} \newcounter{testKOTotal} \newcounter{testNATotal} \newcounter{testNDTotal} \newcounter{OKTotalOnTotal} \newcounter{KOTotalOnTotal} \newcounter{NATotalOnTotal} \newcounter{NDTotalOnTotal} \title{Cheddar Tests} \author{F. Singhoff, J. Legrand} % Remove command to get current date \date{} \maketitle \newpage \dosecttoc \tableofcontents \newpage \mysection{Task scheduling} \secttoc \newpage \mysubsection{Test 0 : processors without tasks} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_periodic0.xml} Cheddar project. & Cheddar contains 6 preemptive processors (edf0, llf0, rm0, dm0, hpf0 and dummy) sand 1 task. \\ \hline Click on \mycit{scheduling simulation} and "scheduling feasibility" toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check these results correspond to the results from \mycit{test\_periodic0.jpg} file. & Results should be equivalent. \\ \hline \end{tabular} \end{center} \testtaska \mysubsection{Test 1 : preemptive processors with periodic tasks} The task sets defined in these tests use various parameter values for start time, deadline, capacity, period, priority, policy, ... \bigskip \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_periodic1.xml} Cheddar project. & Cheddar contains 5 preemptive processors (\mycit{edf1}, \mycit{llf1}, \mycit{rm1}, \mycit{dm1} and \mycit{hpf1}) and 10 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check these results correspond to the results from \mycit{test\_periodic1-1.jpg}, \mycit{test\_periodic1-2.jpg}, \mycit{test\_periodic1-3.jpg}, \mycit{test\_periodic1-4.jpg} and \mycit{test\_periodic1-5.jpg} files. & Results should be equivalent (for \mycit{rm1}, in harmonic task set case, processor utilization bound is 1). \\ \hline \end{tabular} \end{center} \testtaskb \mysubsection{Test 2 : non-preemptive processors with periodic tasks} Equivalent to previously test with non-preemptive schedulers. \bigskip \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_periodic2.xml} Cheddar project. & Cheddar contains 5 non-preemptive processors (\mycit{edf2}, \mycit{llf2}, \mycit{rm2}, \mycit{dm2} and \mycit{hpf2}) and 10 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testtaskc \mysubsection{Test 3 : HPF scheduling with a non null quantum} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_periodic3.xml} Cheddar project. & Cheddar contains 1 preemptive processor (\mycit{hpf3}) and 2 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testtaskd \mysubsection{Test 4 : POSIX scheduling policies (SCHED\_FIFO, RR or OTHERS)} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_periodic4.xml} Cheddar project. & Cheddar contains 1 preemptive processor (\mycit{hpf4}) and 8 tasks (2 periodic and 6 aperiodic tasks). \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testtaske \mysubsection{Test 5 : utilization factor test in non preemptive case} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_non\_preemptive\_utilization\_factor\-.xml} Cheddar project. & Cheddar contains 6 processors and 18 tasks. \\ \hline Click \mycit{scheduling feasibility} toolbar button. & Results appear on the Cheddar window result part. \\ \hline Check utilization factor. & \\ \hline \end{tabular} \end{center} \testtaskf \mysubsection{Test 6 : utilization factor test in preemptive case} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_preemptive\_utilization\_factor.xml} Cheddar project. & Cheddar contains 6 preemptive processors and 16 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testtaskg \mysubsection{Test 7 : base period computation with non 0 start time task} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_periodic\_with\_start\_time.xml} Cheddar project. & Cheddar contains 1 processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check the base period is equal to 590. & \\ \hline \end{tabular} \end{center} \testtaskh \mysubsection{Test 9 : DM an RM processors with aperiodic tasks} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_aperiodic0.xml} Cheddar project. & Cheddar contains 2 processors and 2 aperiodic tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check the results. & Exception raised for \mycit{rm0}. \\ \hline \end{tabular} \end{center} \testtaskj \mysubsection{Test 10 : HPF, LLF and EDF with aperiodic and periodic tasks} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_aperiodic1.xml} Cheddar project. & Cheddar contains 3 preemptive processors (\mycit{hpf1}, \mycit{edf1} and \mycit{llf1}) and 9 aperiodic/periodic tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check the results. & For feasibility tests exception are raised.\\ \hline \end{tabular} \end{center} \testtaskk \mysubsection{Test 11 : bound on task response time with non preemptive RM processor} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_non\_preemptive\_rate\_monotonic\_\-worst\_case\_task\_response\_time.xml} Cheddar project. & Cheddar contains 1 non preemptive processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check bound on task response time and textual message associated (file \mycit{test\_non\_preemptive\_rate\_monotonic\_worst\_\-case\_task\_response\_time.jpg}). & \\ \hline \end{tabular} \end{center} \testtaskl \mysubsection{Test 12 : bound on task response time with preemptive RM processor} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_preemptive\_rate\_monotonic\_worst\_\-case\_task\_response\_time.xml} Cheddar project. & Cheddar contains 1 preemptive processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check bound on task response time and textual message associated (file \mycit{test\_preemptive\_rate\_monotonic\_worst\_case\_\-task\_response\_time.jpg}). & \\ \hline \end{tabular} \end{center} \testtaskm \mysubsection{Test 13 : check activations with sporadic tasks} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_sporadic.xml} Cheddar project. & Cheddar contains 1 preemptive processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check is task activations are correctly computed. & \\ \hline \end{tabular} \end{center} \testtaskn \mysubsection{Test 14 : check activations with poisson tasks} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_poisson\_process.xml} Cheddar project. & Cheddar contains 1 preemptive processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check is task activations are correctly computed. & \\ \hline \end{tabular} \end{center} \testtasko \newpage \mysection{Message scheduling} \secttoc \newpage \mysubsection{Test 1 : message scheduling alone} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_message1.xml} Cheddar project. & Cheddar contains 2 processors, 2 tasks and 1 message. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testmessagea \mysubsection{Test 2 : message scheduling with other dependencies (eg. buffer)} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_message2.xml} Cheddar project. & Cheddar contains 2 processors, 5 tasks, 2 messages and 1 buffer. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testmessageb \newpage \mysection{Resource scheduling} \secttoc \newpage \mysubsection{Test 1 : no resource protocol and EDF} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource1.xml} Cheddar project. & Cheddar contains 1 processor, 2 tasks and 1 resource. \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Resource $\rightarrow$ Bound on blocking time $\rightarrow$ Compute and Display}. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testresourcea \mysubsection{Test 2 : no resource protocol and RM} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource2.xml} Cheddar project. & Cheddar contains 1 processor, 2 tasks and 1 resource. \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Resource $\rightarrow$ Bound on blocking time $\rightarrow$ Compute and Display}. & Results appear on the Cheddar window result part. \\ \hline Check results. & \\ \hline \end{tabular} \end{center} \testresourceb \mysubsection{Test 3 : PIP resource protocol and RM} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource3.xml} Cheddar project. & Cheddar contains 1 processor, 2 tasks and 1 resource. \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Resource $\rightarrow$ Bound on blocking time $\rightarrow$ Compute and Display}. & Results appear on the Cheddar window result part. \\ \hline Check results. & 2 for \mycit{$T_1$} and 0 for \mycit{$T_2$}.\\ \hline \end{tabular} \end{center} \testresourcec \mysubsection{Test 4 : PCP resource protocol and RM} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource4.xml} Cheddar project. & Cheddar contains 1 processor, 2 tasks and 1 resource. \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Resource $\rightarrow$ Bound on blocking time $\rightarrow$ Compute and Display}. & Results appear on the Cheddar window result part. \\ \hline Check results. & 2 for \mycit{$T_1$} and 0 for \mycit{$T_2$}.\\ \hline \end{tabular} \end{center} \testresourced \mysubsection{Test 5 : priority inversion with no resource protocol} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource5.xml} Cheddar project. & Cheddar contains 1 processor, 3 tasks and 1 resource. \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Resource $\rightarrow$ Looking for priority inversion from simulation}. & Results appear on the Cheddar window result part. \\ \hline Check results (file \mycit{test\_resource5.jpg}). & \\ \hline \end{tabular} \end{center} \testresourcee \mysubsection{Test 6 : deadlock} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource6.xml} Cheddar project. & Cheddar contains 1 processor, 3 tasks and 1 resource. \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Resource $\rightarrow$ Looking for deadlock from simulation}. & Results appear on the Cheddar window result part. \\ \hline Check no deadlock is found (file \mycit{test\_resource6.jpg}). & \\ \hline \end{tabular} \end{center} \testresourcef \mysubsection{Test 7 : PIP scheduling} This example is extracted from the Jane Liu's book (chapter 8, figure 8.8). \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource7.xml} Cheddar project. & Cheddar contains 1 processor, 5 tasks and 2 resources. \\ \hline Click on \mycit{scheduling simulation} toolbar button. & Results appear on the Cheddar window result part. \\ \hline Check scheduling (file \mycit{test\_resource7.jpg}). & \\ \hline \end{tabular} \end{center} \testresourceg \mysubsection{Test 8 : PCP scheduling} This example is extracted from the Jane Liu's book (chapter 8, figure 8.10). \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_resource8.xml} Cheddar project. & Cheddar contains 1 processor, 5 tasks and 2 resources. \\ \hline Click on \mycit{scheduling simulation} toolbar button. & Results appear on the Cheddar window result part. \\ \hline Check scheduling (file \mycit{test\_resource8.jpg}). & \\ \hline \end{tabular} \end{center} \testresourceh \mysubsection{Test 9 : IPCP scheduling} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_ipcp1.xml} Cheddar project. & Cheddar contains 1 processor, 2 tasks and 1 resource. \\ \hline Click on \mycit{scheduling simulation} toolbar button (10 time units simulation). & Results appear on the Cheddar window result part. \\ \hline Check scheduling (file \mycit{test\_ipcp1.jpg}). & \\ \hline \end{tabular} \end{center} \testresourcei \mysubsection{Test 10 : IPCP scheduling and deadlock} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_ipcp2.xml} Cheddar project. & Cheddar contains 1 processor, 2 tasks and 3 resources. \\ \hline Click on \mycit{scheduling simulation} toolbar button (15 time units simulation). & Results appear on the Cheddar window result part. \\ \hline Check scheduling (file \mycit{test\_ipcp2.jpg}). & \\ \hline \end{tabular} \end{center} \testresourcej \newpage \mysection{Statistic tools} \secttoc \newpage \mysubsection{Test 1 : response time distribution service (RM scheduler/periodic tasks)} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_random.xml} Cheddar project. & Cheddar contains 1 processor, 2 tasks and 3 resources. \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Random $\rightarrow$ Compute response time density}. & Results appear on Cheddar window. \\ \hline Check scheduling and density results (file \mycit{test\_random.jpg}). & \\ \hline \end{tabular} \end{center} \teststatistica \newpage \mysection{Buffer} \secttoc \newpage \mysubsection{Test 1 : buffer feasibility tests} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_buffer1.xml} Cheddar project. & Cheddar contains 1 processor, 5 tasks and 9 buffers (\mycit{P/P/1}, \mycit{M/P/1}, \mycit{M/M/1}, \mycit{M/D/1}, \mycit{M/G/1} and \mycit{M/G/s}). \\ \hline Click on \mycit{scheduling simulation} toolbar button and on \mycit{Tools $\rightarrow$ Buffer $\rightarrow$ Buffer analysis with feasibility tests}. & Results appear on Cheddar window. \\ \hline Check feasibility tests results (files \mycit{test\_buffer1-1.jpg} and \mycit{test\_buffer1-2.jpg}). & \\ \hline \end{tabular} \end{center} \testbuffera \mysubsection{Test 2 : buffer simulation tools} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_buffer2.xml} Cheddar project. & Cheddar contains 1 processor, 3 tasks and 2 buffers (\mycit{P/P/1} and \mycit{M/M/1}). \\ \hline Click on \mycit{scheduling simulation} toolbar button, on \mycit{Tools $\rightarrow$ Buffer $\rightarrow$ Buffer analysis with feasibility tests} and on \mycit{Tools $\rightarrow$ Buffer $\rightarrow$ Buffer analysis from scheduling simulation}. & Results appear on Cheddar window. \\ \hline Check feasibility tests results (file \mycit{test\_buffer2.jpg}). & \\ \hline \end{tabular} \end{center} \testbufferb \newpage \mysection{End to end response time with jitter} \secttoc \newpage \mysubsection{Test 1 : holistic jitter propagation with no task/processor cycle} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_jitter1.xml} Cheddar project. & Cheddar contains 2 processors, 4 tasks and precedences (\mycit{$T_4 \rightarrow T_2$} and \mycit{$T_1 \rightarrow T_3$}). \\ \hline Click on \mycit{scheduling simulation} toolbar button, on \mycit{Tools $\rightarrow$ Precedences $\rightarrow$ End to end response time $\rightarrow$ Compute and Display}. & Results appear on Cheddar window. \\ \hline Check end to end response time (file \mycit{test\_jitter1.jpg}). & \\ \hline \end{tabular} \end{center} \testendtoenda \bigskip \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_jitter3.xml} Cheddar project. & Cheddar contains 2 processors, 5 tasks and precedences (\mycit{$T_5 \rightarrow T_4 \rightarrow T_2$} and \mycit{$T_1 \rightarrow T_3$}). \\ \hline Click on \mycit{scheduling simulation} toolbar button, on \mycit{Tools $\rightarrow$ Precedences $\rightarrow$ End to end response time $\rightarrow$ Compute and Display}. & Results appear on Cheddar window. \\ \hline Check end to end response time computation is not started because of period control. & \\ \hline \end{tabular} \end{center} \testendtoendb \mysubsection{Test 2 : holistic jitter propagation with task/processor cycle} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_jitter2.xml} Cheddar project. & Cheddar contains 2 processors, 5 tasks and precedences (\mycit{$T_5 \rightarrow T_4 \rightarrow T_2$} and \mycit{$T_1 \rightarrow T_3$}). \\ \hline Click on \mycit{scheduling simulation} toolbar button, on \mycit{Tools $\rightarrow$ Precedences $\rightarrow$ End to end response time $\rightarrow$ Compute and Display}. & Results appear on Cheddar window. \\ \hline Check end to end response time (files \mycit{test\_jitter2-1.jpg} and \mycit{test\_jitter2-2.jpg}). & \\ \hline \end{tabular} \end{center} \testendtoendc \bigskip \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_jitter4.xml} Cheddar project. & Cheddar contains 2 processors, 5 tasks and precedences (\mycit{$T_5 \rightarrow T_4 \rightarrow T_2$} and \mycit{$T_1 \rightarrow T_3$}). \\ \hline Click on \mycit{scheduling simulation} toolbar button, on \mycit{Tools $\rightarrow$ Precedences $\rightarrow$ End to end response time $\rightarrow$ Compute and Display}. & Results appear on Cheddar window. \\ \hline Check end to end response time (files \mycit{test\_jitter4-1.jpg} and \mycit{test\_jitter4-2.jpg}). & \\ \hline \end{tabular} \end{center} \testendtoendd \newpage \mysection{Dependencies} \secttoc \newpage \mysubsection{Test 1 : periodic tasks priority modification by chetto/blazewicz rules} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_dependencies1.xml} Cheddar project. & Cheddar contains 1 processor, 8 tasks and dependences. \\ \hline In scheduling option (\mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Options}), check \mycit{precedences} (scheduling according to). &\\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check task \mycit{g} is run before task \mycit{e}. & \\ \hline Click on \mycit{Tools $\rightarrow$ Precedences $\rightarrow$ Chetto/Blazewicz modifications on priorities $\rightarrow$ Compute and Update tasks}. & \\ \hline Click on \mycit{scheduling simulation} toolbar button again. &\\ \hline Check task \mycit{g} is run correctly & \\ \hline \end{tabular} \end{center} \testdependencyc \mysubsection{Test 2 : precedences taken into account in periodic tasks scheduling simulation} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_dependencies1.xml} Cheddar project. & Cheddar contains 1 processor, 8 tasks and dependences. \\ \hline In scheduling option (\mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Options}), check \mycit{precedences} (scheduling according to). &\\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check all tasks respect precedences (even \mycit{g}). & \\ \hline \end{tabular} \end{center} \testdependencyd \mysubsection{Test 3 : aperiodic tasks deadline modification by \mycit{chetto/blazewicz} rules} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_dependencies2.xml} Cheddar project. & Cheddar contains 1 processor, 8 tasks and dependences. \\ \hline In scheduling option (\mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Options}), uncheck \mycit{precedences} (scheduling according to). & \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check task \mycit{g} is run before task \mycit{e}. & \\ \hline Click on \mycit{Tools $\rightarrow$ Precedences $\rightarrow$ Chetto/Blazewicz modifications on deadlines $\rightarrow$ Compute and Update tasks}. &\\ \hline Click on \mycit{scheduling simulation} toolbar button again. & \\ \hline Check task \mycit{g} is run correctly. & \\ \hline \end{tabular} \end{center} \testdependencya \mysubsection{Test 4 : precedences taken into account in aperiodic tasks scheduling simulation} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_dependencies2.xml} Cheddar project. & Cheddar contains 1 processor, 8 tasks and dependences. \\ \hline In scheduling option (\mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Options}), check \mycit{precedences} (scheduling according to). &\\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check all tasks respect precedences (even \mycit{g}). & \\ \hline \end{tabular} \end{center} \testdependencyb \newpage \mysection{Precedences Graph} \secttoc \newpage \mysubsection{Test 1 : launched \mycit{precedences graph} dialog box} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Click on \mycit{precedences graph} toolbar button. & A message box appears to tell the user to create an address space. \\ \hline Open \mycit{1proc1as.xml} Cheddar project. & Cheddar contains 1 processor and 1 address space. \\ \hline Click again on \mycit{precedences graph} toolbar button. & \mycit{precedences graph} dialog box appears. \\ \hline \end{tabular} \end{center} \testprecedencegrapha \mysubsection{Test 2 : component creation} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{1proc1as.xml} Cheddar project. & Cheddar contains 1 processor and 1 address space. \\ \hline Click on the \mycit{precedences graph} toolbar button. & \mycit{precedences graph} dialog box opens.\\ \hline Select \mycit{Create} in the \mycit{precedences graph} combo box and click on \mycit{task} radio button. & \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box opens. \\ \hline Click on \mycit{New item} dialog box \mycit{ok} button. & The task \mycit{add/update} dialog box appears. \\ \hline Fill mandatory fields and click on \mycit{add/update} dialog box \mycit{add} button. & A task has been created/added. \\ \hline Click on \mycit{add/update} dialog box \mycit{close} button. & A graphical representation of the task appears on \mycit{dependences graph} canvas with the correct name. \\ \hline Do the same test with message and buffer. & In buffer case, a warning message box appears telling the user to create a task if no one exists. So, create a task and then try to create a buffer.\\ \hline \end{tabular} \end{center} \testprecedencegraphb \mysubsection{Test 3 : cancel component creation} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{1proc1as1ta.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on the \mycit{precedences graph} toolbar button. & \mycit{precedences graph} dialog box opens.\\ \hline Select \mycit{Create} in the \mycit{precedences graph} combo box and click on \mycit{task} radio button. & \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box opens. % and a drawing of the task appears on "dependences graph" canvas. \\ \hline Click on \mycit{New item} dialog box \mycit{cancel} button. & No task is created and no graphical representation appears. \\ \hline Click again on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears.\\ \hline Click on \mycit{New item} dialog box \mycit{ok} button. & The task \mycit{add/update} dialog box appears. \\ \hline Click on \mycit{add/update} dialog box \mycit{close} button. & No task has been created and no graphical representation appears. \\ \hline Click again on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears.\\ \hline Click on \mycit{New item} dialog box \mycit{ok} button. & The task \mycit{add/update} dialog box appears. \\ \hline Create a task and click on \mycit{add/update} dialog box \mycit{cancel} button. & The task creation has been cancel and no graphical representation appears. \\ \hline Do the same test with \mycit{message} and \mycit{buffer}. &\\ \hline \end{tabular} \end{center} \testprecedencegraphc \mysubsection{Test 4 : delete graphical representation components} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{1proc1as199ta4me29bu.xml} Cheddar project. & Cheddar contains 1 processor, 199 tasks, 4 messages and 29 buffers. \\ \hline Click on the \mycit{precedences graph} toolbar button. & \mycit{precedences graph} dialog box opens.\\ \hline Select \mycit{Create} in the \mycit{precedences graph} combo box and click on \mycit{task} radio button. & \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears. In the task list, one shall have the 199 task names and the \mycit{new} label.\\ %\hline %Click on "New item" dialog box "ok" button. & The task "add/update" dialog box appears. \\ \hline Select a task in the \mycit{New item} combo box and click on \mycit{New item} dialog box \mycit{ok} button. & The corresponding graphical representation appears on the canvas. \\ \hline Create another task graphical representation with another existing task. & The corresponding graphical representation appears on the canvas. \\ \hline Select \mycit{Delete} in the \mycit{precedences graph} combo box and click on \mycit{task} radio button, if it is not already done. & \\ \hline Click on one of the graphical component. & The corresponding representation disappears. \\ \hline Click on \mycit{precedences graph} canvas background. & In the "New item" dialog box task list, the previous deleted graphical component shall appear. \\ \hline Do the same test with message and buffer. & \\ \hline \end{tabular} \end{center} \testprecedencegraphd \mysubsection{Test 5 : delete components} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{1proc1as199ta4me29bu.xml} Cheddar project. & Cheddar contains 1 processor, 199 tasks, 4 messages and 29 buffers. \\ \hline Click on the \mycit{precedences graph} toolbar button. & \mycit{precedences graph} dialog box opens.\\ \hline Select \mycit{Create} in the \mycit{precedences graph} combo box and click on \mycit{task} radio button. & \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears. In the tasks list, one shall have the 199 task names and the \mycit{new} label.\\ \hline Select a task in the \mycit{New item} combo box and click on \mycit{New item} dialog box \mycit{ok} button. & The corresponding graphical representation appears on the canvas. \\ \hline Create another task graphical representation with another existing task. & The corresponding graphical representation appears on the canvas. \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears. \\ \hline Click on \mycit{New item} dialog box \mycit{ok} button. & The task \mycit{add/update} dialog box appears. \\ \hline In the task \mycit{add/update} dialog box, select one of the corresponding task chosen for creating the graphical components. Click on \mycit{delete} button and then, on \mycit{close} button. & The graphical components disappears and in the \mycit{New item} dialog box task list, the previous deleted component shall not appear. \\ \hline Do the same test with message and buffer. & \\ \hline \end{tabular} \end{center} \testprecedencegraphe \mysubsection{Test 6 : \mycit{New Item} modal dialog box} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{1proc1as1ta.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on the \mycit{precedences graph} toolbar button. & \mycit{precedences graph} dialog box opens.\\ \hline Select \mycit{Create} in the \mycit{precedences graph} combo box and click on \mycit{task} radio button. & \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears.\\ \hline Click again on background. & No new \mycit{New item} dialog box appears. \\ \hline Do the same test with message and buffer. &\\ \hline \end{tabular} \end{center} \testprecedencegraphf \mysubsection{Test 7 : limit graphical components creation} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{1proc1as199ta4me29bu.xml} Cheddar project. & Cheddar contains 1 processor, 199 tasks, 4 messages and 29 buffers. \\ \hline Click on the \mycit{precedences graph} toolbar button. & \mycit{precedences graph} dialog box opens.\\ \hline Select \mycit{Create} in the \mycit{precedences graph} combo box and click on \mycit{task} radio button. & \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears. In the task list, one shall have the 199 task names and the \mycit{new} label (task limit creation is 200).\\ \hline Click on \mycit{New item} dialog box \mycit{ok} button. & The task \mycit{add/update} dialog box appears. \\ \hline Fill mandatory fields and click on \mycit{add/update} dialog box \mycit{add} button. & A $200^{th}$ task is created and the task graphical representation appears with the correct name. \\ \hline Click on \mycit{precedences graph} canvas background. & A \mycit{New item} dialog box appears. In the task list, one shall have the 200 task names and no \mycit{new} label.\\ \hline Create all 200 tasks (could be long) and try to create a $201^{th}$ one. & A warning message box appears telling the user is not possible to create another task. \\ \hline Do the same test with message and buffer. & Limit message creation is 5 and limit buffer creation is 30.\\ \hline \end{tabular} \end{center} \testprecedencegraphg \newpage \mysection{Parametric} \secttoc \newpage \mysubsection{Test 0 : simple scheduler (EDF scheduler)} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric0.xml} Cheddar project. & Cheddar contains 1 processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check scheduling (priority information appears on the result window). & \\ \hline \end{tabular} \end{center} \testparametrica \mysubsection{Test 1 : user defined task parameters} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric1.xml} Cheddar project. & Cheddar contains 1 processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check scheduling (a user defined task parameter has been added : importance. \mycit{$T_3$} is more important than \mycit{$T_2$} which is more important than \mycit{$T_1$}). & \\ \hline \end{tabular} \end{center} \testparametricb \mysubsection{Test 2 : \mycit{for} loops (EDF scheduler)} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric2.xml} Cheddar project. & Cheddar contains 1 processor and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check scheduling (priority information appears on the result window). & \\ \hline \end{tabular} \end{center} \testparametricc \mysubsection{Test 3 : \mycit{while} loop} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric3.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check there is as much \mycit{while} loop (0 to 4 sequence) as simulation time unit (10). & \\ \hline \end{tabular} \end{center} \testparametricd \mysubsection{Test 4 : \mycit{if} statement} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric4.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check the following number sequence : 0 10 1 20 2 10 3 20 4 10 5 20 6 10 7 20 8 10 9 20. & \\ \hline \end{tabular} \end{center} \testparametrice \mysubsection{Test 5 : non vectorial HPF parametric scheduler} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric5.xml} Cheddar project. & Cheddar contains 2 processors and 6 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check \mycit{$HPF_1$} and \mycit{$HPF_2$} has the same scheduling. \mycit{$HPF_3$} shall have "inversed" simulation (task with lower value priority are executed first) & \\ \hline \end{tabular} \end{center} \testparametricf \mysubsection{Test 6 : parametric task activation model} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric6.xml} Cheddar project. & Cheddar contains 1 processor and 8 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check task activations (see \mycit{activation.sc}). & \\ \hline \end{tabular} \end{center} \testparametricg \mysubsection{Test 8 : parametric schedulers/processors and user defined task parameters} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric8.xml} Cheddar project. & Cheddar contains 4 processors, 12 tasks and dependencies. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check scheduling is run without error. & \\ \hline \end{tabular} \end{center} \testparametrici \mysubsection{Test 9 : parametric schedulers/processors and user defined task parameters} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric9.xml} Cheddar project. & Cheddar contains 2 processors and 3 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check for each processor the following sequence is displayed as much as simulation unit of time : \begin{itemize} \item tasks number, \item processors number, \item address spaces number, \item resources number, \item buffers number, \item simulation time, \item simulation length, \item tasks number and \item tasks number. \end{itemize} Default : \begin{itemize} \item processor \mycit{nnn} : 2, 2, 2, 0, 0, x, 10, 2, 2. \item processor \mycit{ppp} : 1, 2, 2, 0, 0, x, 10, 1, 1. \end{itemize} $x \in [0, simulation length[$). & \\ \hline \end{tabular} \end{center} \testparametricj \mysubsection{Test 10 : interaction between framework Ada exception and *.sc file} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric10.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check a simulation error appears on Cheddar result window. & Error : \mycit{Statement error, line 20, processor jjj...}. \\ \hline \end{tabular} \end{center} \testparametrick \mysubsection{Test 11 : \mycit{Put} statement} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric11.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check the following information appears on Cheddar result window for each simulation unit of time : see \mycit{test\_parametric11.jpg}. & \\ \hline \end{tabular} \end{center} \testparametricl \mysubsection{Test 12 : uniform random generator statement} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric12.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button (make a 1500 unit of time simulation). &\\ \hline Check a 10 number sequence is displayed and check the distribution is uniform from the $4^{th}$ to the $9^{th}$ number. & \\ \hline \end{tabular} \end{center} \testparametricm \mysubsection{Test 13 : tasks management} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric13.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check the following information appears for each simulation unit of time : \begin{itemize} \item tasks capacity, \item tasks activation number, \item tasks rest of capacity, \item tasks used capacity and \item tasks used processor. \end{itemize} & \\ \hline \end{tabular} \end{center} \testparametricn \mysubsection{Test 14 : \mycit{exit} statement} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric14.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check a warning message appears on Cheddar result window. & Message warning : \mycit{Simulation warning : line 13, processor nnn, file xxx ; simulation stopped by exit statement}. \\ \hline \end{tabular} \end{center} \testparametrico \mysubsection{Test 15 : laplace-gauss distribution law random generator} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric15.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check numbers following a \mycit{laplace/gauss} distribution appear for each simulation unit of time. & It is difficult to test the distribution just check there is no errors and values\\ \hline \end{tabular} \end{center} \testparametricp \mysubsection{Test 16 : change some standard tasks/processors/... variables (eg. tasks.deadline) from *.sc files} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_parametric16.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar button. &\\ \hline Check a number appears for each simulation unit of time following this equation : \mycit{task deadline + 1 * simulation unit of time}. & \\ \hline \end{tabular} \end{center} \testparametricq \mysubsection{Test 17 : simple event analyzers} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_event\_handler1.xml} Cheddar project. & Cheddar contains \TBD \\ \hline Click on \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Customized scheduling simulation}. &\\ \hline Check the event are well analysed. & \\ \hline \end{tabular} \end{center} \testparametricr \newpage \mysection{Partition/Task processor assignment} \secttoc \newpage \mysubsection{Test 1 : RM Small task partition rule} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_partition1.xml} Cheddar project. & Cheddar contains 3 processors and 9 tasks. \\ \hline Click on \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Partition $\rightarrow$ With Small Task}. & One have the following processor assignment : $t_1 \Rightarrow$ processor a $t_2 \Rightarrow$ processor a $t_3 \Rightarrow$ processor a $t_4 \Rightarrow$ processor a $t_5 \Rightarrow$ processor b $t_6 \Rightarrow$ processor b $t_7 \Rightarrow$ processor b $t_8 \Rightarrow$ processor c $t_9 \Rightarrow$ processor c $t_10 \Rightarrow$ processor c \\ \hline \end{tabular} \end{center} \testpartitiona \mysubsection{Test 2 : check tasks periodicity in order to apply partition rule} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_partition2.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on every choices in \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Partition} (\mycit{with Best Fit}, \mycit{General Task}, \mycit{Next Fit}, \mycit{First Fit} and \mycit{Small Task}). &\\ \hline Check a warning message appears for each action. & Warning message : \mycit{Invalid scheduler : can not run scheduling partition}. \\ \hline \end{tabular} \end{center} \testpartitionb \mysubsection{Test 3 : check processor scheduler is RM in order to apply partition rule} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_partition3.xml} Cheddar project. & Cheddar contains 1 EDF processor and 2 periodic tasks. \\ \hline Click on every choices in \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Partition} (\mycit{with Best Fit}, \mycit{General Task}, \mycit{Next Fit}, \mycit{First Fit} and \mycit{Small Task}). &\\ \hline Check a warning message appears for each action. & Warning message : \mycit{Invalid scheduler : can not run scheduling partition}. \\ \hline \end{tabular} \end{center} \testpartitionc \mysubsection{Test 4 : partition rule can not find a schedulable solution} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_partition4.xml} Cheddar project. & Cheddar contains 1 RM processor and 2 periodic tasks. \\ \hline Click on every choices in \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Partition} (\mycit{with Best Fit}, \mycit{General Task}, \mycit{Next Fit}, \mycit{First Fit} and \mycit{Small Task}). &\\ \hline Check a warning message appears for each action. & Warning message : \mycit{can not do partitioning : you must define more processors}. \\ \hline \end{tabular} \end{center} \testpartitiond \mysubsection{Test 5 : task set schedulable with partition rules} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_partition5.xml} Cheddar project. & Cheddar contains 3 RM processors and 9 periodic tasks. \\ \hline Click on every choices in \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Partition} (\mycit{with Best Fit}, \mycit{General Task}, \mycit{Next Fit}, \mycit{First Fit} and \mycit{Small Task}). &\\ \hline Check assignments for \mycit{Best Fit} (3 processors). & $t_1 \Rightarrow$ processor \mycit{c} $t_2 \Rightarrow$ processor \mycit{b} $t_3 \Rightarrow$ processor \mycit{a} $t_4 \Rightarrow$ processor \mycit{c} $t_5 \Rightarrow$ processor \mycit{a} $t_6 \Rightarrow$ processor \mycit{b} $t_8 \Rightarrow$ processor \mycit{a} $t_9 \Rightarrow$ processor \mycit{c} $t_{10} \Rightarrow$ processor \mycit{b} \\ \hline Check assignments for \mycit{General Task} (3 processors). & $t_1 \Rightarrow$ processor \mycit{a} $t_2 \Rightarrow$ processor \mycit{a} $t_3 \Rightarrow$ processor \mycit{a} $t_4 \Rightarrow$ processor \mycit{a} $t_5 \Rightarrow$ processor \mycit{b} $t_6 \Rightarrow$ processor \mycit{b} $t_8 \Rightarrow$ processor \mycit{c} $t_9 \Rightarrow$ processor \mycit{c} $t_10 \Rightarrow$ processor \mycit{c} \\ \hline Check assignments for \mycit{Next fit} (4 processors). & $t_1 \Rightarrow$ processor \mycit{c} $t_2 \Rightarrow$ processor \mycit{d} $t_3 \Rightarrow$ processor \mycit{a} $t_4 \Rightarrow$ processor \mycit{c} $t_5 \Rightarrow$ processor \mycit{a} $t_6 \Rightarrow$ processor \mycit{b} $t_8 \Rightarrow$ processor \mycit{a} $t_9 \Rightarrow$ processor \mycit{c} $t_10 \Rightarrow$ processor \mycit{b} \\ \hline Check assignments for \mycit{First Fit} (3 processors). & $t_1 \Rightarrow$ processor \mycit{c} $t_2 \Rightarrow$ processor \mycit{b} $t_3 \Rightarrow$ processor \mycit{a} $t_4 \Rightarrow$ processor \mycit{c} $t_5 \Rightarrow$ processor \mycit{a} $t_6 \Rightarrow$ processor \mycit{b} $t_8 \Rightarrow$ processor \mycit{a} $t_9 \Rightarrow$ processor \mycit{c} $t_10 \Rightarrow$ processor \mycit{b} \\ \hline Check assignments for \mycit{Small Task} (3 processors). & $t_1 \Rightarrow$ processor \mycit{a} $t_2 \Rightarrow$ processor \mycit{a} $t_3 \Rightarrow$ processor \mycit{a} $t_4 \Rightarrow$ processor \mycit{a} $t_5 \Rightarrow$ processor \mycit{b} $t_6 \Rightarrow$ processor \mycit{b} $t_8 \Rightarrow$ processor \mycit{c} $t_9 \Rightarrow$ processor \mycit{c} $t_10 \Rightarrow$ processor \mycit{c} \\ \hline \end{tabular} \end{center} \testpartitione \mysubsection{Test 6 : task set schedulable with partition rules} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_partition6.xml} Cheddar project. & Cheddar contains 4 RM processors and 13 periodic tasks. \\ \hline Click on every choices in \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Partition} (\mycit{with Best Fit}, \mycit{General Task}, \mycit{Next Fit}, \mycit{First Fit} and \mycit{Small Task}). &\\ \hline Check processors number needed for each partition rule. & \begin{itemize} \item \mycit{Small Task} needs four processors. \item \mycit{Best Fit}, \mycit{First Fit} and \mycit{General Task} need six processors. \item \mycit{Next Fit} needs 7 processors. \end{itemize} \\ \hline \end{tabular} \end{center} \testpartitionf \mysubsection{Test 7 : utilization for one task is over 100 percent} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_partition7.xml} Cheddar project. & Cheddar contains 2 RM processors and 2 periodic tasks. \\ \hline Click on every choices in \mycit{Tools $\rightarrow$ Scheduling $\rightarrow$ Partition} (\mycit{with Best Fit}, \mycit{General Task}, \mycit{Next Fit}, \mycit{First Fit} and \mycit{Small Task}). &\\ \hline Check no partition rule can find an assignment. & \\ \hline \end{tabular} \end{center} \testpartitiong \newpage \mysection{Automaton} \secttoc \newpage \mysubsection{Test 1 : automaton parser and the ability to give a name to a section} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto1.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Check the project is loading without error.\TBD. & \\ \hline \end{tabular} \end{center} \testautomatona \mysubsection{Test 2 : \mycit{clock} type parsing} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto2.xml} Cheddar project. & Cheddar contains 1 processor and 1 task. \\ \hline Click on \mycit{scheduling simulation} toolbar buttons. &\\ \hline Check a number sequence from 1 to 9 appears on Cheddar result window. & \\ \hline \end{tabular} \end{center} \testautomatonb \mysubsection{Test 3 : \mycit{priority section} and \mycit{election section} with an automaton} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto3.xml} Cheddar project. & Cheddar contains 1 processor and 2 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar buttons. &\\ \hline Check the simulation is well executed ($T_1$ is executed before $T_2$). & \\ \hline \end{tabular} \end{center} \testautomatonc \mysubsection{Test 4 : \mycit{delay} statement behavior into an automaton} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto4.xml} Cheddar project. & Cheddar contains 1 processor and 2 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar buttons. &\\ \hline Check the simulation is well executed ($T_1$ is executed before $T_2$ and each unit time execution is separated by 2 time units). & \\ \hline \end{tabular} \end{center} \testautomatond \mysubsection{Test 5 : guards without clock behavior into an automaton} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto5.xml} Cheddar project. & Cheddar contains 1 processor and 2 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar buttons. &\\ \hline Check the simulation is well executed ($T_1$ is executed before $T_2$ and one line on two "line 10" and "line 17" is displayed). & \\ \hline \end{tabular} \end{center} \testautomatone \mysubsection{Test 6 : automata with automaton rendez-vous} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto6.xml} Cheddar project. & Cheddar contains 1 processor and 2 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar buttons. &\\ \hline Check the simulation is well executed (between 2 successive task unit time execution, 3 idle unit of time must be found, the first executed task is the task $T_2$). & \\ \hline \end{tabular} \end{center} \testautomatonf \mysubsection{Test 7 : guards with clock behavior into an automaton} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto7.xml} Cheddar project. & Cheddar contains 1 processor and 2 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar buttons. &\\ \hline Check the simulation is well executed (between 2 successive task unit time execution, 1 idle unit of time must be found, the first executed task is the task $T_1$). & \\ \hline \end{tabular} \end{center} \testautomatong \mysubsection{Test 8 : automaton user-defined scheduler which includes address space scheduler} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_auto8.xml} Cheddar project. & Cheddar contains 1 processor and 2 tasks. \\ \hline Click on \mycit{scheduling simulation} toolbar buttons. \\ \hline Check the simulation is well executed ($T_2$ and $T_4$: between 2 successive task unit time execution, 3 idle unit of time must be found, the first executed task is the task $T_2$). & \\ \hline \end{tabular} \end{center} \testautomatonh \newpage \mysection{Large task set} \secttoc \newpage \mysubsection{Test 1 : task set with a large period LCM} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_large\_task\_set1.xml} Cheddar project. & Cheddar contains 1 processor and 200 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Select 1 or several tasks.\\ \hline Check the services are executed without error. & \\ \hline \end{tabular} \end{center} \testlargetaskseta \mysubsection{Test 2 : task set with a very large period LCM} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Open \mycit{test\_large\_task\_set2.xml} Cheddar project. & Cheddar contains 1 processor and 20 tasks. \\ \hline Click on \mycit{scheduling simulation} and \mycit{scheduling feasibility} toolbar buttons. & Select 1 or several tasks.\\ \hline Check the services are executed without error. & \\ \hline \end{tabular} \end{center} \testlargetasksetb \newpage \mysection{AADL} \secttoc \newpage \mysubsection{Test 1 : Stood/Cheddar interoperability} \begin{center} \begin{tabular}{|a|t|} \hline \textbf{Actions} & \textbf{Results} \\ \hline Import \mycit{stood1.aadl} AADL project. & \\ \hline Check Cheddar contains 1 processor, 1 address space, 2 tasks, 2 resources and 1 buffer and check those component correspond to the ones in AADL file. & The processor's scheduler is \mycit{Deadline Monotonic}.\\ \hline \end{tabular} \end{center} \testaadla \newpage \mysection{Conclusion} \mysubsection{Statistics} % Statistics computation \setcounter{OKTotalOnTotal}{\value{testOKTotal} * 100} \setcounter{OKTotalOnTotal}{\value{OKTotalOnTotal}/\value{testTotal}} \setcounter{KOTotalOnTotal}{\value{testKOTotal} * 100} \setcounter{KOTotalOnTotal}{\value{KOTotalOnTotal}/\value{testTotal}} \setcounter{NATotalOnTotal}{\value{testNATotal} * 100} \setcounter{NATotalOnTotal}{\value{NATotalOnTotal}/\value{testTotal}} \setcounter{NDTotalOnTotal}{\value{testNDTotal} * 100} \setcounter{NDTotalOnTotal}{\value{NDTotalOnTotal}/\value{testTotal}} \begin{tabular}{|a|t|} \hline \textbf{Total number} & \\ \hline Test & \thetestTotal \\ \hline \mycit{OK} test & \thetestOKTotal\ ($\approx$ \theOKTotalOnTotal \%) \\ \hline \mycit{KO} test & \thetestKOTotal\ ($\approx$ \theKOTotalOnTotal \%) \\ \hline \mycit{N/A} test & \thetestNATotal\ ($\approx$ \theNATotalOnTotal \%) \\ \hline \mycit{Not Done} test & \thetestNDTotal\ ($\approx$ \theNDTotalOnTotal \%) \\ \hline \end{tabular} \mysubsection{General observations} \testconclusion \end{document}