X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=direct%2Fbasic-test%2Fdtest.c;h=8fb9abd0a136ed555b277065284d9eadbb77c112;hb=refs%2Fheads%2Fcase-insensitive;hp=0a54bd42b847677be1690c27236fcd4ec5fe8bb0;hpb=dd11c8153f7abaa9d567fe8cbea139b7f251edb5;p=yaffs2.git diff --git a/direct/basic-test/dtest.c b/direct/basic-test/dtest.c index 0a54bd4..8fb9abd 100644 --- a/direct/basic-test/dtest.c +++ b/direct/basic-test/dtest.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "yaffsfs.h" @@ -2797,6 +2798,71 @@ void max_files_test(const char *mountpt) } +void case_insensitive_test(const char *mountpt) +{ + char fn[100]; + char fn2[100]; + char buffer[100]; + int ret; + struct yaffs_stat s; + int h; + char *x; + + yaffs_trace_mask = 0; + + yaffs_start_up(); + + yaffs_mount(mountpt); + dump_directory_tree(mountpt); + + sprintf(fn,"%s/Abc.Txt",mountpt); + yaffs_unlink(fn); + h = yaffs_open(fn, O_CREAT | O_TRUNC | O_RDWR, S_IREAD | S_IWRITE); + + ret = yaffs_write(h,fn, strlen(fn) + 1); + + ret = yaffs_close(h); + + dump_directory_tree(mountpt); + + + strcpy(fn2, fn); + x = fn2; + while(*x) { + *x = toupper(*x); + x++; + } + + h = yaffs_open(fn2, O_RDONLY, 0); + ret = yaffs_read(h, buffer, 100); + + if (ret != strlen(fn) + 1 || memcmp(buffer, fn, ret)){ + printf("wrong file read\n"); + } else { + printf("File %s is the same as file %s\n", fn, fn2); + } + + ret = yaffs_stat(fn2, &s); + + printf("renaming\n"); + + ret = yaffs_rename(fn, fn2); + dump_directory_tree(mountpt); + +} + +void start_twice(const char *mountpt) +{ + printf("About to do first yaffs_start\n"); + yaffs_start_up(); + printf("started\n"); + printf("First mount returns %d\n", yaffs_mount(mountpt)); + printf("About to do second yaffs_start\n"); + yaffs_start_up(); + printf("started\n"); + printf("Second mount returns %d\n", yaffs_mount(mountpt)); +} + int random_seed; int simulate_power_failure; @@ -2864,8 +2930,12 @@ int main(int argc, char *argv[]) // link_follow_test("/yaffs2"); //basic_utime_test("/yaffs2"); - max_files_test("/yaffs2"); + //max_files_test("/yaffs2"); + //start_twice("/yaffs2"); +#ifdef CONFIG_YAFFS_CASE_INSENSITIVE + case_insensitive_test("/yaffs2"); +#endif return 0;