On Thu, Jul 4, 2019 at 2:31 AM Vaibhav Gupta <vaibhavgupt...@gmail.com> wrote: > > Hello, > As I mentioned in previous threads, RSB patch was not generating function > symbols defined > in ndbm.c, but they were generated when I build newlib repository for SPARC. > . > . > So, I made a script to add them manually, from newlib build, to rtems/5/..... > https://github.com/VARoDeK/MiniProject_1-Add_newlib_object_files_to_rtems_libraries/blob/master/script.sh > . > . > The compilation of minimal Testsuite was Successful this time and is > generating > expected correct results. Good.
> ======================== > OUTPUT > ======================== > *** BEGIN OF TEST PSXNDBM 01 *** > *** TEST VERSION: 5.0.0.5cbee18e0030981cd61b8c9d556cc5c57f6ee082-modified > *** TEST STATE: EXPECTED-PASS > *** TEST BUILD: RTEMS_POSIX_API > *** TEST TOOLS: 7.4.1 20190514 (RTEMS 5, RSB > d694d16e5a7241827471af98c8f978ff3eb331fd, Newlib 5c2a3661c) > Open Database > Store Records in Database > Fetch Records from Database > > Name: VARoDeK, > Phone Number: 123-321-777-888 > > Close Database > > *** END OF TEST PSXNDBM 01 *** > > > *** FATAL *** > fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT) > fatal code: 0 (0x00000000) > RTEMS version: 5.0.0.5cbee18e0030981cd61b8c9d556cc5c57f6ee082-modified > RTEMS tools: 7.4.1 20190514 (RTEMS 5, RSB > d694d16e5a7241827471af98c8f978ff3eb331fd, Newlib 5c2a3661c) > executing thread ID: 0x08a010001 > executing thread name: UI1 > ======================== > . > I will now make a Testsuite for each and every error and output. > Should I send the ndbm patch to newlib now? > Did you post the final ndbm here already? if so, which was it? Your mentors should take a good look before you will send it to newlib-ml to avoid any obvious problems. (Or else, Joel might get scolded by Corinna again. :)) > . > . > . > . > ======================== > Patch for Testsuite > ======================== > --- > testsuites/psxtests/Makefile.am | 8 +++ > testsuites/psxtests/configure.ac | 1 + > testsuites/psxtests/psxndbm01/init.c | 103 +++++++++++++++++++++++++++ > 3 files changed, 112 insertions(+) > create mode 100644 testsuites/psxtests/psxndbm01/init.c > > diff --git a/testsuites/psxtests/Makefile.am b/testsuites/psxtests/Makefile.am > index 59c9f2085b..c805973afb 100755 > --- a/testsuites/psxtests/Makefile.am > +++ b/testsuites/psxtests/Makefile.am > @@ -694,6 +694,14 @@ psxmutexattr01_CPPFLAGS = $(AM_CPPFLAGS) > $(TEST_FLAGS_psxmutexattr01) \ > $(support_includes) -I$(top_srcdir)/include > endif > > +if TEST_psxndbm01 > +psx_tests += psxndbm01 > +psxndbm01_SOURCES = psxndbm01/init.c > +psxndbm01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxndbm01) \ > + $(support_includes) > +endif > + > + only need 1 blank line to separate things, like in the rest of this file. > if TEST_psxobj01 > psx_tests += psxobj01 > psx_screens += psxobj01/psxobj01.scn > diff --git a/testsuites/psxtests/configure.ac > b/testsuites/psxtests/configure.ac > index 85559e4aa5..07d7ccaf55 100644 > --- a/testsuites/psxtests/configure.ac > +++ b/testsuites/psxtests/configure.ac > @@ -110,6 +110,7 @@ RTEMS_TEST_CHECK([psxmsgq02]) > RTEMS_TEST_CHECK([psxmsgq03]) > RTEMS_TEST_CHECK([psxmsgq04]) > RTEMS_TEST_CHECK([psxmutexattr01]) > +RTEMS_TEST_CHECK([psxndbm01]) > RTEMS_TEST_CHECK([psxobj01]) > RTEMS_TEST_CHECK([psxonce01]) > RTEMS_TEST_CHECK([psxpasswd01]) > diff --git a/testsuites/psxtests/psxndbm01/init.c > b/testsuites/psxtests/psxndbm01/init.c > new file mode 100644 > index 0000000000..74dec0c969 > --- /dev/null > +++ b/testsuites/psxtests/psxndbm01/init.c > @@ -0,0 +1,103 @@ > +/** > + * @file > + * @brief Test suite for inttypes.h methods inttypes.h? > + */ > + > +/* > + * SPDX-License-Identifier: BSD-2-Clause > + * > + * Copyright (C) 2019 Vaibhav Gupta > + * > + * Redistribution and use in source and binary forms, with or without > + * modification, are permitted provided that the following conditions > + * are met: > + * 1. Redistributions of source code must retain the above copyright > + * notice, this list of conditions and the following disclaimer. > + * 2. Redistributions in binary form must reproduce the above copyright > + * notice, this list of conditions and the following disclaimer in the > + * documentation and/or other materials provided with the distribution. > + * > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS > IS" > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE > + * POSSIBILITY OF SUCH DAMAGE. > + */ > + > +#ifdef HAVE_CONFIG_H > +#include "config.h" > +#endif > + > +#include <errno.h> > +#include <fcntl.h> > +#include <ndbm.h> > +#include <stddef.h> > +#include <stdint.h> > +#include <stdio.h> > +#include <sys/stat.h> > +#include <rtems/test.h> > +#include <tmacros.h> > + > + Only need one blank line to separate things. > +const char rtems_test_name[] = "PSXNDBM 01"; > + > +#define NAME "VARoDeK" > +#define PHONE_NO "123-321-777-888" > +#define DB_NAME "phones_test" > + > +/* forward declarations to avoid warnings */ > +rtems_task Init(rtems_task_argument ignored); > +DBM *db; > + > +rtems_task Init(rtems_task_argument ignored) > +{ > + datum name = { NAME , sizeof(NAME) }; > + datum put_phone_no = { PHONE_NO, sizeof(PHONE_NO) }; > + datum get_phone_no; > + > + TEST_BEGIN(); > + > + puts( "Open Database" ); > + db = dbm_open( DB_NAME , O_RDWR | O_CREAT | O_TRUNC , S_IRWXU ); > + rtems_test_assert( db != NULL ); > + > + puts( "Store Records in Database" ); > + dbm_store( db , name , put_phone_no , DBM_INSERT ); > + Can you check this call for any return value / errors? > + puts( "Fetch Records from Database" ); > + get_phone_no = dbm_fetch( db , name ); > + printf( "\nName: %s, \nPhone Number: %s\n\n", (char *)name.dptr , (char > *)get_phone_no.dptr ); > + How do you determine the test is successful? You must manually view the output? Can you make this test to fail in case the dbm_fetch is wrong? > + puts( "Close Database" ); > + dbm_close( db ); > + > + > + > + 1 blank line only > + TEST_END(); > + rtems_test_exit(0); > + > +} > + > +/* NOTICE: the clock driver is explicitly disabled */ > + > +#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER > +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER > + > +#define CONFIGURE_MAXIMUM_TASKS 1 > + > +#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6 > + > +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE > + > +#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION > + > +#define CONFIGURE_INIT > +#include <rtems/confdefs.h> > +/* end of file */ > -- > 2.21.0 > ======================== _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel