Result of a quick video conference between mvidner, jreidinger, shundhammer: The goal of this would be to use part of the UI to do a sanity check on terms passed to the UI for building a dialog etc. so it could complain about syntax errors. There is the "dummy UI" that can be used to completely bypass all UI calls, but this is insufficient for those purposes: It simply always returns 'nil' for every call. What is required here is actually using the calls from YCPDialogParser.cc in yast-ycp-ui-bindings so they can check the arguments passed to UI::OpenDialog() and related calls. With the current architecture, however, this requires having a real UI with real concrete widgets (as opposed to abstract widgets on the libyui level) and a real widget factory that instantiates them: The YCPDialogParser is a "recursive descent" parser with code generation in each node of the parsing tree. It calls the respective YWidgetFactory methods for creating a VBox, a HBox, a PushButton as each of those terms is evaluated in the UI dialog description term. As of now, there is no simple way to mock all this since each factory method is required to return the correct pointer type (e.g., a YPushButton * for a PushButton etc.). It's not as simple as having two or three simple widget types that could be used at will; many widgets have pure virtual methods that need to be implemented correctly. Some of them are called in the YCPDialogParser already. This makes it not trivial to create a special TestUI that does little more than allow this kind of parsing and checking without actually creating UI elements: Each of the widget classes described in libyui/YWidgetFactory would have to be implemented at least in principle with implementations for the required pure virtual methods. This can be done, and it's not exactly rocket science, but it is substantial work. And the result would have to be maintained along with the other UIs, of course.