From 9753e6deb94ae79a17dcc071ff18be6c94584f7b Mon Sep 17 00:00:00 2001 From: abv Date: Thu, 18 Apr 2013 18:41:45 +0400 Subject: [PATCH] 0023905: Clean obsolete test commands In parallel mode, limit number of jobs in the queue to avoid slowdown occurring with long queues Obsolete DRAW tools removed Improvement of processing of test log: - log is collected as list and not as string for better performance - short table of test cases (TOC) is added in HTML log - algorithm to combine test cases in one row in HTML log is improved to avoid long lines (group bugs) Parse rules corrected to ignore irrelevant debug messages, and to correctly report tests 3rdparty export as skipped or BAD when Gl2Ps is missing or is built in incompatible mode on windows Tests corrected to pass in Debug mode on Windows --- src/DrawResources/BuildWorkbench.tcl | 344 -------- src/DrawResources/Consultation.tcl | 456 ---------- src/DrawResources/DIFF.c | 64 -- src/DrawResources/DrawDefault | 9 - src/DrawResources/FILES | 12 - src/DrawResources/Filtre.c | 41 - src/DrawResources/Grille.tcl | 59 -- src/DrawResources/QARebuildCommands | 5 - src/DrawResources/TestCommands.tcl | 162 ++-- src/DrawResources/TestDraw.cxx | 88 -- src/DrawResources/Tests.tcl | 835 ------------------- src/DrawResources/mdltest | 236 ------ src/DrawResources/test2xl | 55 -- src/DrawResources/vmdltest | 3 - src/QADraw/QADraw.cdl | 8 +- src/QADraw/QADraw.cxx | 391 --------- src/ViewerTest/ViewerTest_ViewerCommands.cxx | 12 +- tests/3rdparty/export/begin | 6 + tests/3rdparty/parse.rules | 1 + tests/bugs/begin | 20 +- tests/bugs/caf/bug1724 | 2 - tests/bugs/fclasses/bug6143 | 1 - tests/bugs/fclasses/bug7287_1 | 3 + tests/bugs/fclasses/bug7287_2 | 2 +- tests/bugs/fclasses/bug7287_3 | 2 +- tests/bugs/fclasses/bug7287_4 | 2 +- tests/bugs/fclasses/bug7287_5 | 2 +- tests/bugs/fclasses/bug7287_6 | 2 +- tests/bugs/modalg_1/bug19793_2 | 2 +- tests/bugs/modalg_2/bug20297_1 | 1 - tests/bugs/modalg_2/bug20297_2 | 1 - tests/bugs/modalg_2/bug20297_3 | 1 - tests/bugs/modalg_2/bug20297_4 | 1 - tests/bugs/modalg_2/bug20297_5 | 1 - tests/bugs/modalg_2/bug20964_1 | 1 - tests/bugs/modalg_2/bug20964_2 | 1 - tests/bugs/modalg_2/bug20964_3 | 1 - tests/bugs/modalg_2/bug20964_4 | 1 - tests/bugs/modalg_2/bug20964_5 | 1 - tests/bugs/modalg_2/bug21261_1 | 1 - tests/bugs/modalg_2/bug21261_10 | 1 - tests/bugs/modalg_2/bug21261_11 | 1 - tests/bugs/modalg_2/bug21261_12 | 1 - tests/bugs/modalg_2/bug21261_13 | 1 - tests/bugs/modalg_2/bug21261_14 | 1 - tests/bugs/modalg_2/bug21261_15 | 1 - tests/bugs/modalg_2/bug21261_16 | 1 - tests/bugs/modalg_2/bug21261_17 | 1 - tests/bugs/modalg_2/bug21261_18 | 1 - tests/bugs/modalg_2/bug21261_19 | 1 - tests/bugs/modalg_2/bug21261_2 | 1 - tests/bugs/modalg_2/bug21261_20 | 1 - tests/bugs/modalg_2/bug21261_21 | 1 - tests/bugs/modalg_2/bug21261_22 | 1 - tests/bugs/modalg_2/bug21261_23 | 1 - tests/bugs/modalg_2/bug21261_24 | 1 - tests/bugs/modalg_2/bug21261_25 | 1 - tests/bugs/modalg_2/bug21261_26 | 1 - tests/bugs/modalg_2/bug21261_27 | 1 - tests/bugs/modalg_2/bug21261_28 | 1 - tests/bugs/modalg_2/bug21261_29 | 1 - tests/bugs/modalg_2/bug21261_3 | 1 - tests/bugs/modalg_2/bug21261_30 | 1 - tests/bugs/modalg_2/bug21261_31 | 1 - tests/bugs/modalg_2/bug21261_32 | 1 - tests/bugs/modalg_2/bug21261_33 | 1 - tests/bugs/modalg_2/bug21261_34 | 1 - tests/bugs/modalg_2/bug21261_35 | 1 - tests/bugs/modalg_2/bug21261_36 | 1 - tests/bugs/modalg_2/bug21261_37 | 1 - tests/bugs/modalg_2/bug21261_38 | 1 - tests/bugs/modalg_2/bug21261_39 | 1 - tests/bugs/modalg_2/bug21261_4 | 1 - tests/bugs/modalg_2/bug21261_40 | 1 - tests/bugs/modalg_2/bug21261_41 | 1 - tests/bugs/modalg_2/bug21261_42 | 1 - tests/bugs/modalg_2/bug21261_43 | 1 - tests/bugs/modalg_2/bug21261_44 | 1 - tests/bugs/modalg_2/bug21261_45 | 1 - tests/bugs/modalg_2/bug21261_46 | 1 - tests/bugs/modalg_2/bug21261_5 | 1 - tests/bugs/modalg_2/bug21261_6 | 1 - tests/bugs/modalg_2/bug21261_7 | 1 - tests/bugs/modalg_2/bug21261_8 | 1 - tests/bugs/modalg_2/bug21261_9 | 1 - tests/bugs/modalg_2/bug21652_1 | 3 +- tests/bugs/modalg_2/bug21652_2 | 3 +- tests/bugs/modalg_2/bug305 | 46 - tests/bugs/modalg_4/bug827_1 | 12 +- tests/bugs/moddata_1/bug150_1 | 6 - tests/bugs/moddata_1/bug150_2 | 5 - tests/bugs/moddata_1/bug20683 | 1 - tests/bugs/moddata_1/bug22759 | 2 +- tests/bugs/moddata_1/bug54 | 5 +- tests/bugs/moddata_2/bug22758 | 28 +- tests/bugs/moddata_2/bug23051 | 25 +- tests/bugs/moddata_2/bug353 | 2 +- tests/bugs/moddata_3/buc60634 | 17 +- tests/bugs/vis/bug1629 | 2 - tests/bugs/vis/bug1786 | 1 - tests/bugs/vis/bug21747_1 | 1 - tests/bugs/vis/bug21747_10 | 1 - tests/bugs/vis/bug21747_11 | 1 - tests/bugs/vis/bug21747_12 | 1 - tests/bugs/vis/bug21747_13 | 1 - tests/bugs/vis/bug21747_14 | 1 - tests/bugs/vis/bug21747_15 | 1 - tests/bugs/vis/bug21747_16 | 1 - tests/bugs/vis/bug21747_17 | 1 - tests/bugs/vis/bug21747_2 | 1 - tests/bugs/vis/bug21747_3 | 1 - tests/bugs/vis/bug21747_4 | 1 - tests/bugs/vis/bug21747_5 | 1 - tests/bugs/vis/bug21747_6 | 1 - tests/bugs/vis/bug21747_7 | 1 - tests/bugs/vis/bug21747_8 | 1 - tests/bugs/vis/bug21747_9 | 1 - tests/bugs/vis/bug22188 | 1 - tests/bugs/vis/bug316 | 2 +- tests/bugs/xde/bug23047_1 | 2 - tests/bugs/xde/bug23047_2 | 2 - tests/de/parse.rules | 5 +- tests/parse.rules | 2 + tests/thrusection/parse.rules | 1 + 124 files changed, 191 insertions(+), 2880 deletions(-) delete mode 100755 src/DrawResources/BuildWorkbench.tcl delete mode 100755 src/DrawResources/Consultation.tcl delete mode 100755 src/DrawResources/DIFF.c delete mode 100755 src/DrawResources/Filtre.c delete mode 100755 src/DrawResources/Grille.tcl delete mode 100644 src/DrawResources/QARebuildCommands delete mode 100755 src/DrawResources/TestDraw.cxx delete mode 100755 src/DrawResources/Tests.tcl delete mode 100755 src/DrawResources/mdltest delete mode 100755 src/DrawResources/test2xl delete mode 100755 src/DrawResources/vmdltest create mode 100644 tests/3rdparty/export/begin create mode 100644 tests/3rdparty/parse.rules diff --git a/src/DrawResources/BuildWorkbench.tcl b/src/DrawResources/BuildWorkbench.tcl deleted file mode 100755 index 6ee0a9961d..0000000000 --- a/src/DrawResources/BuildWorkbench.tcl +++ /dev/null @@ -1,344 +0,0 @@ -# Copyright (c) 1999-2012 OPEN CASCADE SAS -# -# The content of this file is subject to the Open CASCADE Technology Public -# License Version 6.5 (the "License"). You may not use the content of this file -# except in compliance with the License. Please obtain a copy of the License -# at http://www.opencascade.org and read it completely before using this file. -# -# The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -# main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -# -# The Original Code and all software distributed under the License is -# distributed on an "AS IS" basis, without warranty of any kind, and the -# Initial Developer hereby disclaims all such warranties, including without -# limitation, any warranties of merchantability, fitness for a particular -# purpose or non-infringement. Please see the License for the specific terms -# and conditions governing the rights and limitations under the License. - -# -# -# procedures pour automatiser la fabrication de gti -# -# -puts " ***** loading build_list ***** " -############################################################################### -# -# -proc build_list { factory ilot workbench exelist toolkitlist packagelist } { -# -# -############################################################################### -# fabrique la liste des executables, toolkits et packages -# pour un workbench donne -# - - upvar $exelist EXECUTABLE_LIST - upvar $toolkitlist TOOLKIT_LIST - upvar $packagelist PACKAGE_LIST - wokcd [concat $factory:$ilot:$workbench] - wokprofile -d - set UD_LIST [ w_info -l ] - set PACKAGE_LIST "" - set EXECUTABLE_LIST "" - set TOOLKIT_LIST "" - for { set i 0 } { $i <= [expr [ llength $UD_LIST ] - 1 ]} { incr i } { - set p [lindex $UD_LIST $i] - set typ [ uinfo -t $p ] - if { $typ == "executable" } { - lappend EXECUTABLE_LIST $p - } elseif { $typ == "toolkit" } { - lappend TOOLKIT_LIST $p - } elseif { $typ == "package" || $typ == "nocdlpack" } { - lappend PACKAGE_LIST $p - } - } -} -puts " ***** loading extract_from_cdl ***** " -############################################################################### -# -# -proc extract_from_cdl { factory ilot workbench } { -# -# -############################################################################### - build_list $factory $ilot $workbench TYPE_OF_PACKAGE_LIST(1) TYPE_OF_PACKAGE_LIST(2) TYPE_OF_PACKAGE_LIST(3) - puts " *********** Extraction commencing at " - puts "[exec date]" - for { set i 0 } { $i <= [expr [ llength $TYPE_OF_PACKAGE_LIST(3) ] - 1 ]} { incr i } { - set PACKAGE [lindex $TYPE_OF_PACKAGE_LIST(3) $i] - wokcd $PACKAGE - set LOCAL_UD [ wokcd ] - - - set ERROR_FILE [ wokinfo -p admfile:cdlcompile.log $LOCAL_UD ] - set ERROR_DIRECTORY [ file dirname $ERROR_FILE ] - puts " $ERROR_FILE " -# -# attention : verifier que la directory existe -# - if { [ file isdirectory $ERROR_DIRECTORY ] } { - set FILE_DESCRIPTOR [ open $ERROR_FILE w ] -# -# on initialise avec un chaine null le fichier -# - puts $FILE_DESCRIPTOR "" -# -# on redirige les erreurs avec un dispatcheur -# - msgsetcmd dispatch_compile_message $FILE_DESCRIPTOR - } - catch { umake -fe obj.inc } -# puts "umake -fe obj.inc" - if { [ file isdirectory $ERROR_DIRECTORY ] } { - close $FILE_DESCRIPTOR - msgunsetcmd - } - - } - puts " ********** Extraction ending at " - puts " [exec date]" - msclear -} -puts " ***** loading force_build_only_obj ***** " -############################################################################### -# -# -proc force_build_only_obj { factory ilot workbench } { -# -# -############################################################################### - build_list $factory $ilot $workbench TYPE_OF_PACKAGE_LIST(1) TYPE_OF_PACKAGE_LIST(2) TYPE_OF_PACKAGE_LIST(3) - puts " ********* Obj commencing at " - puts " [ exec date ] " - for { set i 0 } { $i <= [expr [ llength $TYPE_OF_PACKAGE_LIST(3) ] - 1 ]} { incr i } { - set p [lindex $TYPE_OF_PACKAGE_LIST(3) $i] - wokcd $p - set LOCAL_UD [ wokcd ] - set ERROR_FILE [ wokinfo -p stadmfile:objcompile.log $LOCAL_UD ] - set ERROR_DIRECTORY [ file dirname $ERROR_FILE ] - puts " $ERROR_FILE " -# -# attention : verifier que la directory existe -# - if { [ file isdirectory $ERROR_DIRECTORY ] } { - set FILE_DESCRIPTOR [ open $ERROR_FILE w ] -# -# on initialise avec un chaine null le fichier -# - puts $FILE_DESCRIPTOR "" -# -# on redirige les erreurs avec un dispatcheur -# - msgsetcmd dispatch_compile_message $FILE_DESCRIPTOR - } - catch { umake -of obj } -# puts " umake -o obj $p " - if { [ file isdirectory $ERROR_DIRECTORY ] } { - close $FILE_DESCRIPTOR - msgunsetcmd - } - - - } - for { set j 1 } { $j <= 2 } { incr j } { - for { set i 0 } { $i <= [expr [ llength $TYPE_OF_PACKAGE_LIST($j) ] - 1 ]} { incr i } { - set p [lindex $TYPE_OF_PACKAGE_LIST($j) $i] - wokcd $p - set LOCAL_UD [ wokcd ] - set ERROR_FILE [ wokinfo -p stadmfile:objcompile.log $LOCAL_UD ] - set ERROR_DIRECTORY [ file dirname $ERROR_FILE ] - puts " $ERROR_FILE " -# -# attention : verifier que la directory existe -# - if { [ file isdirectory $ERROR_DIRECTORY ] } { - set FILE_DESCRIPTOR [ open $ERROR_FILE w ] -# -# on initialise avec un chaine null le fichier -# - puts $FILE_DESCRIPTOR "" -# -# on redirige les erreurs avec un dispatcheur -# - msgsetcmd dispatch_compile_message $FILE_DESCRIPTOR - } - - catch { umake -f } -# puts " umake $p " - if { [ file isdirectory $ERROR_DIRECTORY ] } { - close $FILE_DESCRIPTOR - msgunsetcmd - } - } - } - - puts " ********* Obj ending at " - puts " [ exec date ] " - msclear -} -puts " ***** loading build_only_obj ****** " -############################################################################### -# -# -proc build_only_obj { factory ilot workbench } { -# -# -############################################################################### - - build_list $factory $ilot $workbench TYPE_OF_PACKAGE_LIST(1) TYPE_OF_PACKAGE_LIST(2) TYPE_OF_PACKAGE_LIST(3) - puts " ********* Obj commencing at " - puts " [ exec date ] " - for { set i 0 } { $i <= [expr [ llength $TYPE_OF_PACKAGE_LIST(3) ] - 1 ]} { incr i } { - set p [lindex $TYPE_OF_PACKAGE_LIST(3) $i] - wokcd $p - set LOCAL_UD [ wokcd ] - set ERROR_FILE [ wokinfo -p stadmfile:objcompile.log $LOCAL_UD ] - set ERROR_DIRECTORY [ file dirname $ERROR_FILE ] - puts " $ERROR_FILE " -# -# attention : verifier que la directory existe -# - if { [ file isdirectory $ERROR_DIRECTORY ] } { - set FILE_DESCRIPTOR [ open $ERROR_FILE w ] -# -# on initialise avec un chaine null le fichier -# - puts $FILE_DESCRIPTOR "" -# -# on redirige les erreurs avec un dispatcheur -# - msgsetcmd dispatch_compile_message $FILE_DESCRIPTOR - } - catch { umake -o obj } -# puts " umake -o obj $p " - if { [ file isdirectory $ERROR_DIRECTORY ] } { - close $FILE_DESCRIPTOR - msgunsetcmd - } - - - } - for { set j 1 } { $j <= 2 } { incr j } { - for { set i 0 } { $i <= [expr [ llength $TYPE_OF_PACKAGE_LIST($j) ] - 1 ]} { incr i } { - set p [lindex $TYPE_OF_PACKAGE_LIST($j) $i] - wokcd $p - set LOCAL_UD [ wokcd ] - set ERROR_FILE [ wokinfo -p stadmfile:objcompile.log $LOCAL_UD ] - set ERROR_DIRECTORY [ file dirname $ERROR_FILE ] - puts " $ERROR_FILE " -# -# attention : verifier que la directory existe -# - if { [ file isdirectory $ERROR_DIRECTORY ] } { - set FILE_DESCRIPTOR [ open $ERROR_FILE w ] -# -# on initialise avec un chaine null le fichier -# - puts $FILE_DESCRIPTOR "" -# -# on redirige les erreurs avec un dispatcheur -# - msgsetcmd dispatch_compile_message $FILE_DESCRIPTOR - } - - catch { umake } -# puts " umake $p " - if { [ file isdirectory $ERROR_DIRECTORY ] } { - close $FILE_DESCRIPTOR - msgunsetcmd - } - } - } - - puts " ********* Obj ending at " - puts " [ exec date ] " - msclear -} -############################################################################### -# -# -proc dispatch_compile_message { code message file } { -# -# -############################################################################### - puts " $message " - if { $code == "E" } { - puts $file " $message " - } -# -# E les erreurs -# -# -# V verbose -# -# -# I les infos -# -# -# W les warnings -# - - -} -puts " ***** loading build_obj_log ***** " -############################################################################### -# -# -proc build_obj_log { factory ilot workbench } { -# -# -############################################################################### - puts " Erreurs dans les compiles obj :" - build_list $factory $ilot $workbench TYPE_OF_PACKAGE_LIST(1) TYPE_OF_PACKAGE_LIST(2) TYPE_OF_PACKAGE_LIST(3) - for { set j 2 } { $j <= 3 } { incr j } { - for { set i 0 } { $i <= [expr [ llength $TYPE_OF_PACKAGE_LIST($j) ] - 1 ]} { incr i } { - set p [lindex $TYPE_OF_PACKAGE_LIST($j) $i] - wokcd $p - set LOCAL_UD [ wokcd ] - set ERROR_FILE [ wokinfo -p stadmfile:objcompile.log $LOCAL_UD ] - if { [ file exists $ERROR_FILE ] } { - set FILE_DESCRIPTOR [ open $ERROR_FILE r ] - set ERROR_HAPPENED 0 - while { [ gets $FILE_DESCRIPTOR LINE ] >= 0 && $ERROR_HAPPENED == 0 } { - if { [ regexp Error $LINE ] } { - puts "$LOCAL_UD" - set ERROR_HAPPENED 1 - } - } - close $FILE_DESCRIPTOR - } - } - } -} -puts " ***** loading build_cdl_log ****** " -############################################################################### -# -# -proc build_cdl_log { factory ilot workbench } { -# -# -############################################################################### - puts "Erreurs dans les compiles cdl :" - build_list $factory $ilot $workbench TYPE_OF_PACKAGE_LIST(1) TYPE_OF_PACKAGE_LIST(2) TYPE_OF_PACKAGE_LIST(3) - for { set i 0 } { $i <= [expr [ llength $TYPE_OF_PACKAGE_LIST(3) ] - 1 ]} { incr i } { - set p [lindex $TYPE_OF_PACKAGE_LIST(3) $i] - wokcd $p - set LOCAL_UD [ wokcd ] - set ERROR_FILE [ wokinfo -p admfile:cdlcompile.log $LOCAL_UD ] - if { [ file exists $ERROR_FILE ] } { - set FILE_DESCRIPTOR [ open $ERROR_FILE r ] - set ERROR_HAPPENED 0 - while { [ gets $FILE_DESCRIPTOR LINE ] >= 0 && $ERROR_HAPPENED == 0} { - if { [ regexp Error $LINE ] } { - puts "$LOCAL_UD " - set ERROR_HAPPENED 1 - } - } - close $FILE_DESCRIPTOR - } - } -} - - - - diff --git a/src/DrawResources/Consultation.tcl b/src/DrawResources/Consultation.tcl deleted file mode 100755 index 400c5f269b..0000000000 --- a/src/DrawResources/Consultation.tcl +++ /dev/null @@ -1,456 +0,0 @@ -# Copyright (c) 1999-2012 OPEN CASCADE SAS -# -# The content of this file is subject to the Open CASCADE Technology Public -# License Version 6.5 (the "License"). You may not use the content of this file -# except in compliance with the License. Please obtain a copy of the License -# at http://www.opencascade.org and read it completely before using this file. -# -# The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -# main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -# -# The Original Code and all software distributed under the License is -# distributed on an "AS IS" basis, without warranty of any kind, and the -# Initial Developer hereby disclaims all such warranties, including without -# limitation, any warranties of merchantability, fitness for a particular -# purpose or non-infringement. Please see the License for the specific terms -# and conditions governing the rights and limitations under the License. - -# -# wish tools to browse tests and results -# -package require Tk - -#################################################### -# source batch tcl -#################################################### -# -# sets the following environment variables -# -# WBCONTAINER -# WBROOT -# STATION -# -source $env(DRAWHOME)/InitEnvironment.tcl - -source $env(DRAWHOME)/Tests.tcl - -#################################################### -# executable to display images -#################################################### - -set imageExec $env(WBROOT)/$env(STATION)/bin/TestImage -#set imageExec [ wokinfo -p testexec:TestImage ] - -#################################################### -# Colors and title -#################################################### - -option add *Background grey -option add *Foreground black -wm title . "Modeling Team Test Browser" -wm geometry . +460+10 - -#################################################### -# Les Boutons -#################################################### - -frame .top - -frame .b - -set nextCommand "nextTest" -proc InteractiveNext {} { - - # process the next button - # remove display of image for rapidity - - global nextCommand withImage - set oldwith $withImage - set withImage 0 - $nextCommand - set withImage $oldwith - displayImage - focus . -} - -button .b.init -text "init" -command init -button .b.clear -text "clear" -command clearResult -button .b.copy -text "Copy" -command copyMaster -button .b.exit -text "exit" -command {if $withImage switchImage; exit} -button .b.view -text "View" -command viewTest -button .b.run -text "Run" -command runTest -button .b.send -text "Send" -command sendTest -button .b.next -text "Next" -command InteractiveNext -button .b.nul -text "next UL" -command nextUL -button .b.nfunc -text "next Function" -command nextFunction - -radiobutton .b.withtest -anchor w -relief flat \ - -text "Test " -variable nextCommand -value "nextTest" -radiobutton .b.withres -anchor w -relief flat \ - -text "With result" -variable nextCommand -value "nextWithResult" -radiobutton .b.witherr -anchor w -relief flat \ - -text "With error" -variable nextCommand -value "nextWithError" - -pack .b.init .b.clear .b.copy .b.run .b.send .b.view \ - .b.next .b.withtest .b.withres .b.witherr \ - .b.nul .b.nfunc .b.exit \ - -side top -fill x - -pack .b -side right -anchor n -in .top - -#################################################### -# Les directory test resultat et master -# les entry -#################################################### - -frame .root -label .root.name -text "Root of tests : " -width 20 -anchor w -entry .root.val -relief sunken -textvariable testRoot -width 40 -pack .root.name .root.val -side left - -frame .res -label .res.name -text "Result directory : " -width 20 -anchor w -entry .res.val -relief sunken -textvariable resultRoot -width 40 -pack .res.name .res.val -side left - -frame .master -label .master.name -text "Master directory : " -width 20 -anchor w -entry .master.val -relief sunken -textvariable masterRoot -width 40 -pack .master.name .master.val -side left - -frame .exec -label .exec.name -text "Executable : " -width 20 -anchor w -entry .exec.val -relief sunken -textvariable theExec -width 40 -pack .exec.name .exec.val -side left - -frame .sendto -label .sendto.name -text "Send to : " -width 20 -anchor w -entry .sendto.val -relief sunken -textvariable theDraw -width 40 -pack .sendto.name .sendto.val -side left - -# enforce update when return -bind .root.val "set theTest $theTest" -bind .res.val "set theTest $theTest" -bind .master.val "set theTest $theTest" -bind .exec.val "set theTest $theTest" - -pack .root .res .master .exec .sendto -side top -in .top - -#################################################### -# Les list box UL Function Test -#################################################### - -listbox .uls -relief sunken -borderwidth 2 \ - -yscrollcommand ".suls set" -scrollbar .suls -relief sunken -command ".uls yview" - -listbox .funcs -relief sunken -borderwidth 2 \ --yscrollcommand ".sfuncs set" -scrollbar .sfuncs -relief sunken -command ".funcs yview" - -listbox .tests -relief sunken -borderwidth 2 \ --yscrollcommand ".stests set" -scrollbar .stests -relief sunken -command ".tests yview" - -bind .uls { - set theUL [selection get] -} - -bind .funcs { - set theFunction [selection get] -} - -bind .tests { - set theTest [selection get] -} - -# procedures de trace des variables listes -# mettent a jour la list box correspondante - -trace variable listUL w listULProcW -proc listULProcW {name element op} { - global listUL - .uls delete 0 [.uls size] - foreach f $listUL {.uls insert end $f} -} - -trace variable listFunction w listFunctionProcW -proc listFunctionProcW {name element op} { - global listFunction - .funcs delete 0 [.funcs size] - foreach f $listFunction {.funcs insert end $f} -} - -trace variable listTest w listTestProcW -proc listTestProcW {name element op} { - global listTest - .tests delete 0 [.tests size] - foreach f $listTest {.tests insert end $f} -} - -#presentation - -pack .uls .suls .funcs .sfuncs .tests .stests -side left -fill both -in .top - -#################################################### -# the current UL Function Test, associated buttons -#################################################### - -frame .current - -label .current.ul -textvariable theUL -label .current.func -textvariable theFunction -label .current.test -textvariable theTest - -pack .current.ul .current.func .current.test -side left - -#################################################### -# le statut -#################################################### - -frame .status -label .status.h -text "${theStatusHeader} : " -label .status.s -textvariable theStatusLine -anchor w - -# menu des fichiers xwd - -set withImage 0 -set hasImage "No Image" -set nbXWD "0 images " - -label .status.xwd -textvariable nbXWD -button .status.vxwd -text "no Display" -command switchImage -bind . switchImage - -proc switchImage {} { - global withImage imageProcess - if $withImage { - set withImage 0 - .status.vxwd configure -text "no Display" - catch {exec kill $imageProcess} - set imageProcess 0 - } else { - set withImage 1 - .status.vxwd configure -text "Display" - displayImage - } -} - -trace variable theXWDFiles w theXWDFilesProcW - -proc theXWDFilesProcW {name element op} { - global nbXWD theXWDFiles - set nbXWD "[llength $theXWDFiles] images " - displayImage -} - -set imageProcess 0 - -proc displayImage {} { - global withImage - if {! $withImage} return - global imageExec imageProcess - global theXWDFiles resultRoot masterRoot theUL theFunction - if $imageProcess {catch {exec kill $imageProcess}} - - foreach f [glob -nocomplain /tmp/*.xwd] {catch {exec rm -f $f}} - set r {} - foreach h $theXWDFiles { - set g [file rootname [file tail $h]] - set f $resultRoot/$theUL/$theFunction/$g.Z - if [file readable $f] { - catch {exec cp $f /tmp/r$g.Z} - catch {exec uncompress /tmp/r$g.Z} - lappend r /tmp/r$g - } else {lappend r "XXXX"} - set f $masterRoot/$theUL/$theFunction/$g.Z - if [file readable $f] { - catch {exec cp $f /tmp/m$g.Z} - catch {exec uncompress /tmp/m$g.Z} - lappend r /tmp/m$g - } else {lappend r "XXXX"} - } - set imageProcess [eval exec $imageExec $r & ] -} - -pack .status.h .status.s -side left -pack .status.vxwd .status.xwd -side right - -#################################################### -# Les resultats et les master -#################################################### - -frame .log -text .log.result -relief raised -bd 2 -width 38 -yscrollcommand ".log.sresult set" -scrollbar .log.sresult -relief sunken -command ".log.result yview" -text .log.master -relief raised -bd 2 -width 38 -yscrollcommand ".log.smaster set" -scrollbar .log.smaster -relief sunken -command ".log.master yview" - -# trace the files names -proc loadFile {file text} { - $text delete 1.0 end - if {$file == ""} return - if [file isdirectory $file] return - if [file readable $file] { - set f [open $file] - while {![eof $f]} { - $text insert end [read $f 1000] - } - close $f - } -} - -trace variable theLog w theLogProc -proc theLogProc {name element op} { - global theLog - loadFile $theLog .log.result -} - -trace variable theErrorLines w theErrorLinesProc -proc theErrorLinesProc {name element op} { - global theErrorLines - # tag the errors if there are - .log.result tag delete error - foreach l $theErrorLines { - .log.result tag add error $l.0 $l.end - .log.result tag configure error -background orange - } -} - -trace variable theDiffs w theDiffsProc -proc theDiffsProc {name element op} { - global theDiffs - # tag the differences if there are - .log.result tag delete diffs - .log.master tag delete diffs - if [llength $theDiffs] { - foreach l $theDiffs { - .log.result tag add diffs ${l}.0 ${l}.end - .log.master tag add diffs ${l}.0 ${l}.end - } - .log.result tag configure diffs -background lightblue - .log.master tag configure diffs -background lightblue - } -} - -trace variable theMasterLog w theMasterLogProc -proc theMasterLogProc {name element op} { - global theMasterLog - loadFile $theMasterLog .log.master -} - -pack .log.result .log.sresult .log.master .log.smaster -side left -fill y - -#################################################### -# panel to display the test -#################################################### - -set hasTestPanel 0 -set withBeginEnd 0 -set beginFunction "" -set endFunction "" -set beginUL "" -set endUL "" - -proc viewTest {} { - global hasTestPanel - if {! $hasTestPanel} { - set hasTestPanel 1 - toplevel .panel - wm geometry .panel +10+610 - - frame .panel.b - button .panel.b.quit -text Quit \ - -command {destroy .panel; set hasTestPanel 0} - bind .panel {destroy .panel; set hasTestPanel 0} - - button .panel.b.bfunc -textvariable beginFunction \ - -command {loadFile $testRoot/$theUL/$theFunction/begin .panel.t.text} - button .panel.b.efunc -textvariable endFunction \ - -command {loadFile $testRoot/$theUL/$theFunction/end .panel.t.text} - button .panel.b.bul -textvariable beginUL \ - -command {loadFile $testRoot/$theUL/begin .panel.t.text} - button .panel.b.eul -textvariable endUL \ - -command {loadFile $testRoot/$theUL/end .panel.t.text} - button .panel.b.test -textvariable theTest \ - -command {loadFile $testRoot/$theUL/$theFunction/$theTest .panel.t.text} - button .panel.b.next -text Next -command {$nextCommand; focus .panel} - bind .panel {$nextCommand} - - button .panel.b.concat -text "Concat " -command { - if { $withBeginEnd} { - set withBeginEnd 0 - } else { - set withBeginEnd 1 - } - displayTest - } - button .panel.b.send -text "Send" -command sendTest - - pack .panel.b.quit .panel.b.next .panel.b.concat .panel.b.send \ - -side top -fill x - pack .panel.b.eul .panel.b.efunc .panel.b.test .panel.b.bfunc \ - .panel.b.bul \ - -side bottom -fill x - - frame .panel.t - text .panel.t.text -relief raised -width 65 -bd 2 \ - -yscrollcommand ".panel.t.scroll set" - scrollbar .panel.t.scroll -relief sunken -command ".panel.t.text yview" - pack .panel.t.text .panel.t.scroll -side left -fill both - - pack .panel.t .panel.b -side left -fill both - - } else { - destroy .panel - set hasTestPanel 0 - } - displayTest -} - -proc displayTest {} { - global hasTestPanel - global withBeginEnd - if {! $hasTestPanel} return - global testRoot theUL theFunction theTest - global beginFunction endFunction beginUL endUL - if { ! $withBeginEnd} { - loadFile $testRoot/$theUL/$theFunction/$theTest .panel.t.text - } else { - global testRoot resultRoot theExec theLog theDraw - global theUL theFunction theTest - set f /tmp/theTest[pid] - set ff [open $f w] - puts $ff "set testroot $testRoot" - puts $ff "set testinfos(resultRoot) $resultRoot" - puts $ff "set testinfos(theUL) $theUL" - puts $ff "set testinfos(theFunction) $theFunction" - puts $ff "set testinfos(theTest) $theTest" - close $ff - catch {exec cat -s \ - $testRoot/$theUL/begin \ - $testRoot/$theUL/$theFunction/begin \ - $testRoot/$theUL/$theFunction/$theTest \ - $testRoot/$theUL/$theFunction/end \ - $testRoot/$theUL/end >> $f} - loadFile $f .panel.t.text - } - set beginFunction "$theFunction begin" - set endFunction "$theFunction end" - set beginUL "$theUL begin" - set endUL "$theUL end" - wm title .panel "$theUL $theFunction $theTest" -} - -trace variable theTest w theTestProcW -proc theTestProcW {name element op} { - displayTest -} - -#################################################### -# presentation generale -#################################################### - -pack .top .current .status .log -side top -fill x - -init diff --git a/src/DrawResources/DIFF.c b/src/DrawResources/DIFF.c deleted file mode 100755 index 22efa21910..0000000000 --- a/src/DrawResources/DIFF.c +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (c) 1998-1999 Matra Datavision - Copyright (c) 1999-2012 OPEN CASCADE SAS - - The content of this file is subject to the Open CASCADE Technology Public - License Version 6.5 (the "License"). You may not use the content of this file - except in compliance with the License. Please obtain a copy of the License - at http://www.opencascade.org and read it completely before using this file. - - The Initial Developer of the Original Code is Open CASCADE S.A.S., having its - main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. - - The Original Code and all software distributed under the License is - distributed on an "AS IS" basis, without warranty of any kind, and the - Initial Developer hereby disclaims all such warranties, including without - limitation, any warranties of merchantability, fitness for a particular - purpose or non-infringement. Please see the License for the specific terms - and conditions governing the rights and limitations under the License. - -*/ - - - - -#include - -int main(int argc, char **argv) { - if(argc!=3) { - fprintf(stderr,"\n DIFF File1 File2 \n"); - return(-1); - } - FILE *fp1 = fopen(argv[1],"r"); - if(fp1 == NULL) { - fprintf(stderr,"\n Unable to open file1:%s \n",argv[1]); - return(-2); - } - FILE *fp2 = fopen(argv[2],"r"); - if(fp2 == NULL) { - fprintf(stderr,"\n Unable to open file2:%s \n",argv[2]); - return(-3); - } - - int ok1 = fseek(fp1,0L,SEEK_END); - long size1 = ftell(fp1); - - - int ok2 = fseek(fp2,0L,SEEK_END); - long size2 = ftell(fp2); - - //-- printf("\n size: %s:%ld %s:%ld\n",argv[1],size1,argv[2],size2); - - if(size2>size1) { - fseek(fp2,size1,SEEK_SET); - while(!feof(fp2)) { - int c=fgetc(fp2); - if(c!=-1) { - fputc(c,stdout); - } - } - } - - return(0); -} - diff --git a/src/DrawResources/DrawDefault b/src/DrawResources/DrawDefault index 9e746435ff..17fe7485f6 100755 --- a/src/DrawResources/DrawDefault +++ b/src/DrawResources/DrawDefault @@ -71,15 +71,6 @@ if { [file readable $draw_appli_init_file] } { } } -# Temporary: load specific QA commands and handlers -if {[array get env QA_DUMP] != "" && $env(QA_DUMP) == "1"} { - set env(CSF_DrawPluginQADefaults) $env(CASROOT)/src/DrawResources/. - catch {pload FULL} - catch {pload -DrawPluginProducts OMF CANONICALRECOGNITION EMESH PARASOLID DXF SAT } - catch {pload QAcommands} - catch {source $env(CSF_DrawPluginQADefaults)/QARebuildCommands} -} - # on Windows, set special handler to update automatically environment variables # in C subsystem when Tcl environment changes (see Mantis issue #23197) if { $tcl_platform(platform) == "windows" && ! [catch {dgetenv PATH} res] } { diff --git a/src/DrawResources/FILES b/src/DrawResources/FILES index 5ffdb2f4aa..30e4a30678 100755 --- a/src/DrawResources/FILES +++ b/src/DrawResources/FILES @@ -1,6 +1,3 @@ -srcinc:::BuildWorkbench.tcl -srcinc:::Tests.tcl -srcinc:::Consultation.tcl srcinc:::CURVES.tcl srcinc:::Documentation.tcl srcinc:::DrawTK.tcl @@ -9,25 +6,16 @@ srcinc:::InitEnvironment.tcl srcinc:::PROFIL.tcl srcinc:::StandardCommands.tcl srcinc:::StandardViews.tcl -srcinc:::SCAN.tcl srcinc:::SURFACES.tcl -srcinc:::Grille.tcl srcinc:::Move.tcl srcinc:::idoc srcinc:::mkdoc srcinc:::tdoc -srcinc:::test2xl -srcinc:::mdltest -srcinc:::vmdltest srcinc:::DRAW.doc srcinc:::DRAW.info srcinc:::DrawDefault -srcinc:::TestDraw.cxx -srcinc:::Filtre.c -srcinc:::DIFF.c srcinc:::lamp.ico srcinc:::DrawPlugin srcinc:::TKTopTest.tcl srcinc:::dftree.tcl -srcinc:::QARebuildCommands srcinc:::TestCommands.tcl diff --git a/src/DrawResources/Filtre.c b/src/DrawResources/Filtre.c deleted file mode 100755 index 7796b69e22..0000000000 --- a/src/DrawResources/Filtre.c +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (c) 1998-1999 Matra Datavision - Copyright (c) 1999-2012 OPEN CASCADE SAS - - The content of this file is subject to the Open CASCADE Technology Public - License Version 6.5 (the "License"). You may not use the content of this file - except in compliance with the License. Please obtain a copy of the License - at http://www.opencascade.org and read it completely before using this file. - - The Initial Developer of the Original Code is Open CASCADE S.A.S., having its - main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. - - The Original Code and all software distributed under the License is - distributed on an "AS IS" basis, without warranty of any kind, and the - Initial Developer hereby disclaims all such warranties, including without - limitation, any warranties of merchantability, fitness for a particular - purpose or non-infringement. Please see the License for the specific terms - and conditions governing the rights and limitations under the License. - -*/ - -#include -#include - - - -int main(int argc,char **argv) { - char t[10000]; - do { - if(fgets(t,10000,stdin)) { - if (t[0] == 'D' && t[1] == 'r' && t[2] == 'a' && t[3] == 'w' && - t[4] == '[' && t[5] == '1' && t[6] == ']') - fputs(t+9,stdout); - else - fputs(t,stdout); - } - } - while(!feof(stdin)); - - return(1); -} diff --git a/src/DrawResources/Grille.tcl b/src/DrawResources/Grille.tcl deleted file mode 100755 index 96778fd463..0000000000 --- a/src/DrawResources/Grille.tcl +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (c) 1999-2012 OPEN CASCADE SAS -# -# The content of this file is subject to the Open CASCADE Technology Public -# License Version 6.5 (the "License"). You may not use the content of this file -# except in compliance with the License. Please obtain a copy of the License -# at http://www.opencascade.org and read it completely before using this file. -# -# The Initial Developer of the Original Code is Open CASCADE S.A.S., having its -# main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France. -# -# The Original Code and all software distributed under the License is -# distributed on an "AS IS" basis, without warranty of any kind, and the -# Initial Developer hereby disclaims all such warranties, including without -# limitation, any warranties of merchantability, fitness for a particular -# purpose or non-infringement. Please see the License for the specific terms -# and conditions governing the rights and limitations under the License. - -# -# this prints the image of the BOOLEAN GRIDS -# -proc print_test { test_letter grille_number } { - append test_file $test_letter 2 ; - append image_directory "/home/wb/mdl/gti/work/GRILLE/" $grille_number - set grille_directory "/adv_20/BAG/test/GRILLES-BOOLEAN/" - append grille_directory $grille_number - append grille_name $grille_number - cd $grille_directory - uplevel #0 source $test_file ; - clear ; - smallview AXON - uplevel #0 display b1 b2 - uplevel #0 fit; - uplevel #0 clear - uplevel #0 vprops b1 x y z - uplevel #0 vprops b2 u v w - dtext -0.1 -0.1 -0.2 $test_letter ; - dtext -0.1 -0.1 -0.5 $grille_name - dtext u v w solid2 - dtext x y z solid1 - uplevel #0 compound b1 b2 c - uplevel #0 display c - uplevel #0 hlr rgn c - uplevel #0 hlr hid c - - if { [ file isdirectory $image_directory ] == 0 } { - uplevel #0 mkdir $image_directory - } - cd $image_directory - hcolor 5 16 0 - hcolor 12 11 0 - hardcopy $test_letter.ps -} - -proc print_grille { number } { - foreach letter { A B C D E F G H I J K L M N O P Q R S T U V W X } { - puts " *** test : $letter *** " - print_test $letter $number - } -} diff --git a/src/DrawResources/QARebuildCommands b/src/DrawResources/QARebuildCommands deleted file mode 100644 index 423d737b8e..0000000000 --- a/src/DrawResources/QARebuildCommands +++ /dev/null @@ -1,5 +0,0 @@ -foreach h [array names Draw_Groups] { - foreach f $Draw_Groups($h) { - QARebuild $f - } -} diff --git a/src/DrawResources/TestCommands.tcl b/src/DrawResources/TestCommands.tcl index b6d4f07aa9..325ae5b7cf 100644 --- a/src/DrawResources/TestCommands.tcl +++ b/src/DrawResources/TestCommands.tcl @@ -65,7 +65,7 @@ help testgrid { Use: testgrid [group [grid]] [options...] Allowed options are: -parallel N: run N parallel processes (default is number of CPUs, 0 to disable) - -refresh N: save summary logs every N seconds (default 60, minimal 1, 0 to disable) + -refresh N: save summary logs every N seconds (default 600, minimal 1, 0 to disable) -outdir dirname: set log directory (should be empty or non-existing) -overwrite: force writing logs in existing non-empty directory -xml filename: write XML report for Jenkins (in JUnit-like format) @@ -295,13 +295,15 @@ proc testgrid {args} { ###################################################### # log command arguments and environment - set log "Command: testgrid $args\nHost: [info hostname]\nStarted on: [clock format [clock seconds] -format {%Y-%m-%d %H:%M:%S}]\n" - catch {set log "$log\nDRAW build:\n[dversion]\n" } - set log "$log\nEnvironment:\n" + lappend log "Command: testgrid $args" + lappend log "Host: [info hostname]" + lappend log "Started on: [clock format [clock seconds] -format {%Y-%m-%d %H:%M:%S}]" + catch {lappend log "DRAW build:\n[dversion]" } + lappend log "Environment:" foreach envar [lsort [array names env]] { - set log "$log$envar=\"$env($envar)\"\n" + lappend log "$envar=\"$env($envar)\"" } - set log "$log\n" + lappend log "" set refresh_timer [clock seconds] uplevel dchrono _timer reset @@ -318,6 +320,11 @@ proc testgrid {args} { # of starting / processing jobs by running threads catch {tpool::suspend $worker} if { $_tests_verbose > 0 } { _log_and_puts log "Executing tests in (up to) $parallel threads" } + # limit number of jobs in the queue by reasonable value + # to prevent slowdown due to unnecessary queue processing + set nbpooled 0 + set nbpooled_max [expr 10 * $parallel] + set nbpooled_ok [expr 5 * $parallel] } } @@ -325,7 +332,7 @@ proc testgrid {args} { set userbreak 0 foreach test_def $tests_list { # check for user break - if { "[info commands dbreak]" == "dbreak" && [catch dbreak] } { + if { $userbreak || "[info commands dbreak]" == "dbreak" && [catch dbreak] } { set userbreak 1 break } @@ -378,6 +385,10 @@ proc testgrid {args} { # parallel execution set job [tpool::post -nowait $worker "catch \"$command\" output; return \$output"] set job_def($job) [list $logdir $dir $group $grid $casename] + incr nbpooled + if { $nbpooled > $nbpooled_max } { + _testgrid_process_jobs $worker $nbpooled_ok + } } else { # sequential execution catch {eval $command} output @@ -394,26 +405,12 @@ proc testgrid {args} { # get results of started threads if { $parallel > 0 } { - catch {tpool::resume $worker} - while { ! $userbreak && [llength [array names job_def]] > 0 } { - foreach job [tpool::wait $worker [array names job_def]] { - eval _log_test_case \[tpool::get $worker $job\] $job_def($job) log - unset job_def($job) - } - - # check for user break - if { "[info commands dbreak]" == "dbreak" && [catch dbreak] } { - set userbreak 1 - } - - # update summary log with requested period - if { $logdir != "" && $refresh > 0 && [clock seconds] > $refresh_timer + $refresh } { - _log_summarize $logdir $log - set refresh_timer [clock seconds] - } - } + _testgrid_process_jobs $worker # release thread pool - tpool::cancel $worker [array names job_def] + if { $nbpooled > 0 } { + tpool::cancel $worker [array names job_def] + } + catch {tpool::resume $worker} tpool::release $worker } @@ -421,7 +418,7 @@ proc testgrid {args} { set time [lindex [split [uplevel dchrono _timer show] "\n"] 0] if { $userbreak } { - puts "*********** Stopped by user break ***********" + _log_and_puts log "*********** Stopped by user break ***********" set time "${time} \nNote: the process is not finished, stopped by user break!" } @@ -460,7 +457,7 @@ proc testsummarize {dir} { } # get summary statements from all test cases in one log - set log "" + set log {} # to avoid huge listing of logs, first find all subdirectories and iterate # by them, parsing log files in each subdirectory independently @@ -474,7 +471,7 @@ proc testsummarize {dir} { if { "[file join $grid $caselog]" != "[file join $grp $grd ${cas}.log]" } { puts "Error: $file contains status line for another test case ($line)" } - set log "$log$line\n" + lappend log $line incr nbfound } } @@ -572,7 +569,7 @@ proc testdiff {dir1 dir2 args} { # save result to log file if { "$logfile" != "" } { - _log_save $logfile $log + _log_save $logfile [join $log "\n"] _log_html_diff "[file rootname $logfile].html" $log $dir1 $dir2 puts "Log is saved to $logfile (and .html)" } @@ -969,8 +966,8 @@ proc _check_log {dir group gridname casename log {_summary {}} {_html_log {}}} { global env if { $_summary != "" } { upvar $_summary summary } if { $_html_log != "" } { upvar $_html_log html_log } - set summary "" - set html_log "" + set summary {} + set html_log {} if [catch { @@ -1008,7 +1005,7 @@ if [catch { if [regexp -nocase {^[ \t]*TODO ([^:]*):(.*)$} $line res platforms pattern] { if { ! [regexp -nocase {\mAll\M} $platforms] && ! [regexp -nocase "\\m$env(os_type)\\M" $platforms] } { - set html_log "$html_log\n$line" + lappend html_log $line continue ;# TODO statement is for another platform } @@ -1018,7 +1015,7 @@ if [catch { } lappend todos [regsub -all {\\b} [string trim $pattern] {\\y}] ;# convert regexp from Perl to Tcl style - set html_log "$html_log\n[_html_highlight BAD $line]" + lappend html_log [_html_highlight BAD $line] continue } @@ -1032,7 +1029,7 @@ if [catch { if { [regexp [lindex $todos $i] $line] } { set is_known 1 incr todo_count($i) - set html_log "$html_log\n[_html_highlight BAD $line]" + lappend html_log [_html_highlight BAD $line] break } } @@ -1040,7 +1037,7 @@ if [catch { # if it is not in todo, define status if { ! $is_known } { set stat [lindex $bw 0 0] - set html_log "$html_log\n[_html_highlight $stat $line]" + lappend html_log [_html_highlight $stat $line] if { $status == "" && $stat != "OK" && ! [regexp -nocase {^IGNOR} $stat] } { set status [lindex $bw 0] } @@ -1050,7 +1047,7 @@ if [catch { } } if { ! $ismarked } { - set html_log "$html_log\n$line" + lappend html_log $line } } @@ -1093,18 +1090,15 @@ if [catch { # put final message _log_and_puts summary "CASE $group $gridname $casename: $status" - set html_log "[_html_highlight [lindex $status 0] $summary]\n$html_log" + set summary [join $summary "\n"] + set html_log "[_html_highlight [lindex $status 0] $summary]\n[join $html_log \n]" } # Auxiliary procedure putting message to both cout and log variable (list) proc _log_and_puts {logvar message} { if { $logvar != "" } { upvar $logvar log - if [info exists log] { - set log "$log$message\n" - } else { - set log "$message\n" - } + lappend log $message } puts $message } @@ -1115,7 +1109,7 @@ proc _log_test_case {output logdir dir group grid casename logvar} { # check result and make HTML log _check_log $dir $group $grid $casename $output summary html_log - set log "$log$summary" + lappend log $summary # save log to file if { $logdir != "" } { @@ -1223,8 +1217,8 @@ proc _html_highlight {status line} { proc _log_html_summary {logdir log totals regressions improvements total_time} { global _test_case_regexp - # create missing directories as needed - catch {file mkdir $logdir} + # create missing directories as needed + file mkdir $logdir # try to open a file and start HTML if [catch {set fd [open $logdir/summary.html w]} res] { @@ -1289,13 +1283,15 @@ proc _log_html_summary {logdir log totals regressions improvements total_time} { puts $fd "" } - # put detailed log - puts $fd "

