1570af302Sopenharmony_ci#include <stdlib.h> 2570af302Sopenharmony_ci#include <string.h> 3570af302Sopenharmony_ci#include <libgen.h> 4570af302Sopenharmony_ci#include "test.h" 5570af302Sopenharmony_ci 6570af302Sopenharmony_ci#define T(path, want) \ 7570af302Sopenharmony_ci{ \ 8570af302Sopenharmony_ci char tmp[100]; \ 9570af302Sopenharmony_ci char *got = dirname(strcpy(tmp, path)); \ 10570af302Sopenharmony_ci if (strcmp(want, got) != 0) \ 11570af302Sopenharmony_ci t_error("dirname(\"%s\") got \"%s\" want \"%s\"\n", path, got, want); \ 12570af302Sopenharmony_ci} 13570af302Sopenharmony_ci 14570af302Sopenharmony_ciint main() 15570af302Sopenharmony_ci{ 16570af302Sopenharmony_ci if (strcmp(dirname(0), ".") != 0) 17570af302Sopenharmony_ci t_error("dirname(0) returned \"%s\"; expected \".\"\n", dirname(0)); 18570af302Sopenharmony_ci T("", "."); 19570af302Sopenharmony_ci T("/usr/lib", "/usr"); 20570af302Sopenharmony_ci T("/usr/", "/"); 21570af302Sopenharmony_ci T("usr", "."); 22570af302Sopenharmony_ci T("usr/", "."); 23570af302Sopenharmony_ci T("/", "/"); 24570af302Sopenharmony_ci T("///", "/"); 25570af302Sopenharmony_ci T(".", "."); 26570af302Sopenharmony_ci T("..", "."); 27570af302Sopenharmony_ci return t_status; 28570af302Sopenharmony_ci} 29