fix bug in renameField; Add check for zero length fieldNames in Structure.
This commit is contained in:
@@ -66,18 +66,18 @@ static void checkNameAndParent(
|
||||
|
||||
static void testAppendSimple(FILE * fd)
|
||||
{
|
||||
printf("\ntestAppendSimple\n");
|
||||
fprintf(fd,"\ntestAppendSimple\n");
|
||||
PVFieldPtrArray fields;
|
||||
StringArray names;
|
||||
PVStructurePtr pvParent = pvDataCreate->createPVStructure(names,fields);
|
||||
PVStringPtr pvStringField = static_pointer_cast<PVString>(
|
||||
pvDataCreate->createPVScalar(pvString));
|
||||
pvStringField->put(String("value,timeStamp"));
|
||||
pvStringField->put("value,timeStamp");
|
||||
PVFieldPtr pvField = pvStringField;
|
||||
pvParent->appendPVField("fieldlist",pvField);
|
||||
pvStringField = static_pointer_cast<PVString>(
|
||||
pvDataCreate->createPVScalar(pvString));
|
||||
pvStringField->put(String("junk"));
|
||||
pvStringField->put("junk");
|
||||
pvField = pvStringField;
|
||||
pvParent->appendPVField("extra",pvField);
|
||||
builder.clear();
|
||||
@@ -87,7 +87,7 @@ static void testAppendSimple(FILE * fd)
|
||||
|
||||
static void testAppendMore(FILE * fd)
|
||||
{
|
||||
printf("\ntestAppendMore\n");
|
||||
fprintf(fd,"\ntestAppendMore\n");
|
||||
PVFieldPtrArray fields;
|
||||
StringArray names;
|
||||
PVStructurePtr pvStructure = pvDataCreate->createPVStructure(names,fields);
|
||||
@@ -135,7 +135,7 @@ static void append2(PVStructurePtr &pvStructure,
|
||||
}
|
||||
static void testAppends(FILE * fd)
|
||||
{
|
||||
printf("\ntestAppends\n");
|
||||
fprintf(fd,"\ntestAppends\n");
|
||||
PVFieldPtrArray emptyPVFields;
|
||||
StringArray emptyNames;
|
||||
PVFieldPtrArray pvFields;
|
||||
|
||||
@@ -89,12 +89,13 @@ static void testPVScalarWithProperties(
|
||||
{
|
||||
PVStructurePtr pvStructure;
|
||||
bool hasValueAlarm = false;
|
||||
bool hasBooleanAlarm = false;
|
||||
bool hasDisplayControl = false;
|
||||
switch(stype) {
|
||||
case pvBoolean: {
|
||||
pvStructure = standardPVField->scalar(
|
||||
stype,alarmTimeStampValueAlarm);
|
||||
hasValueAlarm = true;
|
||||
hasBooleanAlarm = true;
|
||||
PVBooleanPtr pvField = pvStructure->getBooleanField("value");
|
||||
pvField->put(true);
|
||||
break;
|
||||
@@ -245,7 +246,13 @@ static void testPVScalarWithProperties(
|
||||
String("control.limitHigh"));
|
||||
assert(limit!=0);
|
||||
limit->put(9.0);
|
||||
}
|
||||
if(hasValueAlarm) {
|
||||
PVFieldPtr pvField = pvStructure->getSubField(
|
||||
String("valueAlarm.active"));
|
||||
PVBooleanPtr pvBoolean = static_pointer_cast<PVBoolean>(pvField);
|
||||
pvBoolean->put(true);
|
||||
pvField = pvStructure->getSubField(
|
||||
String("valueAlarm.lowAlarmLimit"));
|
||||
PVScalarPtr pvtemp = static_pointer_cast<PVScalar>(pvField);
|
||||
assert(pvtemp.get()!=0);
|
||||
@@ -268,6 +275,24 @@ static void testPVScalarWithProperties(
|
||||
assert(active!=0);
|
||||
active->put(true);
|
||||
}
|
||||
if(hasBooleanAlarm) {
|
||||
PVFieldPtr pvField = pvStructure->getSubField(
|
||||
String("valueAlarm.active"));
|
||||
PVBooleanPtr pvBoolean = static_pointer_cast<PVBoolean>(pvField);
|
||||
pvBoolean->put(true);
|
||||
severity = pvStructure->getIntField(
|
||||
String("valueAlarm.falseSeverity"));
|
||||
assert(severity!=0);
|
||||
severity->put(0);
|
||||
severity = pvStructure->getIntField(
|
||||
String("valueAlarm.trueSeverity"));
|
||||
assert(severity!=0);
|
||||
severity->put(2);
|
||||
severity = pvStructure->getIntField(
|
||||
String("valueAlarm.changeStateSeverity"));
|
||||
assert(severity!=0);
|
||||
severity->put(1);
|
||||
}
|
||||
builder.clear();
|
||||
pvStructure->toString(&builder);
|
||||
fprintf(fd,"%s\n",builder.c_str());
|
||||
|
||||
Reference in New Issue
Block a user