Details

" + # put detailed log with TOC + puts $fd "

Details

" + puts $fd "
" # process log line-by-line set group {} set letter {} - foreach line [lsort -dictionary [split $log "\n"]] { + set body {} + foreach line [lsort -dictionary $log] { # check that the line is case report in the form "CASE group grid name: result (explanation)" if { ! [regexp $_test_case_regexp $line res grp grd casename result message] } { continue @@ -1303,44 +1299,47 @@ proc _log_html_summary {logdir log totals regressions improvements total_time} { # start new group if { $grp != $group } { - if { $letter != "" } { puts $fd "" } + if { $letter != "" } { lappend body "" } set letter {} set group $grp set grid {} - puts $fd "

Group $group

" + puts $fd "$group
" + lappend body "

Group $group

" } # start new grid if { $grd != $grid } { - if { $letter != "" } { puts $fd "" } + if { $letter != "" } { lappend body "" } set letter {} set grid $grd - puts $fd "

Grid $grid

" + puts $fd "    $grid
" + lappend body "

Grid $group $grid

" } # check if test case name is ; # if not, set alnum to period "." to recognize non-standard test name - if { ! [regexp {([A-Za-z]+)([0-9]+)} $casename res alnum number] } { - set alnum . + if { ! [regexp {\A([A-Za-z]{1,2})([0-9]{1,2})\Z} $casename res alnum number] && + ! [regexp {\A([A-Za-z0-9]+)_([0-9]+)\Z} $casename res alnum number] } { + set alnum $casename } # start new row when letter changes or for non-standard names if { $alnum != $letter || $alnum == "." } { if { $letter != "" } { - puts $fd "" + lappend body "" } else { - puts $fd "" + lappend body "
" } set letter $alnum } - puts $fd "" + lappend body "" } - puts $fd "
$casename$casename
" + puts $fd "
\n[join $body "\n"]" # add remaining lines of log as plain text puts $fd "

