narrow and narrow_unsafe methods added

This commit is contained in:
Matej Sekoranja
2014-08-31 23:29:45 +02:00
parent f1aca7e20f
commit 89396a7455
18 changed files with 383 additions and 6 deletions

View File

@ -147,10 +147,42 @@ static void test()
}
void test_narrow()
{
testDiag("test_narrow");
NTMultiChannelPtr nullPtr = NTMultiChannel::narrow(PVStructurePtr());
testOk(nullPtr.get() == 0, "nullptr narrow");
nullPtr = NTMultiChannel::narrow(
getPVDataCreate()->createPVStructure(
NTField::get()->createTimeStamp()
)
);
testOk(nullPtr.get() == 0, "wrong type narrow");
NTMultiChannelBuilderPtr builder = NTMultiChannel::createBuilder();
testOk(builder.get() != 0, "Got builder");
PVStructurePtr pvStructure = builder->
createPVStructure();
testOk1(pvStructure.get() != 0);
if (!pvStructure)
return;
NTMultiChannelPtr ptr = NTMultiChannel::narrow(pvStructure);
testOk(ptr.get() != 0, "narrow OK");
ptr = NTMultiChannel::narrow_unsafe(pvStructure);
testOk(ptr.get() != 0, "narrow_unsafe OK");
}
MAIN(testCreateRequest)
{
testPlan(18);
testPlan(24);
test();
test_narrow();
return testDone();
}

View File

@ -171,10 +171,44 @@ void test_ntnameValue()
}
void test_narrow()
{
testDiag("test_narrow");
NTNameValuePtr nullPtr = NTNameValue::narrow(PVStructurePtr());
testOk(nullPtr.get() == 0, "nullptr narrow");
nullPtr = NTNameValue::narrow(
getPVDataCreate()->createPVStructure(
NTField::get()->createTimeStamp()
)
);
testOk(nullPtr.get() == 0, "wrong type narrow");
NTNameValueBuilderPtr builder = NTNameValue::createBuilder();
testOk(builder.get() != 0, "Got builder");
PVStructurePtr pvStructure = builder->
value(pvString)->
createPVStructure();
testOk1(pvStructure.get() != 0);
if (!pvStructure)
return;
NTNameValuePtr ptr = NTNameValue::narrow(pvStructure);
testOk(ptr.get() != 0, "narrow OK");
ptr = NTNameValue::narrow_unsafe(pvStructure);
testOk(ptr.get() != 0, "narrow_unsafe OK");
}
MAIN(testNTNameValue) {
testPlan(31);
testPlan(37);
test_builder();
test_ntnameValue();
test_narrow();
return testDone();
}

View File

@ -48,9 +48,42 @@ void test_builder()
}
void test_narrow()
{
testDiag("test_narrow");
NTNDArrayPtr nullPtr = NTNDArray::narrow(PVStructurePtr());
testOk(nullPtr.get() == 0, "nullptr narrow");
nullPtr = NTNDArray::narrow(
getPVDataCreate()->createPVStructure(
NTField::get()->createTimeStamp()
)
);
testOk(nullPtr.get() == 0, "wrong type narrow");
NTNDArrayBuilderPtr builder = NTNDArray::createBuilder();
testOk(builder.get() != 0, "Got builder");
PVStructurePtr pvStructure = builder->
createPVStructure();
testOk1(pvStructure.get() != 0);
if (!pvStructure)
return;
NTNDArrayPtr ptr = NTNDArray::narrow(pvStructure);
testOk(ptr.get() != 0, "narrow OK");
ptr = NTNDArray::narrow_unsafe(pvStructure);
testOk(ptr.get() != 0, "narrow_unsafe OK");
}
MAIN(testNTNDArray) {
testPlan(16);
testPlan(22);
test_builder();
test_narrow();
return testDone();
}

View File

@ -196,10 +196,44 @@ void test_ntscalarArray()
}
void test_narrow()
{
testDiag("test_narrow");
NTScalarArrayPtr nullPtr = NTScalarArray::narrow(PVStructurePtr());
testOk(nullPtr.get() == 0, "nullptr narrow");
nullPtr = NTScalarArray::narrow(
getPVDataCreate()->createPVStructure(
NTField::get()->createTimeStamp()
)
);
testOk(nullPtr.get() == 0, "wrong type narrow");
NTScalarArrayBuilderPtr builder = NTScalarArray::createBuilder();
testOk(builder.get() != 0, "Got builder");
PVStructurePtr pvStructure = builder->
arrayValue(pvDouble)->
createPVStructure();
testOk1(pvStructure.get() != 0);
if (!pvStructure)
return;
NTScalarArrayPtr ptr = NTScalarArray::narrow(pvStructure);
testOk(ptr.get() != 0, "narrow OK");
ptr = NTScalarArray::narrow_unsafe(pvStructure);
testOk(ptr.get() != 0, "narrow_unsafe OK");
}
MAIN(testNTScalarArray) {
testPlan(31);
testPlan(37);
test_builder();
test_ntscalarArray();
test_narrow();
return testDone();
}

View File

@ -186,10 +186,43 @@ void test_ntscalar()
}
void test_narrow()
{
testDiag("test_narrow");
NTScalarPtr nullPtr = NTScalar::narrow(PVStructurePtr());
testOk(nullPtr.get() == 0, "nullptr narrow");
nullPtr = NTScalar::narrow(
getPVDataCreate()->createPVStructure(
NTField::get()->createTimeStamp()
)
);
testOk(nullPtr.get() == 0, "wrong type narrow");
NTScalarBuilderPtr builder = NTScalar::createBuilder();
testOk(builder.get() != 0, "Got builder");
PVStructurePtr pvStructure = builder->
value(pvDouble)->
createPVStructure();
testOk1(pvStructure.get() != 0);
if (!pvStructure)
return;
NTScalarPtr ptr = NTScalar::narrow(pvStructure);
testOk(ptr.get() != 0, "narrow OK");
ptr = NTScalar::narrow_unsafe(pvStructure);
testOk(ptr.get() != 0, "narrow_unsafe OK");
}
MAIN(testNTScalar) {
testPlan(28);
testPlan(34);
test_builder();
test_ntscalar();
test_narrow();
return testDone();
}

View File

@ -195,11 +195,46 @@ void test_nttable()
}
void test_narrow()
{
testDiag("test_narrow");
NTTablePtr nullPtr = NTTable::narrow(PVStructurePtr());
testOk(nullPtr.get() == 0, "nullptr narrow");
nullPtr = NTTable::narrow(
getPVDataCreate()->createPVStructure(
NTField::get()->createTimeStamp()
)
);
testOk(nullPtr.get() == 0, "wrong type narrow");
NTTableBuilderPtr builder = NTTable::createBuilder();
testOk(builder.get() != 0, "Got builder");
PVStructurePtr pvStructure = builder->
add("column0", pvDouble)->
add("column1", pvString)->
add("column2", pvInt)->
createPVStructure();
testOk1(pvStructure.get() != 0);
if (!pvStructure)
return;
NTTablePtr ptr = NTTable::narrow(pvStructure);
testOk(ptr.get() != 0, "narrow OK");
ptr = NTTable::narrow_unsafe(pvStructure);
testOk(ptr.get() != 0, "narrow_unsafe OK");
}
MAIN(testNTTable) {
testPlan(39);
testPlan(45);
test_builder();
test_labels();
test_nttable();
test_narrow();
return testDone();
}