[Dcmlib] Test suite (once again)

Eric Boix Eric.Boix at creatis.insa-lyon.fr
Thu Jul 1 11:58:17 CEST 2004


	Salut,

Quoting Jean-Pierre Roux <Jean-Pierre.Roux at creatis.insa-lyon.fr>:
> Apres avoir remis la version pre-beautifyied de Parse7FE0, la plupart 
> des problèmes ont disparu.
Aye, aye, aye. Deux choses m'inquietent dans ta phrase:
 - la demarche qui consiste a ne pas chercher a trouver l'erreur dans
   le code lisible (ou a entropie reduite, plutot que beautified) et
   a re-introduire un code illisible (mais certes correst) est
   regrettable... Il ne faut pas oublier que d'autres liront ton
   code un jour. Je ne peux ici, que renvoyer a
      http://www.es.ioccc.org/main.html
   en rappelant le but de l'obfuscated C:
    * To write the most Obscure/Obfuscated C program under the rules below.
    * To show the importance of programming style, in an ironic way.
    * To stress C compilers with unusual code.
    * To illustrate some of the subtleties of the C language.
    * To provide a safe forum for poor C code. :-)
 - La deuxieme chose qui me gene est le mot "plupart" qui releve de
   la logique floue...

Treve de plaisanterie, j'ai re-reverte' au code a "entropie reduite",
change' la ligne qui n'allait pas et un peu change' la semantique
pour rendre le code plus robuste. En particulier quand on parse
une sequence RLE:
   - 1/ on itere tant que l'on trouve un item
   - 2/ a la sortie on verifie que l'on est bien sur un delimiteur.
Precedement le code faisait:
   - 1/ on itere tant que l'on n'est pas sur un delimiteur...
ce qui peut aller tres loin (trop loin) en cas d'image non conforme.

Ceci dit, mea-culpa pour avoir introduit un bug dans le beautify...

> Il ne reste plus que  gdcm-JPEG-LossLess3a.dcm qui casse.
> C'est une image bien connue sur internet, qui a un pb dans l'entete, qui 
> est lue par a peu pret tout les Dicom Viewers (sauf e-film).
> xmedcon -sorry, Linux only- , par exemple, dit <<unexepected end of 
> file>> mais l'affiche correctement.
> Son problème était résolu, dans gdcm,  'de manière pas jolie' -comme 
> probablement dans tous les autres viewers qui la traitent-
> 
> Depuis les améliorations de code (dont certaines ont du etre faites pour 
> contourner le fait de Parse7FE0 ne marchait plus)  le patch qui 
> permettait de la lire a été viré, remplacé par autre chose, qui ne 
> marche pas, et l'image a été black-listée, ainsi que plusieurs autres.
> (il y a probablement eu des modifs ailleurs, en relation avec tout ça ...)

Cela fonctionne maintenant (je reponds un peu en retard). Sur le fond:
gdcm n'a pas pour obligation de lire une image casse'e, mais par contre
doit lire les images correctes. Certes si en plus on sait lire les
images non conformes a la norme alors on a un feature de plus.
Mais un feature ne doit pas nous empecher de lire les images correctes...
Si temporairement, pour avoir du code sain, on ne sait plus faire des
features precedents, alors cela ne me choque pas. Car a terme, on
saura le faire d'autant plus simplement que le code sera sain.

Bon, de toutes fac,ons c'est repare' et on lit a nouveau cette image
casse'e mais sans faire de bug fix ad-hoc, mais de fac,ons plus
generale...

> Pourrait-on essayer de revenir à la situation stable antérieure (toutes 
> les images lues, plus d'images dans la black list)
C'est in-fine le but, meme si temporairement il est sain et souhaitable
de faire moins mais mieux ! Ensuite, il est plus simple de faire aussi bien
et meme mieux... Aussi une image blackliste'e pour de bonnes raisons
(car non conforme a la norme) ne me choque pas. Au contraire !
Apres tout, nous n'avons pas vocation pour reparer toutes les errances
des constructeurs d'imageurs...

	Eric.



More information about the Dcmlib mailing list