Hello Joel, Am 06.12.2017 um 16:00 schrieb Joel Sherrill: > Should the test .doc file be updated to include this test case? >
I think that "Make sure short file- and directory names and long file- and directory names are handled correctly for the default character set (code page 850)" already covers that. It is a case where a file name should be handled correctly. > Is this a test case.worth running against other filesystems? The bug has been (again) a bug that is quite specific to our FAT implementation. It's more a test to prevent regression in case someone (for example me) touches the much too complex function msdos_find_file_in_directory() again. I would think it rather unlikely that another file system has the same problem with names. Regards Christian > > --joel > > On Dec 6, 2017 9:57 AM, "Christian Mauderer" > <christian.maude...@embedded-brains.de > <mailto:christian.maude...@embedded-brains.de>> wrote: > > From: Christian Mauderer <christian.maude...@embedded-brains.de > <mailto:christian.maude...@embedded-brains.de>> > > If there is already a file with a long file name it isn't possible to > create a second file which has a name that ends on the first files name > (for example ets.beam and sets.beam). This patch fixes that. > --- > cpukit/libfs/src/dosfs/msdos_misc.c | 10 +++++++--- > testsuites/fstests/fsdosfsname01/init.c | 25 +++++++++++++++++++++++++ > 2 files changed, 32 insertions(+), 3 deletions(-) > > diff --git a/cpukit/libfs/src/dosfs/msdos_misc.c > b/cpukit/libfs/src/dosfs/msdos_misc.c > index 79aaa36520..24eb2d11e0 100644 > --- a/cpukit/libfs/src/dosfs/msdos_misc.c > +++ b/cpukit/libfs/src/dosfs/msdos_misc.c > @@ -1564,9 +1564,13 @@ msdos_find_file_in_directory ( > if (entry_matched) > { > if (lfn_entry || > - lfn_checksum != msdos_lfn_checksum(entry)) > - entry_matched = false; > - else if (name_len_remaining == 0) { > + name_len_remaining > 0 || > + lfn_checksum != > msdos_lfn_checksum(entry)) { > + msdos_prepare_for_next_entry(&lfn_start, > + > &entry_matched, > + > &name_len_remaining, > + > name_len_for_compare); > + } else if (name_len_remaining == 0) { > filename_matched = true; > rc = msdos_on_entry_found ( > fs_info, > diff --git a/testsuites/fstests/fsdosfsname01/init.c > b/testsuites/fstests/fsdosfsname01/init.c > index d0c909877c..846faf28a3 100644 > --- a/testsuites/fstests/fsdosfsname01/init.c > +++ b/testsuites/fstests/fsdosfsname01/init.c > @@ -1097,6 +1097,30 @@ static void test_end_of_string_matches( void ) > rtems_test_assert( rc == 0 ); > } > > +static void test_end_of_string_matches_2( void ) > +{ > + int rc; > + int fd; > + > + fd = open( MOUNT_DIR "/ets.beam", O_RDWR | O_CREAT, > + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | > S_IWOTH ); > + rtems_test_assert( fd >= 0 ); > + rc = close( fd ); > + rtems_test_assert( rc == 0 ); > + > + fd = open( MOUNT_DIR "/sets.beam", O_RDWR | O_CREAT, > + S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | > S_IWOTH ); > + rtems_test_assert( fd >= 0 ); > + rc = close( fd ); > + rtems_test_assert( rc == 0 ); > + > + rc = unlink( MOUNT_DIR "/sets.beam" ); > + rtems_test_assert( rc == 0 ); > + > + rc = unlink( MOUNT_DIR "/ets.beam" ); > + rtems_test_assert( rc == 0 ); > +} > + > static void test_full_8_3_name( void ) > { > int rc; > @@ -1151,6 +1175,7 @@ static void > test_file_with_same_name_as_volume_label( void ) > static void test_special_cases( void ) > { > test_end_of_string_matches(); > + test_end_of_string_matches_2(); > test_full_8_3_name(); > test_file_with_same_name_as_volume_label(); > test_dir_with_same_name_as_volume_label(); > -- > 2.12.3 > > _______________________________________________ > devel mailing list > devel@rtems.org <mailto:devel@rtems.org> > http://lists.rtems.org/mailman/listinfo/devel > <http://lists.rtems.org/mailman/listinfo/devel> > > > > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel > -- -------------------------------------------- embedded brains GmbH Herr Christian Mauderer Dornierstr. 4 D-82178 Puchheim Germany email: christian.maude...@embedded-brains.de Phone: +49-89-18 94 741 - 18 Fax: +49-89-18 94 741 - 08 PGP: Public key available on request. Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel