[Contents] [TitleIndex] [WordIndex

Xcos/TestPlan

This page helps Xcos validation before releasing a version.

Each subsequent point must be validated by its owner before each release. The date format used in this page can be generated by running date -u +"%F %R".

Status

The test sucessfully passes

OK

<: #80ff80> OK

The test doesn't pass but is acceptable

in progress

<: #ffcc50> in progress

The test doesn't pass and is not acceptable

KO

<: #ff8080> KO

Xcos demos validation

All following demos files are located in the SCI/modules/xcos/demos directory.

To reset the following table, use this shell script.

find modules/xcos/demos -type f -name "*.dem.sce" |sort |while read filename
do
        echo "||||||'''${filename#modules/xcos/demos/}'''||"
        echo "||  Simulate||<: #ff8080> KO||$(date -u +"%F %R")||"
        echo "||  Superblocks opens||<: #ff8080> KO||$(date -u +"%F %R")||"
        echo "||  Well renderer||<: #ff8080> KO||$(date -u +"%F %R")||"
        echo
done

basic_controller.dem.sce

Simulate

OK

2010-07-28 09:17

Superblocks opens

KO

2010-07-02 11:26

Well renderer

KO

2010-07-02 11:26

bounce.dem.sce

Simulate

OK

2010-07-28 09:20

Superblocks opens

KO

2010-07-02 11:26

Well renderer

KO

2010-07-02 11:26

bouncing_ball.dem.sce

Simulate

OK

2010-07-28 09:23

Superblocks opens

KO

2010-07-02 11:26

Well renderer

KO

2010-07-02 11:26

cont_sys_disc_cont.dem.sce

Simulate

KO

2010-07-28 09:23

Superblocks opens

KO

2010-07-02 11:26

Well renderer

KO

2010-07-02 11:26

data_type.dem.sce

Simulate

OK

2010-07-28 09:25

Superblocks opens

OK

2010-07-28 09:25

Well renderer

OK

2010-07-28 09:25

demo_Datatype.dem.sce

Simulate

KO

2010-07-28 09:27

Superblocks opens

KO

2010-07-28 09:27

Well renderer

KO

2010-07-28 09:27

demo_watertank.dem.sce

Simulate

OK

2010-07-28 09:25

Superblocks opens

OK

2010-07-28 09:25

Well renderer

KO

2010-07-02 11:26

discrete_controller.dem.sce

Simulate

OK

2010-07-28 09:29

Superblocks opens

OK

2010-07-28 09:29

Well renderer

KO

2010-07-02 11:26

discrete_kalman.dem.sce

Simulate

OK

2010-07-28 09:30

Superblocks opens

OK

2010-07-28 09:30

Well renderer

KO

2010-07-02 11:26

Electrical/boost_conv.dem.sce

Simulate

OK

2010-07-28 09:54

Superblocks opens

OK

2010-07-28 09:54

Well renderer

KO

2010-07-02 11:26

Electrical/bridge_rectifier.dem.sce

Simulate

OK

2010-07-28 09:54

Superblocks opens

OK

2010-07-28 09:54

Well renderer

KO

2010-07-02 11:26

Electrical/buck_conv.dem.sce

Simulate

OK

2010-07-28 09:54

Superblocks opens

OK

2010-07-28 09:55

Well renderer

KO

2010-07-02 11:26

Electrical/colpitts_osc.dem.sce

Simulate

OK

2010-07-28 09:56

Superblocks opens

OK

2010-07-28 09:56

Well renderer

KO

2010-07-02 11:26

Electrical/differential_amp.dem.sce

Simulate

OK

2010-07-28 09:57

Superblocks opens

OK

2010-07-28 09:57

Well renderer

KO

2010-07-02 11:26

Electrical/logic_and.dem.sce

Simulate

OK

2010-07-28 09:58

Superblocks opens

OK

2010-07-28 09:58

Well renderer

KO

2010-07-02 11:26

Electrical/logic_nor.dem.sce

Simulate

OK

2010-07-28 09:59

Superblocks opens

OK

2010-07-28 09:59

Well renderer

KO

2010-07-02 11:26

Electrical/op_amplier.dem.sce

Simulate

OK

2010-07-28 10:00

Superblocks opens

OK

2010-07-28 10:00

Well renderer

KO

2010-07-02 11:26

Electrical/rlc_circuit.dem.sce

Simulate

OK

2010-07-28 10:01

Superblocks opens

OK

2010-07-28 10:01

Well renderer

OK

2010-07-28 10:00

Electrical/switched_cap_filter.dem.sce

Simulate

OK

2010-07-28 10:05

Superblocks opens

OK

2010-07-28 10:05

Well renderer

KO

2010-07-02 11:26

Electrical/transformer.dem.sce

Simulate

OK

2010-07-28 10:05

Superblocks opens

OK

2010-07-28 10:06

Well renderer

OK

2010-07-28 10:06

fibonacci.dem.sce

Simulate

OK

2010-07-28 09:31

Superblocks opens

OK

2010-07-28 09:31

Well renderer

OK

2010-07-13 16:21

goto_demo.dem.sce

Simulate

KO

2010-07-02 11:26

Superblocks opens

KO

2010-07-02 11:26

Well renderer

KO

2010-07-02 11:26

goto_from.dem.sce

Simulate

OK

2010-07-28 09:33

Superblocks opens

OK

2010-07-28 09:33

Well renderer

KO

2010-07-02 11:26

if_scicos_block.dem.sce

Simulate

OK

2010-07-28 09:33

Superblocks opens

OK

2010-07-28 09:33

Well renderer

KO

2010-07-02 11:26

inverted_pend.dem.sce

Simulate

OK

2010-07-28 09:33

Superblocks opens

OK

2010-07-28 09:33

Well renderer

KO

2010-07-02 11:26

inverted_pendulum.dem.sce

Simulate

OK

2010-07-28 09:35

Superblocks opens

OK

2010-07-28 09:35

Well renderer

KO

2010-07-02 11:26

inv_pend_anim.dem.sce

Simulate

KO

2010-07-28 09:36

Superblocks opens

OK

2010-07-28 09:36

Well renderer

KO

2010-07-28 09:36

kalman.dem.sce

Simulate

KO

2010-07-28 09:37

Superblocks opens

OK

2010-07-28 09:37

Well renderer

KO

2010-07-02 11:26

lorentz.dem.sce

Simulate

OK

2010-07-28 09:38

Superblocks opens

OK

2010-07-28 09:38

Well renderer

KO

2010-07-02 11:26

ModelicaBlocks/ball_platform.dem.sce

Simulate

KO

2010-07-02 11:26

Superblocks opens

KO

2010-07-02 11:26

Well renderer

KO

2010-07-02 11:26

ModelicaBlocks/modelica_bouncing_ball.dem.sce

Simulate

KO

2010-07-02 11:26

Superblocks opens

KO

2010-07-02 11:26

Well renderer

KO

2010-07-02 11:26

ModelicaBlocks/modelica_chaos.dem.sce

Simulate

OK

2010-07-21 14:56

Superblocks opens

OK

2010-07-21 14:56

Well renderer

OK

2010-07-21 14:56

ModelicaBlocks/modelica_hydraulics.dem.sce

Simulate

OK

2010-07-02 11:26

Superblocks opens

OK

2010-07-02 11:26

Well renderer

OK

2010-07-02 11:26

ModelicaBlocks/modelica_rlc_circuit.dem.sce

Simulate

OK

2010-07-02 11:26

Superblocks opens

OK

2010-07-02 11:26

Well renderer

OK

2010-07-02 11:26

old_gain_block.dem.sce

Simulate

KO

2010-07-02 11:26

Superblocks opens

OK

2010-07-28 09:40

Well renderer

KO

2010-07-02 11:26

scilab_block.dem.sce

Simulate

OK

2010-07-28 09:40

Superblocks opens

OK

2010-07-28 09:40

Well renderer

KO

2010-07-02 11:26

signal_builder.dem.sce

Simulate

OK

2010-07-28 09:41

Superblocks opens

OK

2010-07-28 09:41

Well renderer

OK

2010-07-28 09:41

simple_demo.dem.sce

Simulate

OK

2010-07-28 09:41

Superblocks opens

OK

2010-07-28 09:41

Well renderer

OK

2010-07-28 09:41

simple_thermostat.dem.sce

Simulate

OK

2010-07-28 09:42

Superblocks opens

OK

2010-07-28 09:42

Well renderer

KO

2010-07-02 11:26

susp.dem.sce

Simulate

KO

2010-07-28 09:42

Superblocks opens

KO

2010-07-28 09:42

Well renderer

KO

2010-07-02 11:26

table_lookup.dem.sce

Simulate

OK

2010-07-28 09:45

Superblocks opens

OK

2010-07-28 09:45

Well renderer

OK

2010-07-28 09:45

temp_controller.dem.sce

Simulate

OK

2010-07-28 09:46

Superblocks opens

OK

2010-07-28 09:46

Well renderer

OK

2010-07-28 09:46

zero_crossing.dem.sce

Simulate

OK

2010-07-28 09:45

Superblocks opens

OK

2010-07-28 09:45

Well renderer

OK

2010-07-28 09:45

Create blocks from scratch

Recreating a demo from scratch will help us find some problems with the UI.

To ease this validation, it consists only on reproducing demos. To validate this point, demos must be easy to reproduce and must not introduce advanced knowledge of the software. You need to ckeck usability and simulation issues.

Temperature Controller

OK

2010-12-14 09:56

Blocks tests

To test individual behavior of each block.

pass block tests

The following tests must pass on the compilation chain.

Reference tests

The following block tests must pass.

Internal APIs

Each externalized java method has to be tested. Each macro must have a test.

2010-09-01 15:33

KO

To check:

testsDir="modules/xcos/tests/unit_tests"
for macro in $(ls modules/xcos/macros/*.sci)
do
        name=$(basename $macro .sci)
        if [ ! -e "$testsDir/$name.tst" ]
        then
                echo "||$name||<: #ff8080> KO||"  >&2
        elif [ ! -e "$testsDir/$name.dia.ref" ]
        then
                echo "||$name||<: #ffcc50> in progress||"  >&2
        else
                echo "||$name||<: #80ff80> OK||"  >&2
        fi
done

closeDiagramPath

KO

%diagram_xcos

KO

errorDiagramPath

KO

generateBlockImage

KO

generateBlockImages

KO

getDiagramVersion

KO

getModelicaPath

KO

importScicosDiagram

KO

importScicosPal

KO

importXcosDiagram

KO

loadScicosLibs

KO

openDiagramPath

KO

xcosBlockEval

OK

xcosBlockInterface

OK

xcosClearBlockWarning

KO

xcos_close

KO

xcosCodeGeneration

KO

xcos_compile

KO

xcosConfigureModelica

KO

xcos_open

KO

xcosPalAddBlock

OK

xcosPalAdd

OK

xcosPalExport

OK

xcosPal

OK

xcos_run

KO

xcosShowBlockWarning

KO

xcos_simulate

KO

Sundials code coverage

"Covering the code" means ensuring the whole correct behavior of the code.

To that effect, we run several tests that sollicit a major part of the code, the rest being the error handling, the non-extension parts and some unused Sundials features.

The following shell script checks that cvode.c and ida.c (the main programs) are as much sollicited as possible, assuming scilab was configured with --enable-code-coverage:

/!\ DRAFT

#CVode (cvode.c):
./bin/scilab -e 'test_run("scicos", "DoPri", "no_check_error_output"); test_run("scicos", "ExpRK", "no_check_error_output"); test_run("scicos", "ImpRK", "no_check_error_output"); importXcosDiagram("SCI/modules/xcos/demos/Temperature_Controller.xcos"); xcos_simulate(scs_m, 4); exit'

#IDA (ida.c):
./bin/scilab -e 'importXcosDiagram("SCI/modules/xcos/demos/ModelicaBlocks/Hydraulics.xcos"); xcos_simulate(scs_m, 4); exit'

#find . -name "*.gcda" -not -name "*scicos*" -exec rm {} +
make code-coverage

if [./coverage/scilab-code-coverage.info > 60.4%]
  echo "||CVode (cvode.c)||<: #80ff80> OK||"  >&2
else
  echo "||CVode (cvode.c)||<: #ff8080> KO||"  >&2
fi
if [./coverage/scilab-code-coverage.info > 55.5%]
  echo "||IDA (ida.c)||<: #80ff80> OK||"  >&2
else
  echo "||IDA (ida.c)||<: #ff8080> KO||"  >&2
fi

CVode (cvode.c)

OK

IDA (ida.c)

OK

/!\ DRAFT



2022-09-08 09:27