Branch data Line data Source code
1 : : /* SPDX-License-Identifier: LGPL-2.1+ */ 2 : : 3 : : #include "bus-introspect.h" 4 : : #include "log.h" 5 : : #include "tests.h" 6 : : 7 : : #include "test-vtable-data.h" 8 : : 9 : 16 : static void test_manual_introspection(const sd_bus_vtable vtable[]) { 10 : 16 : struct introspect intro = {}; 11 : 16 : _cleanup_free_ char *s = NULL; 12 : : 13 [ + - ]: 16 : log_info("/* %s */", __func__); 14 : : 15 [ - + ]: 16 : assert_se(introspect_begin(&intro, false) >= 0); 16 : : 17 : 16 : fprintf(intro.f, " <interface name=\"org.foo\">\n"); 18 [ - + ]: 16 : assert_se(introspect_write_interface(&intro, vtable) >= 0); 19 : 16 : fputs(" </interface>\n", intro.f); 20 : : 21 [ - + ]: 16 : assert_se(introspect_finish(&intro, &s) == 0); 22 : 16 : fputs(s, stdout); 23 : 16 : fputs("\n", stdout); 24 : 16 : } 25 : : 26 : 4 : int main(int argc, char *argv[]) { 27 : 4 : test_setup_logging(LOG_DEBUG); 28 : : 29 : 4 : test_manual_introspection(test_vtable_1); 30 : 4 : test_manual_introspection(test_vtable_2); 31 : 4 : test_manual_introspection(test_vtable_deprecated); 32 : 4 : test_manual_introspection((const sd_bus_vtable *) vtable_format_221); 33 : : 34 : 4 : return 0; 35 : : }