Archived
1
0
Fork 0
This repository has been archived on 2026-05-10. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
archived/test/t_path.c
2010-12-22 14:51:26 +01:00

114 lines
2.6 KiB
C

#include <malloc.h>
#include <stdio.h>
#include <stdlib.h>
#include "unit.h"
#include "../src/path.h"
void test_normalize() {
char *ptr;
ptr = path_normalize("usr/", "include/", 0);
assert(ptr == NULL);
ptr = path_normalize("/usr/src/", "linux", 0);
assert_string(ptr, "/usr/src/linux");
free(ptr);
ptr = path_normalize("/segment1///segment2//", "segment3", 1);
assert_string(ptr, "/segment1/segment2/segment3/");
free(ptr);
ptr = path_normalize("/stuff/with/ahell/lot/of/slashes/at/the///", "end", 1);
assert_string(ptr, "/stuff/with/ahell/lot/of/slashes/at/the/end/");
free(ptr);
ptr = path_normalize("~", NULL, 0);
printf("HOME EXPAND: %s\n", ptr);
free(ptr);
ptr = path_normalize("~/sub", "file", 0);
printf("HOME EXPAND2: %s\n", ptr);
free(ptr);
ptr = path_normalize("/mnt/cdrom", "keff", 0);
assert_string(ptr, "/mnt/cdrom/keff");
free(ptr);
}
void test_isabspath() {
assert(is_abspath("file") == 0);
assert(is_abspath("./file") == 0);
assert(is_abspath(".file") == 0);
assert(is_abspath("..file") == 0);
assert(is_abspath("/../relpath") == 0);
assert(is_abspath("/path/to/file") == 1);
assert(is_abspath("/ab/xy/.file") == 1);
assert(is_abspath("/ab/xy/..file") == 1);
assert(is_abspath("/ab/.xy/file") == 1);
assert(is_abspath("/ab/..xy/file") ==1);
}
void test_isdir() {
assert(is_dir("t_path.c") == 0);
assert(is_dir("../src") == 1);
assert(is_dir("/") == 1);
}
void test_basename() {
int i;
char data[11][2][64] = {
{ "", "." },
{ "/", "/" },
{ "///", "/" },
{ ".", "."},
{ "..", ".." },
{ "../../rel1", "rel1" },
{ "./rel2", "rel2" },
{ "justsomestring", "justsomestring" },
{ "/usr/src/", "src" },
{ "/usr/src///", "src" },
{ "/usr/src/linux-2.6.30-r5/drivers", "drivers" }
};
for(i=0; i < 11; i++)
assert_string(basename(data[i][0]), data[i][1]);
}
void test_dirname() {
int i;
char data[11][2][64] = {
{ "", "." },
{ "/", "/" },
{ "///", "/" },
{ ".", "."},
{ "..", "." },
{ "../../rel", "../.." },
{ "./rel", "." },
{ "justsomestring", "." },
{ "/usr/src/", "/usr" },
{ "/usr/src///", "/usr" },
{ "/usr/src/linux-2.6.30-r5/drivers", "/usr/src/linux-2.6.30-r5" }
};
for(i=0; i < 11; i++)
assert_string(dirname(data[i][0]), data[i][1]);
}
int main(int argc, char *argv[]) {
test_isabspath();
test_isdir();
test_normalize();
test_basename();
test_dirname();
return 0;
}