For what it's worth, the original reason geometry shaders and input layouts don't have a GetDevice() implementation was that it was a bit harder to add test coverage for them than for the rest of the interfaces. It's probably easy enough now, so please add some geometry shader coverage to test_create_shader(). You can probably use the shader from test_clear_state().