CORRADE_ASSERT(&mesh._original.get()==original,"GL::AbstractShaderProgram::draw(): all meshes must be views of the same original mesh",);
constMesh*original=&*meshes.front()->_original;
for(std::size_ti=0;i!=meshes.size();++i)
CORRADE_ASSERT(&*meshes[i]->_original==original,"GL::AbstractShaderProgram::draw(): all meshes must be views of the same original mesh, expected"<<original<<"but got"<<&*meshes[i]->_original<<"at index"<<i,);
CORRADE_SKIP("CORRADE_NO_ASSERT defined, can't test assertions");
#endif
Mesha,b;
MeshViewviewA{a},viewB{b};
std::ostringstreamout;
ErrorredirectError{&out};
MultipleShader{}.draw({viewA,viewB});
CORRADE_COMPARE(out.str(),Utility::formatString("GL::AbstractShaderProgram::draw(): all meshes must be views of the same original mesh, expected 0x{:x} but got 0x{:x} at index 1\n",reinterpret_cast<std::uintptr_t>(&a),reinterpret_cast<std::uintptr_t>(&b)));