Skip to content
Snippets Groups Projects
Commit d31eaad2 authored by Erwan Jahier's avatar Erwan Jahier
Browse files

nonreg tests: make sure tcl commands [glob *.lus] returns files in the same order (using lsort)

Indeed, the shift from pave to bauges changes its behavior.
parent 3f8cb571
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
set timeout 20
set ok_files [glob should_work/*.lus]
set ok_files [lsort [glob should_work/*.lus]}
set id [should_work "Unit tests" "$lus2lic" "-unit"]
wait -i $id
# should be a fresh dir...
set tmp ./tmp/
eval file delete [glob -nocomplain $tmp*]
eval file delete [lsort [glob -nocomplain $tmp*]]
foreach f $ok_files {
set basef [file rootname $f]
......@@ -67,7 +67,7 @@ foreach f $ok_files {
proc iter_should_fail { fail_kind } {
global lus2lic test_lus2lic_no_node tmp
set files [glob should_fail/$fail_kind/*.lus]
set files [lsort [glob should_fail/$fail_kind/*.lus]]
foreach f $files {
set bf [file rootname $f]
set bf $tmp[file tail $bf]
......
......@@ -8,7 +8,7 @@ set tmp ./tmp/
# Programs that should work, but that do not
set files [glob -nocomplain should_work/broken/*.lus]
set files [lsort [glob -nocomplain should_work/broken/*.lus]]
foreach f $files {
set bf [file rootname $f]
......@@ -22,7 +22,7 @@ foreach f $files {
proc iter_should_fail { fail_kind } {
global lus2lic tmp
set files [glob -nocomplain should_fail/$fail_kind/broken/*.lus]
set files [lsort [glob -nocomplain should_fail/$fail_kind/broken/*.lus]]
foreach f $files {
set bf [file rootname $f]
set bf $tmp[file tail $bf]
......
......@@ -12,7 +12,7 @@ should_work "Unit tests" "$lus2lic" "-unit"
proc iter_should_fail { fail_kind } {
global lus2lic test_lus2lic_no_node tmp
set files [glob should_fail/$fail_kind/*.lus]
set files [lsort [glob should_fail/$fail_kind/*.lus]]
foreach f $files {
eval spawn "cp -f $f $tmp"
......
......@@ -2,7 +2,7 @@
set timeout 30
# for some reason [glob should_work/[a-n]*.lus] does not work
set ok_files [glob should_work/{a,b,c,d,e,f,g,h,i,j,k,l,m,A,B,C,D,E,F,G,H,I,J,K,L,M}*.lus]
set ok_files [lsort [glob should_work/{a,b,c,d,e,f,g,h,i,j,k,l,m,A,B,C,D,E,F,G,H,I,J,K,L,M}*.lus]]
......
......@@ -2,7 +2,7 @@
set timeout 40
# for some reason [glob should_work/[a-n]*.lus] does not work
set ok_files [glob should_work/{n,o,p,q,r,s,t,u,v,w,x,y,z,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}*.lus]
set ok_files [lsort [glob should_work/{n,o,p,q,r,s,t,u,v,w,x,y,z,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}*.lus]]
# should be a fresh dir...
......
......@@ -2,7 +2,7 @@
set timeout 30
# for some reason [glob should_work/[a-n]*.lus] does not work
set ok_files [glob should_work/{a,b,c,d,e,f,g,h,i,j,k,l,m,A,B,C,D,E,F,G,H,I,J,K,L,M}*.lus]
set ok_files [lsort [glob should_work/{a,b,c,d,e,f,g,h,i,j,k,l,m,A,B,C,D,E,F,G,H,I,J,K,L,M}*.lus]]
# should be a fresh dir...
......
......@@ -2,7 +2,7 @@
set timeout 40
# for some reason [glob should_work/[a-n]*.lus] does not work
set ok_files [glob should_work/{n,o,p,q,r,s,t,u,v,w,x,y,z,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}*.lus]
set ok_files [lsort [glob should_work/{n,o,p,q,r,s,t,u,v,w,x,y,z,N,O,P,Q,R,S,T,U,V,W,X,Y,Z}*.lus]]
# should be a fresh dir...
......
lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 1 seconds
lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 26 seconds
lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 63 seconds
lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 26 seconds
lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 77 seconds
lus2lic0.log:testcase ./lus2lic.tests/test0.exp completed in 4 seconds
lus2lic1.log:testcase ./lus2lic.tests/test1.exp completed in 42 seconds
lus2lic2.log:testcase ./lus2lic.tests/test2.exp completed in 76 seconds
lus2lic3.log:testcase ./lus2lic.tests/test3.exp completed in 43 seconds
lus2lic4.log:testcase ./lus2lic.tests/test4.exp completed in 91 seconds
* Ref time:
0.11user 0.08system 3:16.97elapsed 0%CPU (0avgtext+0avgdata 2464maxresident)k
0inputs+0outputs (0major+12543minor)pagefaults 0swaps
0.09user 0.08system 4:18.50elapsed 0%CPU (0avgtext+0avgdata 2472maxresident)k
0inputs+0outputs (0major+12568minor)pagefaults 0swaps
* Quick time (-j 4):
0.10user 0.07system 2:00.34elapsed 0%CPU (0avgtext+0avgdata 2472maxresident)k
0inputs+0outputs (0major+12567minor)pagefaults 0swaps
......@@ -52,7 +52,8 @@ http://www.di.ens.fr/~pouzet/bib/lctes12.pdf
bin oui, ca n'est pas legal en C. Du coup je fais quoi ?
Je rejete ?
** TODO Reject file name that cannot be used to build valid C ident when using the -2c option
- State "TODO" from "" [2014-05-23 Fri 17:20]
** TODO lic2c : Ca plante si un identificateur lustre se nomme double...
- State "TODO" from "" [2014-06-13 Fri 16:59]
** TODO lic2c : types externes utilisés en I/O du main pas supportés
......@@ -73,7 +74,6 @@ faire comme pour _assign_EXT_TYPE en s'inspirant de ce que fait ec2c
Quand ca sera corrigé, rétablir les tests correspondant dans
file:~/lus2lic/test/site.exp (cf proc does_not_contain_left_slices)
** TODO lic2c : polymorphisme
- State "TODO" from "" [2014-07-09 Wed 17:13]
lus2lic -2c should_work/cond01.lus -n cond01
......@@ -118,7 +118,6 @@ sert a rien cette affaire.
3. ./myec2c -o test_merge.c test_merge.ec
-> genere un "when not clk" pas supporté pas ec
* Packages, modeles, etc.
** STARTED Il ne detecte plus les erreurs de type lors d'instanciation de noeuds
- State "STARTED" from "TODO" [2013-01-28 Mon 17:02]
......@@ -159,6 +158,63 @@ file:src/astInstanciateModel.ml
file:test/should_fail/type/parametric_node.lus
* Testing process
** TODO Quand tous les test sont ok: comprendre pourquoi test_lus2lic_no_node et rdbg divergent
SCHEDULED: <2014-09-08 Mon>
- State "TODO" from "" [2013-12-10 Tue 13:37]
En fait, c'est le bis qui semble avoir raison à chaque fois
a voir quand j'aurais tous les tests qui passent
pour voir la liste des tests que échouent : file:~/lus2lic/test/lus2lic.sum
** STARTED [#B] utiliser rdbg -lurette a la place de lurettetop dans les test de non reg
SCHEDULED: <2014-11-03 Mon>
- State "STARTED" from "TODO" [2013-12-06 Fri 17:37]
- State "TODO" from "" [2013-11-27 Wed 18:18]
Pour cela, il suffit de modifier le fichier file:~/lus2lic/test/site.exp
ca marche, mais c'est plus lent (100->183s). c'est sans doute parce que
je passe par des sockets.
Il faudrait passer par des cmxs pour l'env et l'oracle, mais ca
complique un peu le script car il faut générer les bons cmxs.
[...]
Voila, je passe maintenant par des cmxs. Malheureusement, je passe à
300s car je passe pas mal de temps à generer ces cmxs, et comme je ne
fais que 10 step à chaque fois, c'est cet aspect qui domine...
Bon, sinon, si on regarde juste nested.lus, sur 10 pas, l'overhead a l'air
d'etre autour de 2%
Sur plus.lus pendant 10000 steps, j'ai
|--------------+------|
| rdbg -socket | 9:44 |
| rdbg -cmxs | 8:40 |
| lurettetop | 4:00 |
|--------------+------|
Sur nested.lus pendant 10 steps, j'ai :
|--------------+----------|
| rdbg -socket | 64s |
| rdbg -cmxs | 185s !!! |
| lurettetop | 53.3s |
|--------------+----------|
Comment c'est possible ce truc ???!!!
nested.ec possede certes plus de 7000 variables (dont pres de 6000
sont locales), du coup manipuler des listes n'aide pas. Mais c'est le
cas pour les 3.
Le mode socket ne transmet pas les var locales, d'ou la difference ?
Est-ce une bonne idée d'utiliser des listes d'ailleurs. au niveau des
mli, peut-etre. Mais je devrais peut-etre m'en affranchir plus vite
pour traiter ce genre d'exemple...
** TODO Testing node with enums don't work
- State "TODO" from "" [2013-05-28 Tue 14:46]
......@@ -222,6 +278,25 @@ il dit 'A SUT input is missing: o1'
tout en cachant la vraie erreur (assert error)
* Divers
** TODO lv4 enum types are not compatible with lutin ones
- State "TODO" from "" [2014-03-28 Fri 15:49]
For lv6, it's ok, so, well...
I'd need to add support for enums in Lutin to fix this one.
-> Or the -eei option could do something else (inlining const definition)
indeed, -ec -eei generates ec code that is not syntactically correct for ecexe.
Should I do this (const inlining) with 'ec -eei only ? it seems fair enough
-> Other idea. Go though V4 and lus2ec.
** TODO lus2lic : reprendre unifyClock.ml proprement
SCHEDULED: <2014-11-10 Mon>
- State "TODO" from "" [2013-09-24 Tue 16:35]
cf file:~/lus2lic/src/unifyClock.ml
http://www.cs.cornell.edu/courses/cs3110/2011sp/lectures/lec26-type-inference/type-inference.htm
** TODO Soc2cIdent.key_op2str est faux
- State "TODO" from "" [2014-08-13 Wed 17:33]
......@@ -428,3 +503,46 @@ infos Lic.type_, donc autant attendre un peu avant de s'en passer.
../utils/test_lus2lic_no_node should_work/sincos.lus
* a classer
** TODO bug clock tim
- State "TODO" from "" [2013-09-23 Mon 11:13]
donc c'est file:~/lus2lic/src/l2lExpandNodes.ml le coupable on dirait
en effet, quand on ne branche que l'expansion de noeud
~/lus2lic/objlinux/lus2lic ~/xxx/test.lus -n verify -en > xxx.ec
on obtient
uw1:bool when cw; ici 3
_u1_5:bool when cr; ici 1
puis
_u1_5 = uw1;
ce qui ne peut pas marcher...
===> creating _uw1_1 from uw1 with clock on true(cw) on base
===> creating _u1_5 from u1 with clock on true(cr) on base
uw1 : bool when cw;
u1 : bool when cw;
c'est donc _u1_5 qui n'est pas sur la bonne horloge ?
a l'appel de
OK2 = (mem(cr, ur1) = mem(cw, uw1));
ne se prendrait-il pas les pieds dans le tapi ?
car _u1_5 est créé lors de l'un de ces 2 appels
[...]
bon, si dans mem je renomme cw en clk, ca marche !!!
c'est un probleme de clash de nom de variable !!!
[...]
Finalement, le pb est plutot la il semblerait :
file:~/lus2lic/src/evalClock.ml::83
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment