| #include <config.h> |
| #include "test-utils.h" |
| |
| #include "dbus/dbus-macros.h" |
| #include "dbus/dbus-sysdeps.h" |
| |
| static void oom (const char *doing) _DBUS_GNUC_NORETURN; |
| static void die (const char *message) _DBUS_GNUC_NORETURN; |
| |
| void |
| oom (const char *doing) |
| { |
| fprintf (stderr, "*** manual-dir-iter: OOM while %s\n", doing); |
| exit (1); |
| } |
| |
| void |
| die (const char *message) |
| { |
| fprintf (stderr, "*** manual-dir-iter: %s\n", message); |
| exit (1); |
| } |
| |
| static void |
| debug (const char *message) |
| { |
| fprintf (stdout, "+++ manual-dir-iter: %s\n", message); |
| } |
| |
| int |
| main (int argc, |
| char **argv) |
| { |
| DBusString filename; |
| DBusString dirname; |
| DBusError tmp_error; |
| DBusDirIter *dir; |
| |
| if (argc != 2) |
| die ("syntax: manual-dir-iter <path>"); |
| |
| dbus_error_init (&tmp_error); |
| |
| if (!_dbus_string_init (&filename)) |
| oom ("init filename"); |
| |
| if (!_dbus_string_init (&dirname)) |
| oom ("init dirname"); |
| |
| _dbus_string_append (&dirname, argv[1]); |
| dir = _dbus_directory_open (&dirname, &tmp_error); |
| |
| if (dir == NULL) |
| { |
| fprintf (stderr, "could not open directory: %s: %s\n", |
| tmp_error.name, tmp_error.message); |
| exit(1); |
| } |
| |
| while (_dbus_directory_get_next_file (dir, &filename, &tmp_error)) |
| { |
| DBusString full_path; |
| if (!_dbus_string_init (&full_path)) |
| { |
| oom ("init full_path"); |
| } |
| |
| if (!_dbus_string_copy (&dirname, 0, &full_path, 0)) |
| { |
| oom ("copying full_path to dirname"); |
| } |
| |
| if (!_dbus_concat_dir_and_file (&full_path, &filename)) |
| { |
| oom ("concat full_path"); |
| } |
| debug (_dbus_string_get_const_data (&filename)); |
| _dbus_string_free (&full_path); |
| } |
| |
| if (dbus_error_is_set (&tmp_error)) |
| die (tmp_error.message); |
| |
| _dbus_string_free (&filename); |
| |
| if (dir) |
| _dbus_directory_close (dir); |
| |
| _dbus_verbose ("*** Test dir name exiting\n"); |
| |
| return 0; |
| } |