add some tests for C/CXX11 bindings for IO/Engine
Created by: germasch
This tests IO::Open, Engine::Name, Engine::Type, IO::EngineType, using both CXX11 and C bindings.
The C bindings tests are somewhat incomplete, as two CXX11 functions are missing, so I left those out.
In the last two commits (so they can be dropped if needed), I added CXX11 and C API functions for core::IO::GetEngine
, which allows to get a handle to an existing Engine by name. There's no chance anything gets broken because these are additions, but there is of course a valid question as to whether those are needed. I'm generally not much of a fan for recovering handles by name where one could have just saved the handle, but ADIOS2 generally allows to replace the name for a handle in many places, I suppose a a convenience in particular for people using the Fortran interface. If this gets merged, I'd follow up with a Fortran binding for GetEngine, which is really the main purpose of it all.
FWIW, the XGC code's interface with ADIOS2 (which I don't understand too well yet), maintains its own list of adios2_engines, parallel to the one that's kept in core::IO which arguably is a bit of a hassle.