1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-10 18:51:21 +03:00

0023550: Variable imagedir is not defined in interactive run of tests

When test is run interactively, imagedir is set to temporary directory (search order: environment variables TempDir, Temp, Tmp, upper and lower case, in  this order, then $HOME/tmp)
Update testing case with imagedir variable
This commit is contained in:
abv 2012-12-07 13:44:58 +04:00
parent aff395a36d
commit 60874ff8b6
3 changed files with 60 additions and 26 deletions

View File

@ -478,7 +478,7 @@ help testdiff {
Where dir1 and dir2 are directories containing logs of two test runs. Where dir1 and dir2 are directories containing logs of two test runs.
Allowed options are: Allowed options are:
-save filename: save resulting log in specified file (default name is -save filename: save resulting log in specified file (default name is
\$dir1/diff-\$dir2.log); HTML log is saved with same name <dir1>/diff-<dir2>.log); HTML log is saved with same name
and extension .html and extension .html
-status {same|ok|all}: filter cases for comparing by their status: -status {same|ok|all}: filter cases for comparing by their status:
same - only cases with same status are compared (default) same - only cases with same status are compared (default)
@ -574,7 +574,7 @@ help testfile {
Unless the file is already in the repository, tries to load it, reports Unless the file is already in the repository, tries to load it, reports
the recognized file format, file size, number of faces and edges in the the recognized file format, file size, number of faces and edges in the
loaded shape (if any), and makes snapshot (in the subdirectory tmp). loaded shape (if any), and makes snapshot (in the temporary directory).
Finally it advises whether the file should be put to public section of the Finally it advises whether the file should be put to public section of the
repository. repository.
} }
@ -702,18 +702,19 @@ proc testfile {filelist} {
# add stats # add stats
puts "$file: $format size=[expr $size / 1024] KiB, nbfaces=$faces, nbedges=$edges -> $dir" puts "$file: $format size=[expr $size / 1024] KiB, nbfaces=$faces, nbedges=$edges -> $dir"
file mkdir tmp/$dir set tmpdir [_get_temp_dir]
file mkdir $tmpdir/$dir
# make snapshot # make snapshot
pload AISV pload AISV
uplevel vdisplay a uplevel vdisplay a
uplevel vfit uplevel vfit
uplevel vzfit uplevel vzfit
uplevel vdump tmp/$dir/[file rootname [file tail $file]].png uplevel vdump $tmpdir/$dir/[file rootname [file tail $file]].png
set has_images t set has_images t
} }
if { $has_images } { if { $has_images } {
puts "Snapshots are saved in subdirectory tmp" puts "Snapshots are saved in subdirectory [_get_temp_dir]"
} }
} }
@ -879,10 +880,18 @@ proc _run_test {scriptsdir group gridname casefile echo} {
# evaluate test case # evaluate test case
if [catch { if [catch {
# set variables identifying test case
uplevel set casename [file tail $casefile] uplevel set casename [file tail $casefile]
uplevel set groupname $group uplevel set groupname $group
uplevel set gridname $gridname uplevel set gridname $gridname
# set variables for saving of images if not yet set
if { ! [uplevel info exists imagedir] } {
uplevel set imagedir [_get_temp_dir]
uplevel set test_image \$casename
}
# execute test scripts
if { [file exists $scriptsdir/$group/begin] } { if { [file exists $scriptsdir/$group/begin] } {
puts "Executing $scriptsdir/$group/begin..."; flush stdout puts "Executing $scriptsdir/$group/begin..."; flush stdout
uplevel source $scriptsdir/$group/begin uplevel source $scriptsdir/$group/begin
@ -1879,3 +1888,43 @@ proc load_data_file {file format shape} {
default { error "Cannot read $format file $file" } default { error "Cannot read $format file $file" }
} }
} }
# procedure to get name of temporary directory,
# ensuring it is existing and writeable
proc _get_temp_dir {} {
global env
# check typical environment variables
foreach var {TempDir Temp Tmp} {
# check different case
foreach name [list [string toupper $var] $var [string tolower $var]] {
if { [info exists env($name)] && [file isdirectory $env($name)] &&
[file writable $env($name)] } {
return [regsub -all {\\} $env($name) /]
}
}
}
# check platform-specific locations
set fallback tmp
if { "$tcl_platform(platform)" == "windows" } {
set paths "c:/TEMP c:/TMP /TEMP /TMP"
if { [info exists env(HOMEDRIVE)] && [info exists env(HOMEPATH)] } {
set fallback [regsub -all {\\} "$env(HOMEDRIVE)$(HOMEPATH)/tmp" /]
}
} else {
set paths "/tmp /var/tmp /usr/tmp"
if { [info exists env(HOME)] } {
set fallback "$env(HOME)/tmp"
}
}
foreach dir $paths {
if { [file isdirectory $dir] && [file iswritable $dir] } {
return $dir
}
}
# fallback case: use subdir /tmp of home or current dir
file mkdir $fallback
return $fallback
}

View File

@ -11,21 +11,11 @@ if {[array get env os_type] != ""} {
set os $env(os_type) set os $env(os_type)
} }
if { [string compare $os "windows"] == 0 } { set aFile $imagedir/bug23193_sample.stl
set aFile C:/temp/bug23193_sample.stl
} else {
set aFile /tmp/bug23193_sample.stl
}
file delete ${aFile}
if { [file exists ${aFile}] } {
puts "Error : There is old ${aFile} file"
}
vinit vinit
stepread [locate_data_file bug23193_sample.stp] a * stepread [locate_data_file bug23193_sample.stp] a *
writestl a_1 ${aFile} 0 writestl a_1 ${aFile} 0
catch {exec chmod 777 ${aFile}}
meshfromstl m1 ${aFile} meshfromstl m1 ${aFile}
meshcolors m1 elem2 1 meshcolors m1 elem2 1

View File

@ -17,17 +17,12 @@ regexp {Total number of labels for shapes in the document += +([-0-9.+eE]+)} $in
regexp {Number of labels with name += +([-0-9.+eE]+)} $info1 full nbname regexp {Number of labels with name += +([-0-9.+eE]+)} $info1 full nbname
param write.stepcaf.subshapes.name 1 param write.stepcaf.subshapes.name 1
if { [string compare $os "windows"] == 0 } {
WriteStep doc C:/temp/doc_subshapes.stp WriteStep doc $imagedir/doc_subshapes.stp
} else {
WriteStep doc /tmp/doc_subshapes.stp
}
param read.stepcaf.subshapes.name 1 param read.stepcaf.subshapes.name 1
if { [string compare $os "windows"] == 0 } {
ReadStep after_doc C:/temp/doc_subshapes.stp ReadStep after_doc $imagedir/doc_subshapes.stp
} else {
ReadStep after_doc /tmp/doc_subshapes.stp
}
set info2 [XStat after_doc] set info2 [XStat after_doc]
regexp {level N 0 +: +([-0-9.+eE]+)} $info2 full l0_1 regexp {level N 0 +: +([-0-9.+eE]+)} $info2 full l0_1