1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-09 18:50:54 +03:00

0027169: Suspitious behavior of importing names during STEP import

In order to avoid using empty strings in the names of the assemblies in the XCAF document after reading step file for cases when description or name is defined by only 1 space character method TCollection_AsciiString::Length()
was replaced on the method TCollection_AsciiString::UsefullLength().

Test case for issue CR27169

Eliminating warning
This commit is contained in:
gka 2016-05-10 20:02:50 +03:00 committed by bugmaster
parent 3d370858dd
commit 0911d065ff
2 changed files with 52 additions and 4 deletions
src/STEPCAFControl
tests/bugs/xde

@ -1164,8 +1164,8 @@ Standard_Boolean STEPCAFControl_Reader::ReadNames (const Handle(XSControl_WorkSe
Handle(StepBasic_ProductDefinitionRelationship) PDR = PDS->Definition().ProductDefinitionRelationship();
if ( PDR.IsNull() ) continue;
if ( PDR->HasDescription() &&
PDR->Description()->Length() >0 ) name = PDR->Description();
else if ( !PDR->Name().IsNull() && PDR->Name()->Length() >0 ) name = PDR->Name();
PDR->Description()->UsefullLength() >0 ) name = PDR->Description();
else if ( !PDR->Name().IsNull() && PDR->Name()->UsefullLength() >0 ) name = PDR->Name();
else if ( !PDR->Id().IsNull()) name = PDR->Id();
else name = new TCollection_HAsciiString;
}
@ -2861,8 +2861,9 @@ static TDF_Label createGDTObjectInXCAF(const Handle(Standard_Transient)& theEnt,
else
{
if(aGISU.IsNull()) continue;
for (Standard_Integer i = 1; i <= aGISU->NbIdentifiedItem(); i++) {
aSeqRI.Append(aGISU->IdentifiedItemValue(i));
Standard_Integer j =1;
for ( ; j <= aGISU->NbIdentifiedItem(); j++) {
aSeqRI.Append(aGISU->IdentifiedItemValue(j));
}
}
}

47
tests/bugs/xde/bug27169 Normal file

@ -0,0 +1,47 @@
puts "=========="
puts "OCC27169"
puts "=========="
puts ""
########################################################################
# Suspitious behavior of importing names during STEP import
########################################################################
pload DCAF
ReadStep D [locate_data_file bug27169_robot01.step]
set label_1 0:1:1:1:1
set label_2 0:1:1:1:2
set label_3 0:1:1:1:3
set label_4 0:1:1:1:4
set Name_1 [GetName D ${label_1}]
set Name_2 [GetName D ${label_2}]
set Name_3 [GetName D ${label_3}]
set Name_4 [GetName D ${label_4}]
puts "Name_1='${Name_1}'"
puts "Name_2='${Name_2}'"
puts "Name_3='${Name_3}'"
puts "Name_4='${Name_4}'"
if (![regexp {NAUO1} ${Name_1}]) {
puts "Error: Name of entitie ${label_1} is bad"
} else {
puts "OK: Name of entitie ${label_1} is good"
}
if (![regexp {NAUO2} ${Name_2}]) {
puts "Error: Name of entitie ${label_2} is bad"
} else {
puts "OK: Name of entitie ${label_2} is good"
}
if (![regexp {NAUO3} ${Name_3}]) {
puts "Error: Name of entitie ${label_3} is bad"
} else {
puts "OK: Name of entitie ${label_3} is good"
}
if (![regexp {NAUO4} ${Name_4}]) {
puts "Error: Name of entitie ${label_4} is bad"
} else {
puts "OK: Name of entitie ${label_4} is good"
}