Add tests for ReleaseResources of fancy arrays
The `ReleaseResources` method should work for all arrays (even if it effectively does not do anything). However, the implementation of `ReleaseResources` is generally to call `Allocate` with 0. Several fancy arrays balk at this because it is resizing a read-only array. There should be an exception for this.
This commit is contained in:
parent
03b814a9a3
commit
a6b9d5c497
@ -343,6 +343,8 @@ private:
|
|||||||
vtkm::cont::ArrayCopy(soaArray, basicArray);
|
vtkm::cont::ArrayCopy(soaArray, basicArray);
|
||||||
VTKM_TEST_ASSERT(basicArray.GetNumberOfValues() == ARRAY_SIZE);
|
VTKM_TEST_ASSERT(basicArray.GetNumberOfValues() == ARRAY_SIZE);
|
||||||
CheckPortal(basicArray.ReadPortal());
|
CheckPortal(basicArray.ReadPortal());
|
||||||
|
|
||||||
|
soaArray.ReleaseResources();
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -453,6 +455,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_c, vtkm::Vec<ValueType, 3>(value)),
|
VTKM_TEST_ASSERT(test_equal(result_c, vtkm::Vec<ValueType, 3>(value)),
|
||||||
"CompositeVector Handle Failed");
|
"CompositeVector Handle Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
composite.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -480,6 +484,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_v, value), "Counting Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, value), "Counting Handle Failed");
|
||||||
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Counting Handle Control Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Counting Handle Control Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constant.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -516,6 +522,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Counting Handle Control Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Counting Handle Control Failed");
|
||||||
component_value = ComponentType(component_value + ComponentType(1));
|
component_value = ComponentType(component_value + ComponentType(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
counting.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -547,6 +555,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Implicit Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Implicit Handle Failed");
|
||||||
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Implicit Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Implicit Handle Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
implicit.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -608,6 +618,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_v, control_value),
|
VTKM_TEST_ASSERT(test_equal(result_v, control_value),
|
||||||
"ArrayHandleConcatenate as Input Failed");
|
"ArrayHandleConcatenate as Input Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
concatenate.ReleaseResources();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -660,6 +672,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Implicit Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Implicit Handle Failed");
|
||||||
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Implicit Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Implicit Handle Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
permutation.ReleaseResources();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -706,6 +720,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Implicit Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Implicit Handle Failed");
|
||||||
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Implicit Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Implicit Handle Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
view.ReleaseResources();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -743,6 +759,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Transform Handle Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "Transform Handle Failed");
|
||||||
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Transform Handle Control Failed");
|
VTKM_TEST_ASSERT(test_equal(result_v, control_value), "Transform Handle Control Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
transformed.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -823,6 +841,8 @@ private:
|
|||||||
"Transform Counting Handle Control Failed");
|
"Transform Counting Handle Control Failed");
|
||||||
component_value = ComponentType(component_value + ComponentType(1));
|
component_value = ComponentType(component_value + ComponentType(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
countingTransformed.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -850,6 +870,8 @@ private:
|
|||||||
VTKM_TEST_ASSERT(resultPortal.Get(i) == static_cast<CastToType>(inputPortal.Get(i)),
|
VTKM_TEST_ASSERT(resultPortal.Get(i) == static_cast<CastToType>(inputPortal.Get(i)),
|
||||||
"Casting ArrayHandle Failed");
|
"Casting ArrayHandle Failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
castArray.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -904,6 +926,8 @@ private:
|
|||||||
// verify results
|
// verify results
|
||||||
VTKM_TEST_ASSERT(test_equal_portals(result.ReadPortal(), input.ReadPortal()),
|
VTKM_TEST_ASSERT(test_equal_portals(result.ReadPortal(), input.ReadPortal()),
|
||||||
"CastingArrayHandle failed");
|
"CastingArrayHandle failed");
|
||||||
|
|
||||||
|
multiplexArray.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -971,6 +995,8 @@ private:
|
|||||||
totalIndex++;
|
totalIndex++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
groupArray.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1067,11 +1093,14 @@ private:
|
|||||||
|
|
||||||
vtkm::cont::ArrayHandle<vtkm::Id> dummyArray;
|
vtkm::cont::ArrayHandle<vtkm::Id> dummyArray;
|
||||||
|
|
||||||
|
auto groupVecArray = vtkm::cont::make_ArrayHandleGroupVecVariable(sourceArray, offsetsArray);
|
||||||
|
|
||||||
vtkm::worklet::DispatcherMapField<GroupVariableInputWorklet> dispatcher;
|
vtkm::worklet::DispatcherMapField<GroupVariableInputWorklet> dispatcher;
|
||||||
dispatcher.Invoke(vtkm::cont::make_ArrayHandleGroupVecVariable(sourceArray, offsetsArray),
|
dispatcher.Invoke(groupVecArray, dummyArray);
|
||||||
dummyArray);
|
|
||||||
|
|
||||||
dummyArray.ReadPortal();
|
dummyArray.ReadPortal();
|
||||||
|
|
||||||
|
groupVecArray.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1164,6 +1193,8 @@ private:
|
|||||||
ValueType(static_cast<ValueComponentType>(i)));
|
ValueType(static_cast<ValueComponentType>(i)));
|
||||||
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "ArrayHandleZip Failed as input");
|
VTKM_TEST_ASSERT(test_equal(result_v, correct_value), "ArrayHandleZip Failed as input");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
zip.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -1187,6 +1218,8 @@ private:
|
|||||||
|
|
||||||
// No output to verify since none is stored in memory. Just checking that
|
// No output to verify since none is stored in memory. Just checking that
|
||||||
// this compiles/runs without errors.
|
// this compiles/runs without errors.
|
||||||
|
|
||||||
|
discard.ReleaseResources();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user