Plain text messages

\n
"
-    foreach line [split $log "\n"] {
+    foreach line $log {
 	if { ! [regexp $_test_case_regexp $line] } {
 	    puts $fd "$line"
 	}
@@ -1358,7 +1357,7 @@ proc _log_summarize {logdir log {total_time {}}} {
 
     # sort log records alphabetically to have the same behavior on Linux and Windows 
     # (also needed if tests are run in parallel)
-    set loglist [lsort -dictionary [split $log "\n"]]
+    set loglist [lsort -dictionary $log]
 
     # classify test cases by status
     foreach line $loglist {
@@ -1400,7 +1399,7 @@ proc _log_summarize {logdir log {total_time {}}} {
     # save log to files
     if { $logdir != "" } {
 	_log_html_summary $logdir $log $totals $regressions $improvements $total_time
-	_log_save $logdir/tests.log $log "Tests summary"
+	_log_save $logdir/tests.log [join $log "\n"] "Tests summary"
     }
 
     return
@@ -1432,7 +1431,7 @@ proc _log_xml_summary {logdir filename log include_cout} {
 
     # sort log and process it line-by-line
     set group {}
-    foreach line [lsort -dictionary [split $log "\n"]] {
+    foreach line [lsort -dictionary $log] {
 	# check that the line is case report in the form "CASE group grid name: result (explanation)"
 	if { ! [regexp $_test_case_regexp $line res grp grd casename result message] } {
 	    continue
@@ -1747,7 +1746,7 @@ proc _log_html_diff {file log dir1 dir2} {
     # "Executing ..."
     puts $fd "
"
     set logpath [file split [file normalize $file]]
-    foreach line [split $log "\n"] {
+    foreach line $log {
         puts $fd $line
 
         if { [regexp {IMAGE[ \t]+([^:]+):[ \t]+([A-Za-z0-9_.-]+)} $line res case img] } {
@@ -1948,3 +1947,38 @@ proc _get_temp_dir {} {
     file mkdir $fallback
     return $fallback
 }
+
+# extract of code from testgrid command used to process jobs running in 
+# parallel until number of jobs in the queue becomes equal or less than 
+# specified value
+proc _testgrid_process_jobs {worker {nb_ok 0}} {
+    # bind local vars to variables of the caller procedure
+    upvar log log
+    upvar logdir logdir
+    upvar job_def job_def
+    upvar nbpooled nbpooled
+    upvar userbreak userbreak
+    upvar refresh refresh
+    upvar refresh_timer refresh_timer
+
+    catch {tpool::resume $worker}
+    while { ! $userbreak && $nbpooled > $nb_ok } {
+        foreach job [tpool::wait $worker [array names job_def]] {
+            eval _log_test_case \[tpool::get $worker $job\] $job_def($job) log
+            unset job_def($job)
+            incr nbpooled -1
+        }
+
+        # check for user break
+        if { "[info commands dbreak]" == "dbreak" && [catch dbreak] } {
+            set userbreak 1
+        }
+
+        # update summary log with requested period
+        if { $logdir != "" && $refresh > 0 && [clock seconds] > $refresh_timer + $refresh } {
+    	    _log_summarize $logdir $log
+    	    set refresh_timer [clock seconds]
+        }
+    }
+    catch {tpool::suspend $worker}
+}
diff --git a/src/DrawResources/TestDraw.cxx b/src/DrawResources/TestDraw.cxx
deleted file mode 100755
index ce0964c2d8..0000000000
--- a/src/DrawResources/TestDraw.cxx
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright (c) 1998-1999 Matra Datavision
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-
-
-// model of main program Draw
-
-#include 
-#include 
-
-// main passes main to Draw
-
-main(int argc, char** argv)
-{
-  Draw_Appli(argc,argv);
-}
-
-//*******************************
-//
-// Remove unused includes
-// to avoid overloading the link
-//
-//********************************
-
-#include 
-
-// only is one makes the topology
-#include 
-
-// for the commands using topology
-#include 
-
-
-// example of user command
-
-static Standard_Integer macommande (Draw_Interpretor& di,
-				    Standard_Integer n, char** a)
-{
-  if (n < 2) return 1;   // error if not enough arguments
-
-  TopoDS_Shape S = DBRep::Get(a[1]);
-  if (S.IsNull()) {
-    cout << a[1] << " is not a shape" << endl;
-    return 1;
-  }
-
-  // .... do what you like with S .....
-
-  //... to return a chain to TCL, place it in di
-
-  di << a[1];
-
-  return 0;
-}
-
-
-// definition of commands
-
-void Draw_InitAppli(Draw_Interpretor& theCommands)
-{
-  Draw::Commands(theCommands);
-
-  // geometry
-  GeometryTest::AllCommands(theCommands);   // see GeometryTest.cdl for details
-
-  // for the topology
-  BRepTest::AllCommands(theCommands);       // see BRepTest.cdl for details
-
-
-  // user commands
-
-  theCommands.Add("macommande","macommande and its help",macommande);
-}
diff --git a/src/DrawResources/Tests.tcl b/src/DrawResources/Tests.tcl
deleted file mode 100755
index 4690f6cbc1..0000000000
--- a/src/DrawResources/Tests.tcl
+++ /dev/null
@@ -1,835 +0,0 @@
-# Copyright (c) 1999-2012 OPEN CASCADE SAS
-#
-# The content of this file is subject to the Open CASCADE Technology Public
-# License Version 6.5 (the "License"). You may not use the content of this file
-# except in compliance with the License. Please obtain a copy of the License
-# at http://www.opencascade.org and read it completely before using this file.
-#
-# The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-# main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-#
-# The Original Code and all software distributed under the License is
-# distributed on an "AS IS" basis, without warranty of any kind, and the
-# Initial Developer hereby disclaims all such warranties, including without
-# limitation, any warranties of merchantability, fitness for a particular
-# purpose or non-infringement. Please see the License for the specific terms
-# and conditions governing the rights and limitations under the License.
-
-#
-# tclsh tools to browse tests
-#
-# xab : 22-Mar-96  rajout de floatDifference pour eviter des diffs
-#                  en fonction de la tolerance DiffTestTolerance
-# pmn : 25-Sept-96 masterRoot sans reference explicite a gti 
-#                 (pour une utilisation Aixoise)
-# xab : 12-Nov-996 nouveau trap dans les comptes rendus
-#                  INV par checkshape ou checktopshape
-# xab : 22/11/96  : on a encore besoin des 3 variables d'environement
-#                   WBCONTAINER
-#                   WBROOT
-#                   STATION
-# xab : 10-Mar-97 : string compare au lieu de != dans les diffs
-#
-####################################################
-# Error list
-####################################################
-
-set nomatch "ZXWYWXZ"
-set theErrors {
-    { nomatch                   "NOLOGFILE" "no result for the test"}
-    { nomatch                   "OK       " "no error and no difference"}
-    { nomatch                   "NO       " "no error and no master file to compare"}
-    { nomatch                   "NOEND    " "abnormal termination"}
-    { "An exception was caught" "CATCH    " "an exception was caught"}
-    { "segv"                    "SEGV     " "segmentation violation"}
-    { "ERROR"                   "ERROR    " "user generated error"}
-    { "NYI"                     "NYI      " "This test is not yet implemented"}
-    { "Cpu Limit Exceeded"      "CPULIM   " "CPU limit exceeded"}
-    { "BRepCheck_"              "INV      " "invalid result"}    
-}
-
-####################################################
-# Variables
-####################################################
-set DiffTestTolerance 1.0e-6
-
-set theStation $env(STATION)
-
-if {$theStation=="wnt"} {
-    set ExeMachinePath  drv\\DFLT\\$env(STATION)
-    set exePath         $env(WBROOT)\\prod
-#    set testRoot        $env(WBCONTAINER)\\test
-    set testRoot        $env(WBCONTAINER)
-    set resultRoot      $env(WBROOT)\\work\\result$env(STATION)
-    set masterRoot      $env(WBROOT)\\work\\master
-} else {
-    set ExeMachinePath  drv/DFLT/$env(STATION)
-    set ExePath         $env(WBROOT)/$env(STATION)/bin
-    set testRoot        $env(WBCONTAINER)
-    set resultRoot      $env(WBROOT)/work/result$env(STATION)
-    set masterRoot      $env(WBROOT)/work/master
-}
-puts "$testRoot  et        $env(WBCONTAINER) "
-#
-## customize default values, if "setenv" has been set by AQ Team  -plb/13feb97-
-
-foreach el1 [array names env] {
-    if       { [ string compare $el1 "DRAW_TEST_ROOT" ] == 0 }   {
-	set testRoot   $env($el1)
-    } elseif { [ string compare $el1 "DRAW_TEST_RESULT" ] == 0 } {
-	set resultRoot $env($el1)
-    } elseif { [ string compare $el1 "DRAW_TEST_MASTER" ] == 0 } {
-	set masterRoot $env($el1)
-    }
-}
-
-
-set theUL       ""
-set theFunction ""
-set theTest     ""
-set theExec     ""
-set themode     ""
-
-# name of Draw process to send
-set theDraw     "Draw"
-set FILTRE      ""
-set DIFF        ""
-set RESULT      ""
-set PREVIOUS    ""
-set TEMP        ""
-
-set listUL       {}
-set listFunction {}
-set listTest     {}
-
-set theLog            ""
-set theMasterLog      ""
-set theXWDFiles       {}
-set theMasterXWDFiles {}
-
-set theStatusHeader "Result    LOG  XWD"
-set theStatus       ""
-set theStatusLine   ""
-set theErrorLines   {}
-set theDiffs        {}
-
-
-####################################################
-# List from a directory
-####################################################
-
-# match what is not a test
-set testRegExp \
-	"^(Applet_GridTest|modeles|scripts|data|bin|help|begin.*|begin_wnt|end.*|grid|executables|readme|image|save|read.me|photo.*|.*~|#.*#)$"
-
-proc mkListTests root {
-    global testRegExp  Wok theStation env
-    set l {}
-
-    if {$theStation=="wnt"} {
-	foreach f [exec $env(WOKHOME)\\lib\\wnt\\ls.exe  $root] {
-	    set f [file tail $f]
-	    if [regexp $testRegExp $f] continue
-		lappend l $f
-	}
-    } else {
-        foreach f [glob -nocomplain $root/*] {
-	    set f [file tail $f]
-	    if [regexp $testRegExp $f] continue
-	    lappend l $f
-	}
-    }
-    return [lsort $l]
-}
-
-####################################################
-# Junky Heuristic to compare numbers in tests 
-####################################################
-
-proc floatDifference { line1 line2 } {
-    global DiffTestTolerance 
-    set has_number 0
-    for { set ii 1 } { $ii <= 3 } { incr ii } {
-	for { set jj 1 } { $jj <= 3 } { incr jj } {
-	    set number($ii,$jj) 0.0e0 
-	}
-    }
-    if { [regexp { ([0-9]+\.[0-9]+e-([0-9]+))|([0-9]+\.[0-9]*)} $line1  number(1,1) number(1,2) number(1,3) ] } {
-	if { [regexp { ([0-9]+\.[0-9]+e-([0-9]+))|([0-9]+\.[0-9]*)} $line2 number(2,1) number(2,2)  number(2,3) ] } {
-	    for { set ii 1 } { $ii <= 3 } { incr ii } {
-		if { $number(1,$ii) != "" && $number(2,$ii) != "" } {
-		    if { [ regexp {\.} $number(1,$ii) ] && [ regexp {\.} $number(2,$ii) ] } {
-			set has_number 1 
-			set diff [ expr $number(1,$ii) - $number(2,$ii) ]
-			set diff [ expr abs($diff) ] 
-			if { $diff > $DiffTestTolerance } {
-			    return 1
-			
-			}
-		    }
-		}
-	    }
-			
-	}
-    }
-
-#
-# scabreux mais donne de bon resultat
-#
-    if { $has_number } {
-	return 0
-    } else {
-	return 1 
-    }
-	    
-}
-
-####################################################
-# compute the current test status
-####################################################
-
-proc computeStatus {} {
-    global testRoot resultRoot masterRoot
-    global theUL theFunction theTest
-    global theLog theMasterLog theXWDFiles theMasterXWDFiles
-    global theErrors theStatus theStatusLine theErrorLines theDiffs
-    
-    set hasresult [file readable $theLog]
-    if {! $hasresult} {
-	set theStatus     "-"
-	set theStatusLine "NOLOGFILE"
-	set theErrorLines {}
-	set theDiffs      {}
-	return
-    }
-    set hasmaster [file readable $theMasterLog]
-
-    # analyse the log file and compare to the master
-    set curline    0
-    set error      ""
-    set errorlines {} 
-    set diffs      {}
-    set completed  0
-
-    set f [open $theLog]
-    if $hasmaster {set g [open $theMasterLog]}
-    set moremaster $hasmaster
-
-
-    while {[gets $f line] >= 0} {
-	incr curline
-	# difference with master
-	if {$moremaster} {
-	    if {[gets $g mline] >= 0} {
-		# compare the two lines
-		if { [ string compare $line $mline ] } {
-		    if { [ floatDifference  $mline $line  ] } {
-			lappend diffs $curline
-                    }
-		}
-	    } else {
-		# the master file is finished
-		set moremaster 0
-		lappend ldiff $curline
-	    }
-	}
-
-	# search for errors
-	foreach err $theErrors {
-	    if [regexp [lindex $err 0] $line] {
-		if {[llength $errorlines] == 0} {set error [lindex $err 1]}
-		lappend errorlines $curline
-	    }
-	}
-
-	# check for end of test
-	if [regexp "TEST COMPLETED" $line] {
-	    set completed 1
-	}
-    }
-
-    close $f
-    if $hasmaster {close $g}
-
-    set status "*"
-    set statusline $error
-    if {$error == ""} {
-	if {! $completed} {
-	    set statusline "NOEND    "
-	} else {
-	    set statusline "OK       "
-	    set status " "
-	}
-    }
-
-    if {$hasmaster} {
-	if [llength $diffs] {
-	    append statusline " DIFF"
-	    set status "*"
-	} else {
-	    append statusline " OK  "
-	}
-    } else {
-	    append statusline " NO  "
-    }
-    
-    # xwd files
-
-    if [llength $theXWDFiles] {
-	# here we should compare the XWD files
-	if [llength $theMasterXWDFiles] {
-	    append statusline " OK    "
-	} else {
-	    append statusline " NO    "
-	}
-    } else {
-	    append statusline " NOXWD "
-    }
-    
-    # set results
-    
-    set theStatus     $status
-    set theStatusLine $statusline
-    set theErrorLines $errorlines
-    set theDiffs      $diffs
-}
-
-####################################################
-# trace on variables to update the lists
-####################################################
-
-trace variable theUL w theULProc 
-proc theULProc {name element op} {
-    global theUL testRoot listFunction
-    global theStation
-
-    # Met a jour la liste des fonctions
-    if {$theUL == ""} {
-	set listFunction {}
-    } else {
-	set listFunction [mkListTests $testRoot/$theUL]
-    }
-}
-
-trace variable theFunction w theFunctionProc
-proc theFunctionProc {name element op} {
-    global testRoot theUL theFunction listTest
-    global theStation
-
-    # Met a jour la liste des tests
-    if {$theFunction == ""} {
-	set listTest {}
-    } else {
-	set listTest [mkListTests $testRoot/$theUL/$theFunction]
-    }
-}
-
-trace variable theTest w theTestProc
-proc theTestProc {name element op} {
-    global resultRoot masterRoot theUL theFunction theTest
-    global theLog theMasterLog theXWDFiles theMasterXWDFiles
-    global theStation
-
-    if {$theStation=="wnt"} {
-	
-	# update the result variables
-	set theLog       $resultRoot\\$theUL\\$theFunction\\$theTest.log
-	set theMasterLog $masterRoot\\$theUL\\$theFunction\\$theTest.log
- 
-	set theXWDFiles \
-		[glob -nocomplain \
-		$resultRoot\\$theUL\\$theFunction\\${theTest}.*.xwd.Z]
-	
-	set theMasterXWDFiles \
-		[glob -nocomplain \
-		$masterRoot\\$theUL\\$theFunction\\${theTest}.*.xwd.Z]
-    } else {
-	# update the result variables
-	set theLog       $resultRoot/$theUL/$theFunction/$theTest.log
-	set theMasterLog $masterRoot/$theUL/$theFunction/$theTest.log
- 
-	set theXWDFiles \
-		[glob -nocomplain \
-		$resultRoot/$theUL/$theFunction/${theTest}.*.xwd.Z]
-	
-	set theMasterXWDFiles \
-		[glob -nocomplain \
-		$masterRoot/$theUL/$theFunction/${theTest}.*.xwd.Z]
-    }	
-
-    # update the status
-    computeStatus
-}
-
-trace variable listUL w  listULProc
-proc listULProc {name element op} {
-    global listUL theUL
-    if [llength $listUL] {
-	set theUL [lindex $listUL 0]
-    } else {
-	set theUL ""
-    }
-}
-
-trace variable listFunction w  listFunctionProc
-proc listFunctionProc {name element op} {
-    global listFunction theFunction
-    if [llength $listFunction] {
-	set theFunction [lindex $listFunction 0]
-    } else {
-	set theFunction ""
-    }
-}
-
-trace variable listTest w  listTestProc
-proc listTestProc {name element op} {
-    global listTest theTest
-    if [llength $listTest] {
-	set theTest [lindex $listTest 0]
-    } else {
-	set theTest ""
-    }
-}
-
-####################################################
-# procedure to change test
-####################################################
-
-proc nextUL {} {
-    global listUL theUL
-    set l [llength $listUL]
-    if ($l) {
-	set i [lsearch $listUL $theUL]
-	incr i
-	if {$i < $l} {
-	    set theUL [lindex $listUL $i]
-	    return
-	}
-    }
-    set theUL ""
-}
-
-proc nextFunction {} {
-    global listFunction theFunction
-    set l [llength $listFunction]
-    if ($l) {
-	set i [lsearch $listFunction $theFunction]
-	incr i
-	if {$i < $l} {
-	    set theFunction [lindex $listFunction $i]
-	    return
-	}
-    }
-    nextUL
-}
-
-proc nextTest {} {
-    global listTest theTest
-    set l [llength $listTest]
-    if ($l) {
-	set i [lsearch $listTest $theTest]
-	incr i
-	if {$i < $l} {
-	    set theTest [lindex $listTest $i]
-	    return
-	}
-    }
-    nextFunction
-}
-
-proc nextWithResult {} {
-    global theUL theTest theStatus
-    while 1 { 
-	nextTest
-	if {$theUL == ""} break
-	if {$theTest == ""} continue
-	if {$theStatus == "-"} continue
-	break
-    }
-}
-
-proc nextWithError {} {
-    global theStatus theUL
-    while 1 {
-	nextWithResult
-	if {$theUL == ""} break
-	if {$theStatus == "*"} break
-    }
-}
-
-####################################################
-# run the current Test
-####################################################
-
-proc runTest {} {
-    global themode theDraw Drawid 
-    global RESULT PREVIOUS TEMP DIFF FILTRE
-    global testRoot resultRoot theExec theLog
-    global theUL theFunction theTest
-    global ExePath  ExeMachinePath
-    global theStation theTmp theDrawHome theTmp1
-    global cmdexec protect
-    global testRootNT env
-    
-    
-    puts "  theUL $theUL theFunction $theFunction test  $theTest "
-    puts "thest == $theStation"
-    
-    if {$theTest == ""} return
-    
-    set exe $theExec
-    
-    if {$exe == "" } {
-
-	if {$theStation=="wnt"} { 
-	    set exe "${ExePath}\\T${theUL}\\${ExeMachinePath}\\T${theUL}"
-	} else {
-	    set exe "${ExePath}/T${theUL}"
-	}
-    }
-    
-    if {![file exists $resultRoot]} {
-	if {$theStation=="wnt"} {
-	    set stat1 [catch {file mkdir $resultRoot} iscreated ]
-	    #	    [exec $cmdexec $resultRoot] 
-	} else {
-	    catch {exec mkdir $resultRoot}
-	    catch {exec chmod 777 $resultRoot}
-	}
-    }
-    
-    cd $resultRoot
-    
-    if {![file isdirectory $resultRoot/$theUL]} {
-	if { $theStation == "wnt" }  {
-	    set statpop [catch {file mkdir $resultRoot/$theUL} erreurfile ]
-	    if { $statpop != 0 } { puts "erreurfile == $erreurfile " }
-	    #	    [exec $cmdexec $protect $theUL]
-	} else {
-	    catch {exec mkdir $resultRoot/$theUL}
-	    catch {exec chmod 777 $resultRoot/$theUL}
-	}
-    }
-    
-    cd $resultRoot/$theUL
-    
-    if {![file isdirectory $resultRoot/$theUL/$theFunction]} {
-	if {$theStation=="wnt"} {
-            set stat1 [catch {file mkdir $resultRoot/$theUL/$theFunction} iscreated ]
-	    if {$stat1 != 0 } { puts "iscreated == $iscreated " }
-	    #		[exec $cmdexec $protect $theUL]
-	} else {
-	    catch {exec mkdir $resultRoot/$theUL/$theFunction}
-	    catch {exec chmod 777 $resultRoot/$theUL/$theFunction}
-	}
-    }
-    cd $resultRoot/$theUL/$theFunction
-    
-    # run the test
-    if {$theStation=="wnt"} {
-	catch {file delete $theLog}
-    } else {
-	catch {exec rm -f $theLog}
-    }
-    
-    foreach f [glob -nocomplain ${theTest}.*.xwd.Z] {catch {exec $cmdexec $del $f}}
-   
-
-    if {$theStation=="wnt"} {
-	set f  $resultRoot/$theUL/$theFunction/${theTest}[pid]
-	set f1 $resultRoot/$theUL/$theFunction/${theTest}[pid]
-    	set ff [open $f1 w]
-    } else {
-	set f /tmp/theTest[pid]
-	set ff [open $f w]
-    }
-    ## send current infos in "begin" script for customize by AQ Team  -plb/14feb97-
-    puts $ff "set testinfos(resultRoot)  $resultRoot"
-    puts $ff "set testinfos(theUL)       $theUL"
-    puts $ff "set testinfos(theFunction) $theFunction"
-    puts $ff "set testinfos(theTest)     $theTest"
-    if {$themode == "samedraw"} {
-	puts $ff "cd $resultRoot/$theUL/$theFunction"
-    }
-    
-    close $ff
-
-    puts "testRoot $testRoot"
-
-    cd $resultRoot/$theUL/$theFunction
-
-    if {$theStation=="wnt"} {
-	set fff  $resultRoot/$theUL/$theFunction/${theTest}[pid]-pop
-	set fpop [open $fff w]
-	for_file line $f1                                    { puts $fpop $line }
-	for_file line $testRoot/begin                        { puts $fpop $line }
-	if {[file exist  $testRoot/$theUL/begin_wnt  ] } { 
-	    for_file line $testRoot/$theUL/begin_wnt             { puts $fpop $line }
-	}
-	if {[file exist  $testRoot/$theUL/$theFunction/begin_wnt]} {
-	    for_file line $testRoot/$theUL/$theFunction/begin_wnt { puts $fpop $line }
-	} else {
-	    if {[file exist  $testRoot/$theUL/$theFunction/begin]} {
-		for_file line $testRoot/$theUL/$theFunction/begin { puts $fpop $line }
-	    }
-	}	
-	for_file line $testRoot/$theUL/$theFunction/$theTest { puts $fpop $line }
-	if { [ file exists $testRoot/$theUL/end ] } {
-	    for_file line $testRoot/$theUL/end                   { puts $fpop $line }
-	}
-	if { [ file exists $testRoot/end ] } {
-	    for_file line $testRoot/end                          { puts $fpop $line }
-	}
-	puts $fpop "exit"
-	if {[file exist $resultRoot/$theUL/$theFunction/${theTest}[pid] ] } {
-	    file delete $resultRoot/$theUL/$theFunction/${theTest}[pid]
-	}
-	close $fpop
-	file copy $fff $f1
-	file delet $fff
-    } else {
-	catch {exec cat -s \
-		   $testRoot/begin \
-		   $testRoot/$theUL/begin \
-		   $testRoot/$theUL/$theFunction/begin \
-		   $testRoot/$theUL/$theFunction/$theTest \
-		   $testRoot/$theUL/$theFunction/end \
-		   $testRoot/$theUL/end \
-		   $testRoot/end >> $f}
-	
-	set testroot $testRoot
-    }
-    if {$theStation=="wnt"} {
-	set f3 $resultRoot/$theUL/$theFunction/${theTest}.log
-	if { [file exists $f3] } { file delete $f3 } 
-	puts "l'executable == $exe"
-	puts "testRoot == $testRoot"
-	#puts "input  == $f1"
-	#puts "output == $f3"
-	catch { exec $exe -f $f1 -o $f3 } popstatus
-	puts $popstatus
-	
-    } else {
-	if {$themode != "samedraw" } {
-	    catch { exec $exe -f $f >& ${theTest}.log }
-	} else {
-	    # the draw est il toujours valide ?
-	    set myList [winfo interps]
-	    set DrawExists "0"
-	    for {set i 0} { $i < [expr [llength $myList]] } { incr i } {
-		set p [lindex $myList $i]
-		if {$p == $theDraw} {set DrawExists "1"}
-	    }
-	    if { $DrawExists == "0"} {
-		puts "Pas de Draw, on en lance un !!"
-	    }
-	    while { $DrawExists == "0"} {
-		set myList [winfo interps]
-		set mylen [llength $myList]
-		while { [catch { exec $theExec -l >& $RESULT & } message] } {
-		    puts $message
-		}
-		set Drawid $message
-		# On espere avoir lance un draw, on recupere son nom
-		# comme on peut. La methode utilisee est extremement
-		# plantatoire, il faudrait pouvoir trouver le numero
-		# du process !?!
-		set i 0
-		while { $myList == [winfo interps] && [expr $i] < 20 } {
-		    sleep 1
-		    puts "1s d attente"
-		    incr i
-		}
-		if {  [expr $i] < 20 } {
-		    sleep 2
-		    puts "2s d attente"
-		    set newList [winfo interps]
-		    set newlen [llength $newList]
-		    set theDraw ""
-		    puts $myList
-		    puts $newList
-		    for {set i 0} { $i < [expr $newlen] && !$DrawExists } { incr i } {
-			set DrawExists 1
-			set theDraw [lindex $newList $i]
-			for {set j 0} { $j < [expr $mylen]} {incr j} {
-			    set p [lindex $myList $j]
-			    if { $p == $theDraw} {
-				set DrawExists 0
-			    }
-			}
-		    }
-		}
-		if { $DrawExists } {
-		    puts "nouvelle appli : $theDraw"
-		} else {
-		    puts "echec creation nouveau Draw, on recommence"
-		    set theDraw ""
-		    if { [catch { exec kill -9 $Drawid } mes] } { 
-			puts $mes 
-		    } else {
-			puts "le process etait bien la, mais le Draw n est pas venu!?!"
-		    }
-		}
-	    }
-	    
-	    exec cp $RESULT $PREVIOUS
-	    
-	    if { [catch {send $theDraw "source $f"} mes]} {
-		puts $mes
-		puts "on tue le Draw"
-		set theDraw ""
-		if { [catch { exec kill -9 $Drawid } mes] } { puts $mes }
-	    }
-
-	    catch {exec $DIFF $PREVIOUS $RESULT > $TEMP}
-	    catch {exec cat $TEMP | $FILTRE >> ${theTest}.log}
-	}
-	
-    }
-    
-
-    if {$theStation=="wnt"} {
-	catch {file delete $f1} 
-    } else {
-        catch {exec rm -f $f}
-    }
-    
-    if { $theStation == "wnt" } {
-    	catch {exec $cmdexec attrib ${theTest}.log}
-    } else {
-	catch { exec chmod 666 ${theTest}.log }
-    }
-    
-    
-    # process photos    
-    foreach f [glob -nocomplain photo*] {
-	set g $theTest.[string range $f 5 end].xwd
-	puts "Processing $g"
-	if {$theStation=="wnt"} { 
-	    catch {exec $cmdexec $move $f $g}
-	} else {
-	    catch { exec mv -f $f $g }
-	}
-	catch {exec compress $g}
-	if {$theStation=="wnt"} { 
-	    catch { exec $cmdexec attrib $g.Z }
-	} else {
-	    catch { exec chmod 666 $g.Z }
-	}
-    }
-    
-    #enforce update
-    set theTest $theTest
-}
-
-####################################################
-# send the current test 
-# to the process $theDraw
-####################################################
-
-proc sendTest {} {
-    global testRoot resultRoot theExec theLog theDraw
-    global theUL theFunction theTest
-    global theStation
-    
-    if {$theTest == ""} return
-    
-    puts "Sending $theUL $theFunction $theTest to $theDraw"
-    if {$theStation=="wnt"} {
-	set f  $resultRoot\\\\$theUL\\\\$theFunction\\\\${theTest}[pid]
-	set f1 $resultRoot\\\\$theUL\\\\$theFunction\\\\${theTest}[pid]
-	set f2 $resultRoot\\\\$theUL\\\\$theFunction\\\\${theTest}.log
-    	set ff [open $f1 w]
-    	set gg [open $f2 w]
-	#set ff2 [open $f2 w]
-	puts $ff "set testroot $testRootNT"
-    } else {
-	set f /tmp/theTest[pid]
-	set ff [open $f w]
-	puts $ff "set testroot $testRoot"
-    }
-    
-## send current infos in "begin" script for customize by AQ Team  -plb/14feb97-
-    puts $ff "set testinfos(resultRoot)  $resultRoot"
-    puts $ff "set testinfos(theUL)       $theUL"
-    puts $ff "set testinfos(theFunction) $theFunction"
-    puts $ff "set testinfos(theTest)     $theTest"
-    close $ff
-
-    if {$theStation=="wnt"} {
-	set stat1 [catch {exec cmd /C copy /A \ $f1 + $testRoot\\begin + $testRoot\\$theUL\\begin_wnt + $testRoot\\$theUL\\$theFunction\\begin + $testRoot\\$theUL\\$theFunction\\$theTest + $testRoot\\$theUL\\$theFunction\\end + $testRoot\\$theUL\\end + $testRoot\\end + $f1} myerro]
-	send $theDraw "source $f1"
-    } else {
-	catch {exec cat -s \
-		   $testRoot/$theUL/begin \
-		   $testRoot/$theUL/$theFunction/begin \
-		   $testRoot/$theUL/$theFunction/$theTest \
-		   $testRoot/$theUL/$theFunction/end \
-		   $testRoot/$theUL/end  >> $f}
-	send $theDraw "source $f"
-    }
-}
-
-####################################################
-# clear result, copy master
-####################################################
-
-proc clearResult {} {
-    global theTest theLog theXWDFiles
-    catch {exec rm -f $theLog}
-    foreach f  $theXWDFiles {catch {exec rm -f $f}}
-
-    #enforce update
-    set theTest $theTest
-}
-
-proc copyMaster {} {
-
-    global theLog theXWDFiles
-    global theMasterLog theMasterXWDFiles
-    global masterRoot theUL theFunction theTest
-
-    catch {exec rm -f $theMasterLog}
-    foreach f $theMasterXWDFiles {catch {exec rm -f  $f}}
-
-    if {![file isdirectory $masterRoot/$theUL]} {
-	if {$theStation=="wnt"} {
-		cd $masterRoot
-		file mkdir $theUL
-		#catch {exec $cmdexec mkdir $masterRoot\\$theUL}
-		#catch {exec $cmdexec $protect $masterRoot\\$theUL}
-	} else {
-	    catch {exec mkdir $masterRoot/$theUL}
-	    catch {exec chmod 777 $masterRoot/$theUL}
-	}
-    }
-
-    if {![file isdirectory $masterRoot/$theUL/$theFunction]} {
-	if {$theStation=="wnt"} {
-		cd $theUL
-		file mkdir $theFunction
-		#catch {exec $cmdexec mkdir $masterRoot\\$theUL\\$theFunction}
-		#catch {exec $cmdexec $protect $masterRoot\\$theUL\\$theFunction}
-	} else {
-	    catch {exec mkdir $masterRoot/$theUL/$theFunction}
-	    catch {exec chmod 777 $masterRoot/$theUL/$theFunction}
-	}
-    }
-
-    if {$theStation=="wnt"} {set d $masterRoot\\$theUL\\$theFunction
-} else {set d $masterRoot/$theUL/$theFunction}
-    if [file readable $theLog] {catch {exec cp $theLog $d}}
-    foreach f $theXWDFiles {catch {exec cp $f $d}}
-
-    # enforce update
-    set theTest $theTest
-}
-
-####################################################
-# Make the initial list of UL
-####################################################
-
-proc init {} {
-    global listUL testRoot
-    set listUL [mkListTests $testRoot]
-}
diff --git a/src/DrawResources/mdltest b/src/DrawResources/mdltest
deleted file mode 100755
index 236bdefcb3..0000000000
--- a/src/DrawResources/mdltest
+++ /dev/null
@@ -1,236 +0,0 @@
-#!/bin/sh
-# The next line is executed by /bin/sh, but not Tcl \
-  exec tclsh $0 ${1+"$@"}
-
-
-
-#
-#  suite au passage a tk4.1 on a plus besoin des references
-#  a TCL-1-1
-#
-# batch test command
-##########################################################
-#
-#  initialisation de  env(STATION)  
-#                     env(WBCONTAINER)
-#                     env(WBROOT)      
-#
-
-#package require Tk
-
-puts $env(DRAWHOME)
-source $env(DRAWHOME)/InitEnvironment.tcl
-
-source $env(DRAWHOME)/Tests.tcl
-
-# xab : 22/11/96  : on a encore besoin des 3 variables d'environement
-#                   WBCONTAINER
-#                   WBROOT
-#                   STATION
-#   usage
-#
-proc help {} {
-    global resultRoot masterRoot testRoot
-    puts {mdltest -h -hc -c -l -x executable -t testdir -r resultdir -m masterdir UL function test}
-    puts ""
-    puts "Run & compare modeling team tests."
-    puts ""
-    puts "-hc help on comparisons"
-    puts "-l  only list the tests"
-    puts "-c  performs only the comparisons"
-    puts "-o  executable is run once for all tests"
-    puts ""
-    puts "-x executable : to run the test"
-    puts "   none        use the executable TUL for each UL"
-    puts "   -x compare  performs only the comparisons"
-    puts "   -x list     only list the tests"
-    puts ""
-    puts "-t testdir   : root of the test hierarchy"
-    puts "   default   : $testRoot"
-    puts ""
-    puts "-r resultdir : to store the results, or source for comparisons"
-    puts "   default   : $resultRoot"
-    puts "   must be a writable directory"
-    puts ""
-    puts "-m masterdir : reference results for comparisons"
-    puts "   default   : $masterRoot"
-    puts ""
-    puts "UL function test : performs this test"
-    puts "UL function      : performs all tests for this function"
-    puts "UL               : performs all tests for all functions of this UL"
-    puts "                 : performs all test"
-    puts ""
-    puts "UL function Test can be patterns (quote to protect from csh)"
-    puts "example : mdltest -l '*' '*curve*'"
-    puts ""
-    exit
-}
-proc helpcomp {} {
-    global theErrors
-    puts ""
-    puts "Result of comparisons"
-    puts "====================="
-    puts ""
-    puts "For each test a status line is displayed of the following format"
-    puts ""
-    puts "xUL Function Test     Result Log XWD"
-    puts ""
-    puts "x is a single caracter : "
-    puts "  ' ' : means no problem"
-    puts "  '-' : means no result fro the test"
-    puts "  '*' : means error detected or difference with the master"
-    puts ""
-    puts "Result is the status of the log file analysis : "
-    foreach err $theErrors {
-	puts "  [lindex $err 1] : means [lindex $err 2]"
-    }
-    puts ""
-    puts "Log is the result of the logfile comparisons"
-    puts "  OK    : means no differences"
-    puts "  NO    : means no master logfile to compare with"
-    puts "  DIFF  : means differences"
-    puts ""
-    puts "XWD is the result of the image comparisons"
-    puts "  OK    : means no differences"
-    puts "  NO    : means no master images to compare with"
-    puts "  DIFF  : means differences"
-
-
-    exit
-}
-
-# analyze arguments
-
-set more 1
-while {$more} {
-    set more 1
-    set shift 2
-    switch -exact a[lindex $argv 0] {
-	"a-x"     {set theExec    [lindex $argv 1]}
-	"a-t"     {set testRoot   [lindex $argv 1]}
-	"a-r"     {set resultRoot [lindex $argv 1]}
-	"a-m"     {set masterRoot [lindex $argv 1]}
-	"a-l"     {set theExec "list"; set shift 1;}
-	"a-c"     {set theExec "compare"; set shift 1;}
-	"a-o"     {set themode "samedraw"; set shift 1;}
-	"a-hc"    {helpcomp}
-	"a-h"     {help}
-	default   {set more 0}
-    }
-    if $more {set argv [lrange $argv $shift end]}
-}
-
-puts ""
-puts "Executable       : $theExec"
-puts "Test   Directory : $testRoot"
-puts "Result Directory : $resultRoot"
-puts "Master Directory : $masterRoot"
-
-if {![file isdirectory $resultRoot]} {
-    puts "$resultRoot is not a directory"
-    exit
-}
-
-set UL       "*"  
-set Function "*"
-set Test     "*"
-
-if {[llength $argv] >= 1} {set UL       [lindex $argv 0]}
-if {[llength $argv] >= 2} {set Function [lindex $argv 1]}
-if {[llength $argv] >= 3} {set Test     [lindex $argv 2]}
-
-puts ""
-puts "UL       : $UL"
-puts "Function : $Function"
-puts "Test     : $Test"
-
-init
-
-# used to compute length for formatting the result
-set l 0
-
-if { $themode == "samedraw" } {
-    set theDraw     ""
-    set FILTRE      "/tmp/FILTRE[pid]"
-    set DIFF        "/tmp/DIFF[pid]"
-    set RESULT      "/tmp/RESULT[pid]"
-    set PREVIOUS    "/tmp/PREVIOUS[pid]"
-    set TEMP        "/tmp/TEMP[pid]"
-    #on compile le Diff et le Filtre a Diff
-    if { [catch { eval "exec $env(MDLTEST_COMPIL) $env(DRAWHOME)/Filtre.c -c -o ${FILTRE}.o" } mes] } { puts $mes }
-    if { [catch { eval "exec $env(MDLTEST_COMPIL) ${FILTRE}.o -o $FILTRE" } mes] } { puts $mes }
-    if { [catch { eval "exec $env(MDLTEST_COMPIL) $env(DRAWHOME)/DIFF.c -c -o ${DIFF}.o" } mes] } { puts $mes }
-    if { [catch { eval "exec $env(MDLTEST_COMPIL) ${DIFF}.o -o $DIFF" } mes] } { puts $mes }
-}
-
-while {$theUL != ""} {
-    if {! [string match $UL $theUL] }            {nextUL; continue;}
-    if {! [string match $Function $theFunction]} {nextFunction; continue;}
-    if {[string match $Test $theTest]} {
-	if [file readable $testRoot/$theUL/$theFunction/$theTest] {
-	    if {$theExec == "list"} {
-		puts "$theUL $theFunction $theTest"
-	    } else {
-		if {$theExec != "compare"} runTest
-		set l2 [string length "$theUL $theFunction $theTest"]
-		if {$l2 > $l} {set l $l2}
-	    }
-	} else {
-	    puts "Test does not exist : $theUL $theFunction $theTest"
-	}
-    }
-    nextTest
-}
-
-# Pour les tests effectues dans 1 seul exe, on sort!!
-if { $themode == "samedraw" } { 
-    catch { send $theDraw "exit" } 
-}
-
-
-# do the comparisons
-
-
-if {$theExec    == "list"} exit
-if {$masterRoot == ""}     exit
-
-set count 1
-incr l 4
-
-init
-
-puts ""
-while {$theUL != ""} {
-    if {! [string match $UL $theUL] }            {nextUL; continue;}
-    if {! [string match $Function $theFunction]} {nextFunction; continue;}
-    if {[string match $Test $theTest]} {
-	if [file readable $testRoot/$theUL/$theFunction/$theTest] {
-	    if {$count == 1} {
-		set s "  UL Function Test"
-		puts -nonewline $s
-		for {set i [string length $s]} {$i <= $l} {incr i} {puts -nonewline " "}
-		puts $theStatusHeader
-	    }
-	    incr count
-	    set s "$theStatus $theUL $theFunction $theTest :"
-	    puts -nonewline $s
-	    for {set i [string length $s]} {$i <= $l} {incr i} {puts -nonewline " "}
-	    puts $theStatusLine
-	}
-    }
-    nextTest
-}
-
-# destruction de la petite fenetre merdique.
-catch { destroy . }
-
-#on vire le Diff et le Filtre a Diff
-if { $themode == "samedraw" } {
-    catch { unlink $FILTRE } 
-    catch { unlink ${FILTRE}.o } 
-    catch { unlink $DIFF } 
-    catch { unlink ${DIFF}.o } 
-    catch { unlink $RESULT } 
-    catch { unlink $PREVIOUS } 
-    catch { unlink $TEMP } 
-}
diff --git a/src/DrawResources/test2xl b/src/DrawResources/test2xl
deleted file mode 100755
index 79b8ee250e..0000000000
--- a/src/DrawResources/test2xl
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/sh
-# 
-# this script converts the result from mdltest to a MS EXCEL readable formated spreed sheet 
-#
-# The next line is executed by /bin/sh, but not Tcl \
-  exec tclsh $0 ${1+"$@"}
-
-if {$argc != 1} {
-    error "Usage: test2xl filename"
-}
-set sourfile [open [lindex $argv 0] r]
-set dir  $env(PWD)
-
-# set result [open toot r]
-set p "   "
-while {[ gets $sourfile line ] >= 0 } {
-  if [regexp {GRILLES-BOOLEAN ([a-zA-Z0-9]*) ([a-zA-Z][0-9]) : ([\ ]*) ([a-zA-Z]*)} $line dummy EDCnb AZnb dummy1 oko] {
-    if {$AZnb == "A1"} {
-#      close $result
-      set file $EDCnb 
-      append file ".txt"
-      set result [open $file w]
-      puts ":: $EDCnb"
-      puts $result ":: $EDCnb"
-      puts ": 1 commun : 2 fusion : 3 coupe 1 par 2 : 4 coupe 2 par 1 "
-      puts $result ": 1 commun : 2 fusion : 3 coupe 1 par 2 : 4 coupe 2 par 1 "
-    }
-    append p $oko
-    append p ":"
-    if {$oko != "OK"} {
-      set oko "KO"
-    } 
-    if {[string index $AZnb 1 ] == "1"} {
-      set OK $AZnb
-      append OK ":"
-      append OK $oko
-      append OK ":"
-    } elseif {[string index $AZnb 1 ] == "2"} {
-	append OK $oko
-	append OK ":"
-      } elseif {[string index $AZnb 1 ] == "3"} {
-	  append OK $oko
-	  append OK ":"
-	} elseif {[string index $AZnb 1 ] == "4"} {
-	    puts ""
-	    puts $p
-	    set p "   "
-	    append OK $oko
-	    puts $OK
-	    puts $result $OK
-	  } else {
-	     puts "error letter"
-	    }
-  }
-}
diff --git a/src/DrawResources/vmdltest b/src/DrawResources/vmdltest
deleted file mode 100755
index f3279ca0a7..0000000000
--- a/src/DrawResources/vmdltest
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-exec wishx -file $DRAWHOME/Consultation.tcl
diff --git a/src/QADraw/QADraw.cdl b/src/QADraw/QADraw.cdl
index e2a7dbe87d..76d2846319 100755
--- a/src/QADraw/QADraw.cdl
+++ b/src/QADraw/QADraw.cdl
@@ -19,15 +19,9 @@
 
 
 package QADraw
-    uses Draw,
-         TCollection
+    uses Draw
 is
     
-    class DataMapOfAsciiStringOfAddress instantiates 
-		    DataMap from TCollection(AsciiString from TCollection,
-					     Address from Standard,
-					     AsciiString from TCollection);
-
     CommonCommands(DI : in out Interpretor from Draw);
     ---Purpose: Define specicial commands for AIS.
 
diff --git a/src/QADraw/QADraw.cxx b/src/QADraw/QADraw.cxx
index 1b886191ca..2cd4a27ab1 100755
--- a/src/QADraw/QADraw.cxx
+++ b/src/QADraw/QADraw.cxx
@@ -18,7 +18,6 @@
 // and conditions governing the rights and limitations under the License.
 
 #include 
-#include 
 #include 
 #include 
 #include 
@@ -47,251 +46,8 @@
 
 #include 
 
-#if ! defined(STDOUT_FILENO)
-#define STDOUT_FILENO fileno(stdout)
-#endif
-
-// mkv 15.07.03
-#if ! defined(STDERR_FILENO)
-#define STDERR_FILENO fileno(stderr)
-#endif
-
-Draw_Interpretor *thePCommands = NULL;
-
-#if ! defined(WNT)
-//extern Draw_Interpretor theCommands;
-
-extern void (*Draw_BeforeCommand)();
-extern void (*Draw_AfterCommand)(Standard_Integer);
-#else
-//Standard_EXPORT Draw_Interpretor theCommands;
-
-Standard_EXPORT void (*Draw_BeforeCommand)();
-Standard_EXPORT void (*Draw_AfterCommand)(Standard_Integer);
-#endif
-
-
 #include 
 
-// avoid warnings on 'extern "C"' functions returning C++ classes
-#ifdef WNT
-#pragma warning(4:4190)
-#endif
-
-
-int st_err = 0;
-
-void (*Draw_BeforeCommand_old)();
-void (*Draw_AfterCommand_old)(Standard_Integer);
-
-static Standard_Boolean should_be_printed = Standard_True;
-
-static Standard_Boolean shouldDUP() {
-  // MKV 30.03.05
-#if ((TCL_MAJOR_VERSION > 8) || ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 4))) && !defined(USE_NON_CONST)
-  const Standard_Character * adup = Tcl_GetVar(thePCommands->Interp(),
-					 "QA_DUP",TCL_GLOBAL_ONLY);
-#else
-  Standard_Character * adup = Tcl_GetVar(thePCommands->Interp(),
-					 "QA_DUP",TCL_GLOBAL_ONLY);
-#endif
-  Standard_Integer aDUP=1;
-  if((adup != NULL) && (Draw::Atof(adup) == 0)) {
-    aDUP = 0;
-  }
-
-  return aDUP;
-}
-
-static void before() {
-  should_be_printed = Standard_True;
-  if(Draw_BeforeCommand_old) (*Draw_BeforeCommand_old) ();
-}
-
-static void  after(Standard_Integer a)
-{
-  if(Draw_AfterCommand_old) (*Draw_AfterCommand_old) (a);
-  if(!should_be_printed) {
-//    Tcl_ResetResult(theCommands.Interp());
-  }
-}
-
-static QADraw_DataMapOfAsciiStringOfAddress stFuncMap;
-
-  // MKV 30.03.05
-#if ((TCL_MAJOR_VERSION > 8) || ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 4))) && !defined(USE_NON_CONST)
-static Standard_Integer (*CommandCmd_Old)
-(ClientData clientData, Tcl_Interp *interp,
- Standard_Integer argc, const char* argv[]) = NULL;
-#else
-static Standard_Integer (*CommandCmd_Old)
-(ClientData clientData, Tcl_Interp *interp,
- Standard_Integer argc, char* argv[]) = NULL;
-#endif
-
-  // MKV 30.03.05
-#if ((TCL_MAJOR_VERSION > 8) || ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 4))) && !defined(USE_NON_CONST)
-static Standard_Integer CommandCmd
-(ClientData clientData, Tcl_Interp *interp,
- Standard_Integer argc, const char* argv[])
-#else
-static Standard_Integer CommandCmd
-(ClientData clientData, Tcl_Interp *interp,
- Standard_Integer argc, char* argv[])
-#endif
-{
-  Standard_Integer old_out = 0;
-  Standard_Integer old_err = 0;
-  Standard_Integer fd_out = 0;
-  Standard_Integer fd_err = 0;
-
-  FILE * aFile_out = NULL;
-  FILE * aFile_err = NULL;
-
-  char *nameo = NULL;
-  char *namee = NULL;
-#ifdef WNT
-  if(strlen(getenv("TEMP")) == 0) {
-    cerr << "The TEMP variable is not set." << endl;
-    aFile_out = tmpfile();
-    aFile_err = tmpfile();
-  } else {
-    nameo = _tempnam(getenv("TEMP"),"tmpo");
-    namee = _tempnam(getenv("TEMP"),"tmpe");
-    aFile_out=fopen(nameo, "w+");
-    aFile_err=fopen(namee, "w+");
-  }
-#else
-    aFile_out = tmpfile();
-    aFile_err = tmpfile();
-#endif
-  fd_out = fileno(aFile_out);
-  fd_err = fileno(aFile_err);
-  if(fd_out !=-1 && fd_err !=-1) {
-    old_err = dup(STDERR_FILENO);
-    old_out = dup(STDOUT_FILENO);
-    dup2(fd_err,STDERR_FILENO);
-    dup2(fd_out,STDOUT_FILENO);
-  } else
-    cout << "Faulty : Can not create temporary file."   << endl;
-
-  Standard_Integer clen = sizeof(Standard_Character);
-
-  Standard_Character * QA = getenv("QA_print_command");
-  if((QA != NULL) && (!strcmp(QA,"1"))) {
-    for(Standard_Integer i=0;i 8) || ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 4))) && !defined(USE_NON_CONST)
-  TCollection_AsciiString aName((char *) argv[0]);
-#else
-  TCollection_AsciiString aName(argv[0]);
-#endif
-
-  Standard_Integer res = 0;
-
-  if(stFuncMap.IsBound(aName)) {
-    // MKV 30.03.05
-#if ((TCL_MAJOR_VERSION > 8) || ((TCL_MAJOR_VERSION == 8) && (TCL_MINOR_VERSION >= 4))) && !defined(USE_NON_CONST)
-    CommandCmd_Old  = (int(*)(void*, Tcl_Interp*, int, const char**))  stFuncMap((char *) argv[0]);
-#else
-    CommandCmd_Old  = (int(*)(void*, Tcl_Interp*, int, char**))  stFuncMap(argv[0]);
-#endif
-    res = (*CommandCmd_Old) (clientData,interp,argc,argv);
-  }
-
-  fflush(stderr);
-  fflush(stdout);
-  close(STDERR_FILENO);
-  close(STDOUT_FILENO);
-  dup2(old_err,STDERR_FILENO);
-  dup2(old_out,STDOUT_FILENO);
-  close(old_err);
-  close(old_out);
-
-  Standard_Character buf[256];
-  Standard_Integer len = 0;
-
-  rewind(aFile_err);
-  while((len = read(fd_err,buf,clen*255)/clen) > 0) {
-    buf[len]='\0';
-    if(shouldDUP()) {
-      (*thePCommands) << buf;
-    } else {
-      write(st_err,buf,clen*len);
-    }
-  }
-  close(fd_err);
-
-  rewind(aFile_out);
-  buf[0] = '\0';
-  len = 0;
-  while((len = read(fd_out,buf,clen*255)/clen) > 0) {
-    buf[len]='\0';
-    if(shouldDUP()) {
-      (*thePCommands) << buf;
-    } else {
-      write(st_err,buf,clen*len);
-    }
-  }
-  close(fd_out);
-
-  if(shouldDUP()) {
-    Standard_Character *Result = (Standard_Character *)thePCommands->Result();
-    if(Result[0] != '\0') {
-      Standard_Integer pos = 0;
-      Standard_Integer rlen = strlen(Result);
-      while(pos < rlen) {
-	Standard_Integer nb = 256;
-	if((rlen - pos) <= 256) {
-	  nb = rlen - pos;
-	}
-	write(st_err,Result+pos,nb*clen);
-	pos += nb;
-      }
-      write(st_err,"\n",clen);
-      should_be_printed = Standard_False  ;
-    }
-  } //else {
-  if(nameo)
-    free(nameo);
-  if(namee)
-    free(namee);
-  return res;
-}
-
-static Standard_Integer QARebuild (Draw_Interpretor& di, Standard_Integer /*n*/, const char ** a)
-{
-
-  Tcl_CmdInfo *infoPtr = new Tcl_CmdInfo;
-
-  if(!strcmp(a[0],a[1]))
-    return 0;
-
-  char* var_a = (char*)a[1];
-  Standard_Integer res = Tcl_GetCommandInfo(di.Interp(),var_a,infoPtr);
-  if(res && (infoPtr->proc != &CommandCmd)) {
-    TCollection_AsciiString aName(var_a);
-    if (!stFuncMap.IsBound(aName)) {
-      stFuncMap.Bind(aName, (Standard_Address) infoPtr->proc);
-
-      infoPtr->proc = &CommandCmd;
-#if TCL_MAJOR_VERSION == 8 && TCL_MINOR_VERSION == 3
-      infoPtr->isNativeObjectProc = 0;
-      infoPtr->objProc = NULL;
-#endif
-      Tcl_SetCommandInfo(di.Interp(),var_a,infoPtr);
-    }
-  }
-
-  return 0;
-}
-
 Handle(TColStd_HSequenceOfReal) GetColorOfPixel (const Image_PixMap&    theImage,
                                                  const Standard_Integer theCoordinateX,
                                                  const Standard_Integer theCoordinateY,
@@ -408,45 +164,6 @@ static Standard_Integer QAAISGetPixelColor (Draw_Interpretor& theDi,
   return 0;
 }
 
-#if ! defined(WNT)
-extern int ViewerMainLoop (Standard_Integer argc, const char ** argv);
-#else
-Standard_EXPORT int ViewerMainLoop (Standard_Integer argc, const char ** argv);
-#endif
-
-static Standard_Integer QAAISGetMousePoint (Draw_Interpretor& di, Standard_Integer argc, const char ** argv)
-{
-  if ( argc != 1 ) {
-    di << "Usage : " << argv[0] << "\n";
-    return 1;
-  }
-  Handle (V3d_View) QAAISView = ViewerTest::CurrentView ();
-  if ( QAAISView.IsNull () ) {
-    di << "You must initialize AISViewer before this command." << "\n";
-    return 1;
-  }
-  Standard_Integer QAAISMouseCoordinateX = 0;
-  Standard_Integer QAAISMouseCoordinateY = 0;
-  Standard_Integer argccc = 5;
-  const char *bufff[] = { "A", "B", "C", "D", "E" };
-  const char **argvvv = (const char **) bufff;
-  while ( ViewerMainLoop (argccc, argvvv) ) {
-    ViewerTest::GetMousePosition (QAAISMouseCoordinateX, QAAISMouseCoordinateY);
-  }
-  ViewerTest::GetMousePosition (QAAISMouseCoordinateX, QAAISMouseCoordinateY);
-  di << "X-coordinate: " << QAAISMouseCoordinateX << "; Y-coordinate: " << QAAISMouseCoordinateY << "\n";
-  return 0;
-}
-
-//==============================================================================
-//  VIEWER GLOBALs
-//==============================================================================
-#ifndef WNT
-extern Draw_Viewer dout;
-#else
-Standard_IMPORT Draw_Viewer dout;
-#endif
-
 //=======================================================================
 #if ! defined(WNT)
 extern ViewerTest_DoubleMapOfInteractiveAndName& GetMapOfAIS();
@@ -525,86 +242,11 @@ static int VTrihedronOrigins(Draw_Interpretor& di,
   return 0;
 }
 
-#include 
-#include 
-
-static Standard_Integer ViewId(const Standard_CString a)
-{
-  Standard_Integer id = Draw::Atoi(a);
-  if ((id < 0) || (id >= MAXVIEW)) {
-    cout << "Incorrect view-id, must be in 0.."<
-
-//=======================================================================
-// QArename
-//=======================================================================
-
-static Standard_Integer QArename(Draw_Interpretor& di, Standard_Integer n, const char** a)
-{
-  if (n < 3) return 1;
-  Standard_Boolean cop = !strcasecmp(a[0],"copy");
-
-  Handle(Draw_Drawable3D) D;
-  for (Standard_Integer i = 1; i < n; i += 2) {
-    if (i+1 >= n) return 0;
-    D = Draw::Get(a[i]);
-    if (!D.IsNull()) {
-      if (cop)
-	D = D->Copy();
-      else
-	// clear old name
-	Draw::Set(a[i],Handle(Draw_Drawable3D()));
-
-      Draw::Set(a[i+1],D);
-    }
-  }
-  return 0;
-}
-
-//#if defined(V2D)
-//#include 
-//static Standard_Integer QANbSelected2d (Draw_Interpretor& /*di*/, Standard_Integer argc, char** argv)
-//{
-//  if(argc != 1) {
-//    cout << "Usage : " << argv[0] << endl;
-//    return 1;
-//  }
-//  Handle(AIS2D_InteractiveContext) aContext = Viewer2dTest::GetAIS2DContext();
-//  if(aContext.IsNull()) {
-//    cerr << "use 'v2dinit' command before " << argv[0] << endl;
-//    return 1;
-//  }
-//  cout << aContext->NbSelected() << endl;
-//  return 0;
-//}
-//#endif
-
 void QADraw::CommonCommands(Draw_Interpretor& theCommands)
 {
-  ios::sync_with_stdio();
-
-  st_err = dup(STDERR_FILENO);
-
-  Draw_BeforeCommand_old = Draw_BeforeCommand;
-  Draw_AfterCommand_old  = Draw_AfterCommand;
-
-  Draw_BeforeCommand = &before;
-  Draw_AfterCommand  = &after;
-
   const char* group = "QA_Commands";
 
-  theCommands.Add("QARebuild","QARebuild command_name",__FILE__,QARebuild,group);
   theCommands.Add("QAGetPixelColor", "QAGetPixelColor coordinate_X coordinate_Y [color_R color_G color_B]", __FILE__,QAAISGetPixelColor, group);
-  theCommands.Add("QAGetMousePoint", "QAGetMousePoint", __FILE__,QAAISGetMousePoint, group);
   theCommands.Add("vtri_orig",
 		  "vtri_orig         : vtri_orig trihedron_name  -  draws axis origin lines",
 		  __FILE__,VTrihedronOrigins,group);
@@ -612,48 +254,15 @@ void QADraw::CommonCommands(Draw_Interpretor& theCommands)
 // adding commands "rename" leads to the fact that QA commands doesn't work properly OCC23410, use function "renamevar"
 // theCommands.Add("rename","rename name1 toname1 name2 toname2 ...",__FILE__,QArename,group);
 }
-/*
-extern "C" int Tkqadraw_Init(Tcl_Interp *);
-
-int Tkqadraw_Init(Tcl_Interp * ) {
-
-  ios::sync_with_stdio();
-
-  QADraw::CommonCommands(theCommands);
-  QADraw::AdditionalCommands(theCommands);
 
-  ViewerTest::Commands (theCommands);
-  ViewerTest::ViewerCommands (theCommands);
-
-  Viewer2dTest::Commands(theCommands);
-//   if (Tcl_PkgProvide(theCommands.Interp(), "Qa", "1.0") != TCL_OK) {
-//     return TCL_ERROR;
-//   }
-
-  return TCL_OK;
-}
-*/
 //==============================================================================
 // QADraw::Factory
 //==============================================================================
 void QADraw::Factory(Draw_Interpretor& theCommands)
 {
-  thePCommands = &theCommands;
-
   // definition of QA Command
   QADraw::CommonCommands(theCommands);
   QADraw::AdditionalCommands(theCommands);
-
-  //ViewerTest::Commands (theCommands);
-  //ViewerTest::ViewerCommands (theCommands);
-
-//#if defined(V2D)
-//    Viewer2dTest::Commands(theCommands);
-//#endif
-
-//#ifdef DEB
-//      cout << "Draw Plugin : QA commands are loaded" << endl;
-//#endif
 }
 
 // Declare entry point PLUGINFACTORY
diff --git a/src/ViewerTest/ViewerTest_ViewerCommands.cxx b/src/ViewerTest/ViewerTest_ViewerCommands.cxx
index 4e0d888b60..a3289f5401 100755
--- a/src/ViewerTest/ViewerTest_ViewerCommands.cxx
+++ b/src/ViewerTest/ViewerTest_ViewerCommands.cxx
@@ -2080,10 +2080,16 @@ static int VExport(Draw_Interpretor& di, Standard_Integer argc, const char** arg
     return 1;
   }
 
-  if (!V3dView->View()->Export (argv[1], anExpFormat))
+  try {
+    if (!V3dView->View()->Export (argv[1], anExpFormat))
+    {
+      di << "Error: export of image to " << aFormatStr << " failed!\n";
+    }
+  }
+  catch (Standard_Failure)
   {
-    std::cout << "Export failed!\n";
-    return 1;
+    di << "Error: export of image to " << aFormatStr << " failed";
+    di << " (exception: " << Standard_Failure::Caught()->GetMessageString() << ")";
   }
   return 0;
 }
diff --git a/tests/3rdparty/export/begin b/tests/3rdparty/export/begin
new file mode 100644
index 0000000000..3d4929419a
--- /dev/null
+++ b/tests/3rdparty/export/begin
@@ -0,0 +1,6 @@
+# On Windows with VC, in typical configuration gl2ps is built with Release
+# mode only which will fail in Debug
+if { [regexp {Debug mode} [dversion]] } {
+    puts "TODO ?#23540 windows: Error: export of image.*failed"
+    puts "TODO ?#23540 windows: Error: The file has been exported.*different size \[(\]0 "
+}
diff --git a/tests/3rdparty/parse.rules b/tests/3rdparty/parse.rules
new file mode 100644
index 0000000000..d49a808c2a
--- /dev/null
+++ b/tests/3rdparty/parse.rules
@@ -0,0 +1 @@
+SKIPPED /test skipped/ GL2PS is absent
diff --git a/tests/bugs/begin b/tests/bugs/begin
index 4ebd4de2cc..f6008ef954 100755
--- a/tests/bugs/begin
+++ b/tests/bugs/begin
@@ -10,13 +10,13 @@ if { [array get Draw_Groups "TOPOLOGY Check commands"] == "" } {
 # to prevent loops limit to 16 minutes
 cpulimit 1000
 
-#set script_dir [file dirname [info script]]/script
-# if { [info exist WorkDirectory] == 0 } {
-#    set WorkDirectory "/tmp"
-#    if { [array get env TEMP] != "" } {
-#	set WorkDirectory "$env(TEMP)"
-#	}
-#    }
+# On Windows with VC, in typical configuration gl2ps is built with Release
+# mode only which will fail in Debug mode; add TODO for that case in order
+# to handle it once for all tests that can use vexport command
+if { [regexp {Debug mode} [dversion]] } {
+    puts "TODO ?#23540 windows: Error: export of image.*failed"
+    puts "TODO ?#23540 windows: Error: The file has been exported.*different size \[(\]0 "
+}
 
 if { [info exists imagedir] == 0 } {
    set imagedir .
@@ -217,7 +217,7 @@ proc checktrend {listval delta tolerance message} {
         set mean [expr $mean + ($val - $prev)]
         set prev $val
     }
-    set mean [expr $mean / $nbval]
+    set mean [expr $mean / ($nbval - 1)]
 
     # calculate dispersion
     set sigma 0.
@@ -227,12 +227,12 @@ proc checktrend {listval delta tolerance message} {
         set sigma [expr $sigma + $d * $d]
         set prev $val
     }
-    set sigma [expr sqrt ($sigma / ($nbval - 1))]
+    set sigma [expr sqrt ($sigma / ($nbval - 2))]
 
     puts "Checking trend: nb = $nbval, mean delta = $mean, sigma = $sigma"
 
     # check if deviation is definitely too big
-    if { abs ($mean - $delta) > 2. * $sigma } {
+    if { abs ($mean - $delta) > $tolerance + 2. * $sigma } {
         puts "Checking trend failed: mean delta per step = $mean, sigma = $sigma, expected delta = $delta"
         error "$message"
     }
diff --git a/tests/bugs/caf/bug1724 b/tests/bugs/caf/bug1724
index 2acef5aed5..78221fc1e8 100644
--- a/tests/bugs/caf/bug1724
+++ b/tests/bugs/caf/bug1724
@@ -6,8 +6,6 @@ puts ""
 #######################################################################################
 # BinOcaf: portability of binary file between platforms 
 #######################################################################################
-# Various improvements of RINA LH3D-3H project
-#######################################################################################
 
 set QA_DUP 0
 
diff --git a/tests/bugs/fclasses/bug6143 b/tests/bugs/fclasses/bug6143
index f950e54d52..89cf25a31d 100644
--- a/tests/bugs/fclasses/bug6143
+++ b/tests/bugs/fclasses/bug6143
@@ -7,7 +7,6 @@ puts "================"
 puts ""
 #######################################################################################
 # OSD::SetSignal : not all FLT exceptions are catched
-# Various improvements of RINA LH3D-3H project
 # Correct handling of exceptions on WNT
 #######################################################################################
 
diff --git a/tests/bugs/fclasses/bug7287_1 b/tests/bugs/fclasses/bug7287_1
index 6bcc66283b..07c370dd82 100755
--- a/tests/bugs/fclasses/bug7287_1
+++ b/tests/bugs/fclasses/bug7287_1
@@ -6,6 +6,9 @@ puts ""
 # Problem of Memory Leak
 ######################################################
 
+puts "TODO ?#23901 ALL: Memory leak detected"
+puts "TODO ?#23901 ALL: TEST INCOMPLETE"
+
 #
 # Result is Null shape
 #
diff --git a/tests/bugs/fclasses/bug7287_2 b/tests/bugs/fclasses/bug7287_2
index e637785813..6bab187df0 100755
--- a/tests/bugs/fclasses/bug7287_2
+++ b/tests/bugs/fclasses/bug7287_2
@@ -21,7 +21,7 @@ for {set i 1} {${i} <= ${NCycles}} {incr i } {
     bop b1 b2
     bopcut r
     lappend listmem [meminfo h]
-    if { [checktrend $listmem 0 1 "Memory leak detected"] } {
+    if { [checktrend $listmem 0 100 "Memory leak detected"] } {
         puts "No memory leak, $i iterations"
         break
     }
diff --git a/tests/bugs/fclasses/bug7287_3 b/tests/bugs/fclasses/bug7287_3
index bf66c2066c..ea70a7c0ac 100755
--- a/tests/bugs/fclasses/bug7287_3
+++ b/tests/bugs/fclasses/bug7287_3
@@ -23,7 +23,7 @@ for {set i 1} {${i} <= ${NCycles}} {incr i } {
     boptuc r
 
     lappend listmem [meminfo h]
-    if { [checktrend $listmem 0 1 "Memory leak detected"] } {
+    if { [checktrend $listmem 0 100 "Memory leak detected"] } {
         puts "No memory leak, $i iterations"
         break
     }
diff --git a/tests/bugs/fclasses/bug7287_4 b/tests/bugs/fclasses/bug7287_4
index 427e84f298..8b64c0a803 100755
--- a/tests/bugs/fclasses/bug7287_4
+++ b/tests/bugs/fclasses/bug7287_4
@@ -22,7 +22,7 @@ for {set i 1} {${i} <= ${NCycles}} {incr i } {
     bopcommon r
 
     lappend listmem [meminfo h]
-    if { [checktrend $listmem 0 1 "Memory leak detected"] } {
+    if { [checktrend $listmem 0 100 "Memory leak detected"] } {
         puts "No memory leak, $i iterations"
         break
     }
diff --git a/tests/bugs/fclasses/bug7287_5 b/tests/bugs/fclasses/bug7287_5
index 4290eed288..dcf22de5ce 100755
--- a/tests/bugs/fclasses/bug7287_5
+++ b/tests/bugs/fclasses/bug7287_5
@@ -21,7 +21,7 @@ for {set i 1} {${i} <= ${NCycles}} {incr i } {
     bopfuse r
 
     lappend listmem [meminfo h]
-    if { [checktrend $listmem 0 1 "Memory leak detected"] } {
+    if { [checktrend $listmem 0 100 "Memory leak detected"] } {
         puts "No memory leak, $i iterations"
         break
     }
diff --git a/tests/bugs/fclasses/bug7287_6 b/tests/bugs/fclasses/bug7287_6
index 590285a314..f3f6fa7420 100755
--- a/tests/bugs/fclasses/bug7287_6
+++ b/tests/bugs/fclasses/bug7287_6
@@ -21,7 +21,7 @@ for {set i 1} {${i} <= ${NCycles}} {incr i } {
     bopsection r
 
     lappend listmem [meminfo h]
-    if { [checktrend $listmem 0 1 "Memory leak detected"] } {
+    if { [checktrend $listmem 0 100 "Memory leak detected"] } {
         puts "No memory leak, $i iterations"
         break
     }
diff --git a/tests/bugs/modalg_1/bug19793_2 b/tests/bugs/modalg_1/bug19793_2
index 4212712f9e..f85ecb6411 100755
--- a/tests/bugs/modalg_1/bug19793_2
+++ b/tests/bugs/modalg_1/bug19793_2
@@ -8,7 +8,7 @@ puts ""
 # Fuse problem of symetrical shapes. Appendix for NPAL19789
 #######################################################################
 
-cpulimit 300
+cpulimit 500
 #cpulimit 4500
 set BugNumber OCC19793
 
diff --git a/tests/bugs/modalg_2/bug20297_1 b/tests/bugs/modalg_2/bug20297_1
index 36974e9112..e5efb37dce 100755
--- a/tests/bugs/modalg_2/bug20297_1
+++ b/tests/bugs/modalg_2/bug20297_1
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20297"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20297_2 b/tests/bugs/modalg_2/bug20297_2
index cd0ef7486c..6bb9e877f3 100755
--- a/tests/bugs/modalg_2/bug20297_2
+++ b/tests/bugs/modalg_2/bug20297_2
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20297"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20297_3 b/tests/bugs/modalg_2/bug20297_3
index b672095d96..dd243dd2e5 100755
--- a/tests/bugs/modalg_2/bug20297_3
+++ b/tests/bugs/modalg_2/bug20297_3
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20297"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20297_4 b/tests/bugs/modalg_2/bug20297_4
index ebda37c1c9..ddee861050 100755
--- a/tests/bugs/modalg_2/bug20297_4
+++ b/tests/bugs/modalg_2/bug20297_4
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20297"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20297_5 b/tests/bugs/modalg_2/bug20297_5
index bd7add7d9c..0dc5254d12 100755
--- a/tests/bugs/modalg_2/bug20297_5
+++ b/tests/bugs/modalg_2/bug20297_5
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20297"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20964_1 b/tests/bugs/modalg_2/bug20964_1
index be0dba6d80..c7d3cfe032 100755
--- a/tests/bugs/modalg_2/bug20964_1
+++ b/tests/bugs/modalg_2/bug20964_1
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20964"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20964_2 b/tests/bugs/modalg_2/bug20964_2
index 389b42df66..fe3da0924a 100755
--- a/tests/bugs/modalg_2/bug20964_2
+++ b/tests/bugs/modalg_2/bug20964_2
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20964"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20964_3 b/tests/bugs/modalg_2/bug20964_3
index bb6d442a69..4b1e8e6f49 100755
--- a/tests/bugs/modalg_2/bug20964_3
+++ b/tests/bugs/modalg_2/bug20964_3
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20964"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20964_4 b/tests/bugs/modalg_2/bug20964_4
index 3c2f2d887a..856e2d15b2 100755
--- a/tests/bugs/modalg_2/bug20964_4
+++ b/tests/bugs/modalg_2/bug20964_4
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20964"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug20964_5 b/tests/bugs/modalg_2/bug20964_5
index 045919fba7..79e8d6d185 100755
--- a/tests/bugs/modalg_2/bug20964_5
+++ b/tests/bugs/modalg_2/bug20964_5
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC20964"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/modalg_2/bug21261_1 b/tests/bugs/modalg_2/bug21261_1
index 2b8bff9055..5e85ddafbd 100755
--- a/tests/bugs/modalg_2/bug21261_1
+++ b/tests/bugs/modalg_2/bug21261_1
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_10 b/tests/bugs/modalg_2/bug21261_10
index a38188c12e..b71bbf876b 100755
--- a/tests/bugs/modalg_2/bug21261_10
+++ b/tests/bugs/modalg_2/bug21261_10
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_11 b/tests/bugs/modalg_2/bug21261_11
index 7072c3a3b8..49057b0ab9 100755
--- a/tests/bugs/modalg_2/bug21261_11
+++ b/tests/bugs/modalg_2/bug21261_11
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_12 b/tests/bugs/modalg_2/bug21261_12
index a1d8306bf6..1c31e44fc8 100755
--- a/tests/bugs/modalg_2/bug21261_12
+++ b/tests/bugs/modalg_2/bug21261_12
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_13 b/tests/bugs/modalg_2/bug21261_13
index d14d0d212b..c032529645 100755
--- a/tests/bugs/modalg_2/bug21261_13
+++ b/tests/bugs/modalg_2/bug21261_13
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_14 b/tests/bugs/modalg_2/bug21261_14
index 1b00b6f246..3fd9069d3a 100755
--- a/tests/bugs/modalg_2/bug21261_14
+++ b/tests/bugs/modalg_2/bug21261_14
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_15 b/tests/bugs/modalg_2/bug21261_15
index 9efa018458..9aef657e21 100755
--- a/tests/bugs/modalg_2/bug21261_15
+++ b/tests/bugs/modalg_2/bug21261_15
@@ -3,7 +3,6 @@ puts "TODO OCC11111 ALL: An exception was caught"
 puts "TODO ?OCC11111 ALL: TEST INCOMPLETE"
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_16 b/tests/bugs/modalg_2/bug21261_16
index 813fa34a86..89c81c4b61 100755
--- a/tests/bugs/modalg_2/bug21261_16
+++ b/tests/bugs/modalg_2/bug21261_16
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_17 b/tests/bugs/modalg_2/bug21261_17
index 3e960bf1fd..916e526bee 100755
--- a/tests/bugs/modalg_2/bug21261_17
+++ b/tests/bugs/modalg_2/bug21261_17
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_18 b/tests/bugs/modalg_2/bug21261_18
index 380bb63ed4..1bc951d269 100755
--- a/tests/bugs/modalg_2/bug21261_18
+++ b/tests/bugs/modalg_2/bug21261_18
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_19 b/tests/bugs/modalg_2/bug21261_19
index 4118781047..4b7265a209 100755
--- a/tests/bugs/modalg_2/bug21261_19
+++ b/tests/bugs/modalg_2/bug21261_19
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_2 b/tests/bugs/modalg_2/bug21261_2
index ac01f10a45..09315aa48e 100755
--- a/tests/bugs/modalg_2/bug21261_2
+++ b/tests/bugs/modalg_2/bug21261_2
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_20 b/tests/bugs/modalg_2/bug21261_20
index 7f63b12d25..1fbb0ea8cc 100755
--- a/tests/bugs/modalg_2/bug21261_20
+++ b/tests/bugs/modalg_2/bug21261_20
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_21 b/tests/bugs/modalg_2/bug21261_21
index c3b75d9f75..db8b8113c7 100755
--- a/tests/bugs/modalg_2/bug21261_21
+++ b/tests/bugs/modalg_2/bug21261_21
@@ -3,7 +3,6 @@ puts "TODO OCC11111 ALL: An exception was caught"
 puts "TODO ?OCC11111 ALL: TEST INCOMPLETE"
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_22 b/tests/bugs/modalg_2/bug21261_22
index 7473484fac..09eb9cd3d8 100755
--- a/tests/bugs/modalg_2/bug21261_22
+++ b/tests/bugs/modalg_2/bug21261_22
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_23 b/tests/bugs/modalg_2/bug21261_23
index 854763fb93..47eb322056 100755
--- a/tests/bugs/modalg_2/bug21261_23
+++ b/tests/bugs/modalg_2/bug21261_23
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_24 b/tests/bugs/modalg_2/bug21261_24
index 5e6373edd2..6008aa03de 100755
--- a/tests/bugs/modalg_2/bug21261_24
+++ b/tests/bugs/modalg_2/bug21261_24
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_25 b/tests/bugs/modalg_2/bug21261_25
index 704c7d4b4c..5de4defa42 100755
--- a/tests/bugs/modalg_2/bug21261_25
+++ b/tests/bugs/modalg_2/bug21261_25
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_26 b/tests/bugs/modalg_2/bug21261_26
index 7ab75bdae3..a7dc8f5787 100755
--- a/tests/bugs/modalg_2/bug21261_26
+++ b/tests/bugs/modalg_2/bug21261_26
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_27 b/tests/bugs/modalg_2/bug21261_27
index 1eee43c16a..931992378d 100755
--- a/tests/bugs/modalg_2/bug21261_27
+++ b/tests/bugs/modalg_2/bug21261_27
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_28 b/tests/bugs/modalg_2/bug21261_28
index c54e83f603..586fb27b89 100755
--- a/tests/bugs/modalg_2/bug21261_28
+++ b/tests/bugs/modalg_2/bug21261_28
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_29 b/tests/bugs/modalg_2/bug21261_29
index 92e18e64c8..75dd3fd5a7 100755
--- a/tests/bugs/modalg_2/bug21261_29
+++ b/tests/bugs/modalg_2/bug21261_29
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_3 b/tests/bugs/modalg_2/bug21261_3
index 841eb26633..987e8badd8 100755
--- a/tests/bugs/modalg_2/bug21261_3
+++ b/tests/bugs/modalg_2/bug21261_3
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_30 b/tests/bugs/modalg_2/bug21261_30
index de3b029020..8251213233 100755
--- a/tests/bugs/modalg_2/bug21261_30
+++ b/tests/bugs/modalg_2/bug21261_30
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_31 b/tests/bugs/modalg_2/bug21261_31
index ad7fff8a8c..6c99ac2e10 100755
--- a/tests/bugs/modalg_2/bug21261_31
+++ b/tests/bugs/modalg_2/bug21261_31
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_32 b/tests/bugs/modalg_2/bug21261_32
index 69bd16dcb4..d98eec63ed 100755
--- a/tests/bugs/modalg_2/bug21261_32
+++ b/tests/bugs/modalg_2/bug21261_32
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_33 b/tests/bugs/modalg_2/bug21261_33
index 7dbc87a285..77289f8c00 100755
--- a/tests/bugs/modalg_2/bug21261_33
+++ b/tests/bugs/modalg_2/bug21261_33
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_34 b/tests/bugs/modalg_2/bug21261_34
index 295561e54e..e7e71b5d71 100755
--- a/tests/bugs/modalg_2/bug21261_34
+++ b/tests/bugs/modalg_2/bug21261_34
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_35 b/tests/bugs/modalg_2/bug21261_35
index cef4765c35..d57ced8018 100755
--- a/tests/bugs/modalg_2/bug21261_35
+++ b/tests/bugs/modalg_2/bug21261_35
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_36 b/tests/bugs/modalg_2/bug21261_36
index 34d2c2af5d..01f3cf4a77 100755
--- a/tests/bugs/modalg_2/bug21261_36
+++ b/tests/bugs/modalg_2/bug21261_36
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_37 b/tests/bugs/modalg_2/bug21261_37
index 20b489d52b..35cbd24edb 100755
--- a/tests/bugs/modalg_2/bug21261_37
+++ b/tests/bugs/modalg_2/bug21261_37
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_38 b/tests/bugs/modalg_2/bug21261_38
index c2ea41575d..c0bdb0cb82 100755
--- a/tests/bugs/modalg_2/bug21261_38
+++ b/tests/bugs/modalg_2/bug21261_38
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_39 b/tests/bugs/modalg_2/bug21261_39
index bbbd4406be..6c9166cd16 100755
--- a/tests/bugs/modalg_2/bug21261_39
+++ b/tests/bugs/modalg_2/bug21261_39
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_4 b/tests/bugs/modalg_2/bug21261_4
index 4c7572cae4..40b37e4a92 100755
--- a/tests/bugs/modalg_2/bug21261_4
+++ b/tests/bugs/modalg_2/bug21261_4
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_40 b/tests/bugs/modalg_2/bug21261_40
index f498f5e6cb..6c2c9442ac 100755
--- a/tests/bugs/modalg_2/bug21261_40
+++ b/tests/bugs/modalg_2/bug21261_40
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_41 b/tests/bugs/modalg_2/bug21261_41
index db566bfe09..7966f0f2f9 100755
--- a/tests/bugs/modalg_2/bug21261_41
+++ b/tests/bugs/modalg_2/bug21261_41
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_42 b/tests/bugs/modalg_2/bug21261_42
index 203677a660..53799a16e4 100755
--- a/tests/bugs/modalg_2/bug21261_42
+++ b/tests/bugs/modalg_2/bug21261_42
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_43 b/tests/bugs/modalg_2/bug21261_43
index deae111267..2a634ce7c4 100755
--- a/tests/bugs/modalg_2/bug21261_43
+++ b/tests/bugs/modalg_2/bug21261_43
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_44 b/tests/bugs/modalg_2/bug21261_44
index 0001237a34..cebbaa93a1 100755
--- a/tests/bugs/modalg_2/bug21261_44
+++ b/tests/bugs/modalg_2/bug21261_44
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_45 b/tests/bugs/modalg_2/bug21261_45
index 2ab6f512c7..7335481849 100755
--- a/tests/bugs/modalg_2/bug21261_45
+++ b/tests/bugs/modalg_2/bug21261_45
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_46 b/tests/bugs/modalg_2/bug21261_46
index a08115cd6c..9f45d2907a 100755
--- a/tests/bugs/modalg_2/bug21261_46
+++ b/tests/bugs/modalg_2/bug21261_46
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_5 b/tests/bugs/modalg_2/bug21261_5
index 155ea36345..8263c7f404 100755
--- a/tests/bugs/modalg_2/bug21261_5
+++ b/tests/bugs/modalg_2/bug21261_5
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_6 b/tests/bugs/modalg_2/bug21261_6
index 8c7e84d427..b60fff91fb 100755
--- a/tests/bugs/modalg_2/bug21261_6
+++ b/tests/bugs/modalg_2/bug21261_6
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_7 b/tests/bugs/modalg_2/bug21261_7
index 37539d4970..29a0a48b85 100755
--- a/tests/bugs/modalg_2/bug21261_7
+++ b/tests/bugs/modalg_2/bug21261_7
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_8 b/tests/bugs/modalg_2/bug21261_8
index 94ccb61220..a89cced51a 100755
--- a/tests/bugs/modalg_2/bug21261_8
+++ b/tests/bugs/modalg_2/bug21261_8
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21261_9 b/tests/bugs/modalg_2/bug21261_9
index f9d6d84309..c96dbe9428 100755
--- a/tests/bugs/modalg_2/bug21261_9
+++ b/tests/bugs/modalg_2/bug21261_9
@@ -1,6 +1,5 @@
 puts "========"
 puts "OCC21261"
-puts "Customer : TATA"
 puts "========"
 puts ""
 ######################################################
diff --git a/tests/bugs/modalg_2/bug21652_1 b/tests/bugs/modalg_2/bug21652_1
index 2f29925f9c..e274f3f340 100755
--- a/tests/bugs/modalg_2/bug21652_1
+++ b/tests/bugs/modalg_2/bug21652_1
@@ -2,11 +2,10 @@ puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
 
 puts "============"
 puts "OCC21652"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
-# TATA-08-005 Problem with offset on the wire
+# Problem with offset on the wire
 #######################################################################
 
 set BugNumber OCC21652
diff --git a/tests/bugs/modalg_2/bug21652_2 b/tests/bugs/modalg_2/bug21652_2
index b098efd314..471b37763a 100755
--- a/tests/bugs/modalg_2/bug21652_2
+++ b/tests/bugs/modalg_2/bug21652_2
@@ -2,11 +2,10 @@ puts "TODO OCC11111 ALL: Error : Result shape is WRONG"
 
 puts "============"
 puts "OCC21652"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
-# TATA-08-005 Problem with offset on the wire
+# Problem with offset on the wire
 #######################################################################
 
 set BugNumber OCC21652
diff --git a/tests/bugs/modalg_2/bug305 b/tests/bugs/modalg_2/bug305
index 18958b02e2..0be4f4906a 100755
--- a/tests/bugs/modalg_2/bug305
+++ b/tests/bugs/modalg_2/bug305
@@ -13,53 +13,7 @@ puts ""
 puts "Bug's attributes"
 puts "################"
 puts ""
-puts "Customer : Telco"
-puts "Channel : External"
-puts "Version : 4.0"
-puts "OS : IRIX"
-puts "Urgency : High"
-puts "Type : BUG"
-puts ""
 puts "Summary:  BRepOffsetAPI_MakeOffset: problem with offsetting a wire"
-puts ""
-puts "Description:"
-puts "I am attaching the brep file of a curve, obtained from intersection with a"
-puts "plane. Its a planer curve and we want to offset it by the amount which"
-puts "is feasible. after trying with all options we were not able to offset it."
-puts "But the same wire when we read inside EUCLID3 as well as CATIA it does"
-puts "the offset correctly."
-puts ""
-puts ""
-puts "Bug's advancement"
-puts "#################"
-puts ""
-puts "Customer version                  Development version"
-puts "Status : CLOSED                   Status : CLOSED"
-puts "Resolution : NOT                  Resolution : NOT"
-puts "Leave as CLOSED NOT               Leave as CLOSED NOT"
-puts ""
-puts ""
-puts "Bug's history"
-puts "#############"
-puts ""
-puts "------- Additional Comments From Igor NAZAROV-BUGMASTER 2002-04-19 16:21 -------"
-puts "Dear Sergey,"
-
-puts "Below you will find conclusion of JGV about thia bug"
-puts "Bugmaster"
-puts "   This case can not be done by existing algorithm. It is mathematical"
-puts "limitation: the offset may be performed only from at least C1-continuous"
-puts "curve, but all the 12 edges of initial wire are based on C0-continuous"
-puts "curves."
-puts "   I may modify the algorithm so that it splits initial edges into"
-puts "C1-continuous curves, but then resulting wire will consist of too many"
-puts "small edges (in our case the number of edges will increase about 100"
-puts "times)."
-puts "  But user may obtain initial wire more smooth: when he intersects"
-puts "something with a plane by command \"section\", he can add the key \"-a\""
-puts "(force approximation)."
-puts ""
-puts ""
 
 catch {pload XDE}
 
diff --git a/tests/bugs/modalg_4/bug827_1 b/tests/bugs/modalg_4/bug827_1
index b0e9123317..723752701a 100755
--- a/tests/bugs/modalg_4/bug827_1
+++ b/tests/bugs/modalg_4/bug827_1
@@ -1,6 +1,12 @@
-puts "TODO OCC12345 ALL: Error : The square of result shape is"
-puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
-puts "TODO OCC12345 ALL: Faulty OCC827"
+# Errors are different in Debug and Release mode
+puts "TODO ?#23910 ALL: Error : The square of result shape is"
+puts "TODO ?#23910 ALL: Faulty shapes in variables faulty_1 to faulty_"
+puts "TODO ?#23910 ALL: Faulty OCC827"
+
+# Debug on Windows
+puts "TODO ?#23910 ALL: Standard_Failure : Exception in REV Function"
+puts "TODO ?#23910 ALL: result is not a topological shape!!!"
+puts "TODO ?#23910 ALL: TEST INCOMPLETE"
 
 pload QAcommands
 
diff --git a/tests/bugs/moddata_1/bug150_1 b/tests/bugs/moddata_1/bug150_1
index 9174f95521..1125d29cc6 100755
--- a/tests/bugs/moddata_1/bug150_1
+++ b/tests/bugs/moddata_1/bug150_1
@@ -15,12 +15,6 @@ puts ""
 puts ""
 puts "Bug's advancement"
 puts "#################"
-puts ""
-puts "Customer version                  Development version"
-puts "Status : CLOSED                   Status : CLOSED"
-puts "Resolution : LIMITATION           Resolution : LIMITATION"
-puts "Leave as CLOSED LIMITATION        Leave as CLOSED LIMITATION"
-puts ""
 
 restore [locate_data_file OCC150_compsolid_nofuse.brep] sh 
 explode sh
diff --git a/tests/bugs/moddata_1/bug150_2 b/tests/bugs/moddata_1/bug150_2
index eac73fe079..7922304847 100755
--- a/tests/bugs/moddata_1/bug150_2
+++ b/tests/bugs/moddata_1/bug150_2
@@ -15,11 +15,6 @@ puts ""
 puts "Bug's advancement"
 puts "#################"
 puts ""
-puts "Customer version                  Development version"
-puts "Status : CLOSED                   Status : CLOSED"
-puts "Resolution : LIMITATION           Resolution : LIMITATION"
-puts "Leave as CLOSED LIMITATION        Leave as CLOSED LIMITATION"
-puts ""
 
 restore [locate_data_file OCC150_compsolid_nofuse.brep] sh 
 explode sh
diff --git a/tests/bugs/moddata_1/bug20683 b/tests/bugs/moddata_1/bug20683
index de23ef0c65..b992c66b29 100755
--- a/tests/bugs/moddata_1/bug20683
+++ b/tests/bugs/moddata_1/bug20683
@@ -1,6 +1,5 @@
 puts "========================"
 puts "OCC20683"
-puts "Customer : TATA"
 puts "========================"
 puts ""
 #######################################################################
diff --git a/tests/bugs/moddata_1/bug22759 b/tests/bugs/moddata_1/bug22759
index abce98ab17..194618e477 100755
--- a/tests/bugs/moddata_1/bug22759
+++ b/tests/bugs/moddata_1/bug22759
@@ -1,6 +1,6 @@
 puts "TODO OCC11111 ALL: TEST INCOMPLETE"
 
-cpulimit 30
+cpulimit 500
 
 puts "============"
 puts "OCC22759"
diff --git a/tests/bugs/moddata_1/bug54 b/tests/bugs/moddata_1/bug54
index b3c3bd9279..816f9f2fa2 100755
--- a/tests/bugs/moddata_1/bug54
+++ b/tests/bugs/moddata_1/bug54
@@ -2,9 +2,6 @@ if { [array get env os_type] != "" } {
     set os $env(os_type)
 }
 puts "TODO OCC12345 ALL: Faulty shapes in variables faulty_1 to faulty_"
-if { [string compare $os "windows"] != 0 } {
-    puts "TODO OCC12345 ALL: TEST INCOMPLETE"
-}
 puts "================"
 puts "OCC54"
 puts "================"
@@ -13,7 +10,7 @@ puts ""
 ## Exception is raised during command "small" in DRAW on attached shape.
 ####################################################
 
-cpulimit 300
+cpulimit 500
 restore [locate_data_file OCC54.brep] result
 
 checkshape result
diff --git a/tests/bugs/moddata_2/bug22758 b/tests/bugs/moddata_2/bug22758
index 9c52ac0505..16576e2606 100755
--- a/tests/bugs/moddata_2/bug22758
+++ b/tests/bugs/moddata_2/bug22758
@@ -18,31 +18,35 @@ bsplinecurve c1 2   2 0 3 1 3       0 2 0 1  1 1 0 1  2 2 0 1
 mkedge e c1
 vertex v 0 0 1
 
-set res [distmini r e v]
+distmini r e v
 
 set status 0
 # result should contain one edge, starting on e and ending on v
-if { [llength $res] != 2 } {
-    puts "Error: result has structure different from expected: $res"
-    set status 1
-}
+#if { [llength $res] != 2 } {
+#    puts "Error: result has structure different from expected: $res"
+#    set status 1
+#}
 
 # get start and end vertices -- these should be solutions on e1 and e2
-set sol [explode [lindex $res 1] v]
+set sol [explode r v]
 
 # check distances in correct order
-set d1 [dval [lindex [distmini d1 [lindex $sol 0] e] 0]]
-set d2 [dval [lindex [distmini d2 [lindex $sol 1] v] 0]]
-puts "Distances from solutions to relevant objecte: $d1, $d2"
+distmini d1 [lindex $sol 0] e
+distmini d2 [lindex $sol 1] v
+set d1 [dval d1_val]
+set d2 [dval d2_val]
+puts "Distances from solutions to relevant objects: $d1, $d2"
 if { $d1 > 1e-7 || $d2 > 1e-7 } {
     puts "Error: distances are non-zero!"
     set status 1
 }
 
 # check distances in swapped order
-set d1 [dval [lindex [distmini d1 [lindex $sol 0] v] 0]]
-set d2 [dval [lindex [distmini d2 [lindex $sol 1] e] 0]]
-puts "Distances from solutions to swapped objecte: $d1, $d2"
+distmini d1 [lindex $sol 0] v
+distmini d2 [lindex $sol 1] e
+set d1 [dval d1_val]
+set d2 [dval d2_val]
+puts "Distances from solutions to swapped objects: $d1, $d2"
 if { $d1 < 0.1 || $d2 < 0.1 } {
     puts "Error: swapped distances are zero, i.e. solutions are swapped!"
     set status 1
diff --git a/tests/bugs/moddata_2/bug23051 b/tests/bugs/moddata_2/bug23051
index 6fad76c568..d948b83ed7 100755
--- a/tests/bugs/moddata_2/bug23051
+++ b/tests/bugs/moddata_2/bug23051
@@ -12,22 +12,19 @@ set BugNumber OCC23051
 plane p 0 0 0 0 0 1
 mkface f p -10 10 -10 10
 vertex v 0 0 1
-set res [distmini r f v]
-
-# result should contain one edge, starting on f and ending on v
-if { [llength $res] != 2 } {
-    puts "Error: result has structure different from expected: $res"
-}
+distmini r f v
 
 # get start and end vertices -- these should be solutions on f and v
-set sol [explode [lindex $res 1] v]
+set sol [explode r v]
 
 set status1 0
 # check distances in correct order
-set d1 [dval [lindex [distmini d1 [lindex $sol 0] f] 0]]
-set d2 [dval [lindex [distmini d2 [lindex $sol 1] v] 0]]
+distmini d1 [lindex $sol 0] f
+distmini d2 [lindex $sol 1] v
+set d1 [dval d1_val]
+set d2 [dval d2_val]
 
-puts "Distances from solutions to relevant objecte: $d1, $d2"
+puts "Distances from solutions to relevant objects: $d1, $d2"
 if { $d1 > 1e-7 || $d2 > 1e-7 } {
     puts "Error: distances are non-zero!"
     set status1 1
@@ -35,10 +32,12 @@ if { $d1 > 1e-7 || $d2 > 1e-7 } {
 
 set status2 0
 # check distances in swapped order
-set d1 [dval [lindex [distmini d1 [lindex $sol 0] v] 0]]
-set d2 [dval [lindex [distmini d2 [lindex $sol 1] f] 0]]
+distmini d1 [lindex $sol 0] v
+distmini d2 [lindex $sol 1] f
+set d1 [dval d1_val]
+set d2 [dval d2_val]
 
-puts "Distances from solutions to swapped objecte: $d1, $d2"
+puts "Distances from solutions to swapped objects: $d1, $d2"
 if { $d1 < 0.1 || $d2 < 0.1 } {
     puts "Error: swapped distances are zero, i.e. solutions are swapped!"
     set status2 1
diff --git a/tests/bugs/moddata_2/bug353 b/tests/bugs/moddata_2/bug353
index 52a2e79662..c1642344f5 100755
--- a/tests/bugs/moddata_2/bug353
+++ b/tests/bugs/moddata_2/bug353
@@ -5,7 +5,7 @@ puts "OCC353"
 puts "================"
 puts ""
 ##########################################################
-## Attached DRAW command "TATA_const" hangs in Geom2dGcc_Circ2d3Tan.
+## Attached DRAW command hangs in Geom2dGcc_Circ2d3Tan.
 ##########################################################
 
 if [catch { OCC353 }] {
diff --git a/tests/bugs/moddata_3/buc60634 b/tests/bugs/moddata_3/buc60634
index 9572d0e209..e4ca8343e6 100644
--- a/tests/bugs/moddata_3/buc60634
+++ b/tests/bugs/moddata_3/buc60634
@@ -1,5 +1,6 @@
 puts "Output with mistake is correct!"
-puts "TODO BUC60634 ALL: An exception was caught"
+puts "TODO BUC60634 ALL: Standard_ConstructionError: BRepFill_Draft"
+puts "TODO ?BUC60634 ALL: Error in MakeWire"
 puts "=================="
 puts "BUC60634"
 puts "=================="
@@ -8,21 +9,19 @@ sphere s 10
 mkshell sh s
 explode sh f
 
-decho off
 catch {draft r sh 0 0 1 10 shape} first
 catch {draft result sh_1 0 0 1 10 shape} second
-decho on
 
-if { [regexp {Standard_ConstructionError:} $first] != 1 } {
-    puts "Faulty : not suitablle exception"
+if { ! [regexp {Standard_ConstructionError:} $first] } {
+    puts "Error : not suitablle exception"
 } else {
-    puts "Output is correct"
+    puts "Output is as expected"
 }
 
-if { [regexp {External} $second] != 1 } {
-    puts "Faulty : not suitablle exception"
+if { ! [regexp {External} $second] } {
+    puts "Error : not word External found"
 } else {
-    puts "Output is correct"
+    puts "Output is as expected"
 }
 
 
diff --git a/tests/bugs/vis/bug1629 b/tests/bugs/vis/bug1629
index ccc71ce922..34e85fd695 100755
--- a/tests/bugs/vis/bug1629
+++ b/tests/bugs/vis/bug1629
@@ -8,8 +8,6 @@ puts ""
 #######################################################################################
 # Viewer is always updated on closing local contexts
 #######################################################################################
-# Various improvements of RINA LH3D-3H project
-#######################################################################################
 
 box b1 10 10 10
 box b2 50 50 50 10 10 10
diff --git a/tests/bugs/vis/bug1786 b/tests/bugs/vis/bug1786
index cd3d14b201..de5c21ed78 100755
--- a/tests/bugs/vis/bug1786
+++ b/tests/bugs/vis/bug1786
@@ -4,7 +4,6 @@ puts "OCC2707"
 puts "================"
 #######################################################################################
 # AIS_LC::AddOrRemoveSelected(Handle(SelectMgr_EntityOwner), ..) works too slow
-# Various improvements of RINA LH3D-3H project
 #######################################################################################
 
 box b1 10 10 10
diff --git a/tests/bugs/vis/bug21747_1 b/tests/bugs/vis/bug21747_1
index b98e501fd0..d0cfd9b45b 100755
--- a/tests/bugs/vis/bug21747_1
+++ b/tests/bugs/vis/bug21747_1
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_10 b/tests/bugs/vis/bug21747_10
index 073ac49f03..899db01071 100755
--- a/tests/bugs/vis/bug21747_10
+++ b/tests/bugs/vis/bug21747_10
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_11 b/tests/bugs/vis/bug21747_11
index 99c57b844a..ad329ce59f 100755
--- a/tests/bugs/vis/bug21747_11
+++ b/tests/bugs/vis/bug21747_11
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_12 b/tests/bugs/vis/bug21747_12
index 0883fd6140..639b955cee 100755
--- a/tests/bugs/vis/bug21747_12
+++ b/tests/bugs/vis/bug21747_12
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_13 b/tests/bugs/vis/bug21747_13
index ed9e80aa77..2c00fd0409 100755
--- a/tests/bugs/vis/bug21747_13
+++ b/tests/bugs/vis/bug21747_13
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_14 b/tests/bugs/vis/bug21747_14
index 7adfa01541..58a2334911 100755
--- a/tests/bugs/vis/bug21747_14
+++ b/tests/bugs/vis/bug21747_14
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_15 b/tests/bugs/vis/bug21747_15
index cae6df291b..af7ccfd2a4 100755
--- a/tests/bugs/vis/bug21747_15
+++ b/tests/bugs/vis/bug21747_15
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_16 b/tests/bugs/vis/bug21747_16
index d56818e519..d13997ed3f 100755
--- a/tests/bugs/vis/bug21747_16
+++ b/tests/bugs/vis/bug21747_16
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_17 b/tests/bugs/vis/bug21747_17
index 11cbf0643f..2d142e45b3 100755
--- a/tests/bugs/vis/bug21747_17
+++ b/tests/bugs/vis/bug21747_17
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_2 b/tests/bugs/vis/bug21747_2
index 97f27074d7..0b1cf43eaa 100755
--- a/tests/bugs/vis/bug21747_2
+++ b/tests/bugs/vis/bug21747_2
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_3 b/tests/bugs/vis/bug21747_3
index 7f36851c4f..a8133fd134 100755
--- a/tests/bugs/vis/bug21747_3
+++ b/tests/bugs/vis/bug21747_3
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_4 b/tests/bugs/vis/bug21747_4
index a9f16ca092..57522446e3 100755
--- a/tests/bugs/vis/bug21747_4
+++ b/tests/bugs/vis/bug21747_4
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_5 b/tests/bugs/vis/bug21747_5
index 9c8e415a51..8465c984cb 100755
--- a/tests/bugs/vis/bug21747_5
+++ b/tests/bugs/vis/bug21747_5
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_6 b/tests/bugs/vis/bug21747_6
index 8dc616bd2c..431236abba 100755
--- a/tests/bugs/vis/bug21747_6
+++ b/tests/bugs/vis/bug21747_6
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_7 b/tests/bugs/vis/bug21747_7
index de49cfdc1e..778916d431 100755
--- a/tests/bugs/vis/bug21747_7
+++ b/tests/bugs/vis/bug21747_7
@@ -1,6 +1,5 @@
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_8 b/tests/bugs/vis/bug21747_8
index 66f29ca2fe..9ced128a88 100755
--- a/tests/bugs/vis/bug21747_8
+++ b/tests/bugs/vis/bug21747_8
@@ -3,7 +3,6 @@ puts "TODO ?OCC12345 ALL: \\*\\* Exception \\*\\*.*"
 puts "TODO ?OCC12345 ALL: TEST INCOMPLETE"
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug21747_9 b/tests/bugs/vis/bug21747_9
index e3ccf6fdd0..b71fa92d80 100755
--- a/tests/bugs/vis/bug21747_9
+++ b/tests/bugs/vis/bug21747_9
@@ -3,7 +3,6 @@ puts "TODO ?OCC12345 ALL: \\*\\* Exception \\*\\*.*"
 puts "TODO ?OCC12345 ALL: TEST INCOMPLETE"
 puts "============"
 puts "OCC21747"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug22188 b/tests/bugs/vis/bug22188
index 8814a2716d..e76cec22aa 100755
--- a/tests/bugs/vis/bug22188
+++ b/tests/bugs/vis/bug22188
@@ -2,7 +2,6 @@ puts "TODO OCC11111 ALL: Faulty OCC22188"
 
 puts "============"
 puts "OCC22188"
-puts "Customer : TATA"
 puts "============"
 puts ""
 #######################################################################
diff --git a/tests/bugs/vis/bug316 b/tests/bugs/vis/bug316
index 8a617abb00..cf90249b2d 100755
--- a/tests/bugs/vis/bug316
+++ b/tests/bugs/vis/bug316
@@ -4,7 +4,7 @@ puts "================"
 puts ""
 
 ########################################################
-## Exception is raised in the SAMTECH Application during visualization. (#2054)
+## Exception is raised in the application during visualization. (#2054)
 ########################################################
 
 restore [locate_data_file OCC316.brep] result 
diff --git a/tests/bugs/xde/bug23047_1 b/tests/bugs/xde/bug23047_1
index 885c26b0dc..7785082cb7 100755
--- a/tests/bugs/xde/bug23047_1
+++ b/tests/bugs/xde/bug23047_1
@@ -17,8 +17,6 @@ ttranslate b 1 0 0
 XAddShape D b
 XRemoveShape D 0:1:1:1 0
 
-QARebuild Xdump
-
 set xd [Xdump D]
 
 regexp {Free Shapes: ([-0-9.+eE]+)} $xd full FreeShapes
diff --git a/tests/bugs/xde/bug23047_2 b/tests/bugs/xde/bug23047_2
index ee06109a15..7fdbb5181e 100755
--- a/tests/bugs/xde/bug23047_2
+++ b/tests/bugs/xde/bug23047_2
@@ -18,8 +18,6 @@ ttranslate b 1 0 0
 XAddShape D b
 XRemoveShape D 0:1:1:1 1
 
-QARebuild Xdump
-
 set xd [Xdump D]
 
 
diff --git a/tests/de/parse.rules b/tests/de/parse.rules
index 8c15e30e07..4ac2e98cd5 100644
--- a/tests/de/parse.rules
+++ b/tests/de/parse.rules
@@ -1,11 +1,12 @@
 FAILED /\bFaulty\b/ error
 IGNORE /Error on Record/ message during loading file
 IGNORE /Software error/ message in tpstat
-IGNORE /Syntax error/ message if data c
+IGNORE /Syntax error/ message in data c
 IGNORE /Transfer error/ message in tpstat
 IGNORE /Operator FixShape failed with exception/ message during reading
 IGNORE /Error on writing file/ message during writing file
 IGNORE /StepFile Error/ message during loading step file
 IGNORE /StepToTopoDS, GeometricSet/exception
 IGNORE /OSD_Exception_ACCESS_VIOLATION/ exception during reading step
-IGNORE /Exception Raised while reading Step File/ exception during reading step file
\ No newline at end of file
+IGNORE /Exception Raised while reading Step File/ exception during reading step file
+IGNORE /Warning: ShapeFix_.* Exception/ internal exceptions caught by FixShape
\ No newline at end of file
diff --git a/tests/parse.rules b/tests/parse.rules
index d6db1e4cd5..5c4a69dc8b 100644
--- a/tests/parse.rules
+++ b/tests/parse.rules
@@ -1,4 +1,6 @@
 SKIPPED /Tcl Exception: .*[fF]ile .* could not be found/ data file is missing
 IGNORE /Tcl Exception: [*][*] Exception [*][*]/ duplicate report on exception on Tcl level
+IGNORE /BRepCheck Wire: Closed2d/ Debug output of checkshape
 FAILED /\b[Ee]xception\b/ exception
 FAILED /\b[Ee][Rr][Rr][Oo][Rr]\b/ error
+FAILED /Process killed by CPU limit/ Killed by CPU limit
diff --git a/tests/thrusection/parse.rules b/tests/thrusection/parse.rules
index 610d206403..54f97c2a3c 100644
--- a/tests/thrusection/parse.rules
+++ b/tests/thrusection/parse.rules
@@ -1 +1,2 @@
 FAILED /\bFaulty\b/ bad shape
+IGNORE /Error 3d = [0-9.]+/ debug dump of approximator
-- 
2.20.1