diff --git a/testApp/pv/testPVScalarArray.cpp b/testApp/pv/testPVScalarArray.cpp index 67cbd6e..54f3fb8 100644 --- a/testApp/pv/testPVScalarArray.cpp +++ b/testApp/pv/testPVScalarArray.cpp @@ -102,6 +102,13 @@ static void testBasic() arr1->replace(data); testOk1(!data.unique()); + { + typename PVT::const_svector avoid; + arr1->PVScalarArray::getAs<(ScalarType)ScalarTypeID::value>(avoid); + testOk1(avoid.data()==data.data()); + testOk1(avoid.data()==arr1->view().data()); + } + testOk1(arr1->getLength()==data.size()); testOk1(*arr1!=*arr2); @@ -121,15 +128,18 @@ static void testBasic() testOk1(arr2->getLength()==0); testOk1(data.size()==arr1->getLength()); - PVIntArray::svector idata; + PVIntArray::const_svector idata; arr1->PVScalarArray::getAs(idata); - testOk1(idata[1]==10); + testOk1(idata.at(1)==10); - idata.make_unique(); - idata[1] = 42; + PVIntArray::svector wdata(const_shared_vector_cast(idata)); + idata.clear(); + wdata.make_unique(); - arr1->PVScalarArray::putFrom(idata); + wdata.at(1) = 42; + + arr1->PVScalarArray::putFrom(wdata); testOk1(castUnsafe(arr1->view()[1])==42); } @@ -152,21 +162,22 @@ static void testShare() testOk1(!idata.unique()); idata.clear(); + PVIntArray::const_svector cdata; - sarr->PVScalarArray::getAs(idata); // copy and convert + sarr->PVScalarArray::getAs(cdata); // copy and convert - testOk1(idata.unique()); + testOk1(cdata.unique()); - iarr->PVScalarArray::getAs(idata); // take a reference + iarr->PVScalarArray::getAs(cdata); // take a reference - testOk1(!idata.unique()); + testOk1(!cdata.unique()); } } // end namespace MAIN(testPVScalarArray) { - testPlan(146); + testPlan(156); testFactory(); testBasic(); testBasic();