Offlist - Introduce Yourself to Community
Gedare Bloom
gedare at rtems.org
Tue May 16 15:29:58 UTC 2017
On Mon, May 15, 2017 at 3:38 PM, aditya upadhyay <aadit0402 at gmail.com> wrote:
> Hello All,
>
> I have ported the code of inttypes library and i have tested methods related
> to inttypes.h in hello world test. It is working. Then i made a separate
As a proof-of-concept, this is fine. You'll need to focus on the
separate test case and not contribute any modifications of the hello
world.
For the actual inclusion of inttypes library code, I think this code
more properly belongs either in the newlib repository or underneath
cpukit/libcsupport. See https://sourceware.org/newlib/ for info about
joining the newlib mailing list and checking out the git repository.
If it does not have a good place to go in newlib, then the code should
be added underneath cpukit/libcsupport. Adding to newlib is preferred
in case the implementation may be of value to other newlib users,
i.e., the code is not RTEMS-specific.
I did not see the patch of the code for your inttypes library below,
only the patches to add it to the build system and to add the test. So
I cannot comment on the adequacy of the implementation itself.
> test for psxinttypes01 in samples directory and it's also working. I made
> this test within the psxtests directory then how would i check whether test
> is working or not ? The location of psxinttypes01 is :
> /development/rtems4.12-1/testsuits/psxtests/psxinttypes01.
>
Good. A test is preferred to begin with, so that you may follow a
test-driven development approach that is mostly used by RTEMS
developers.
> Just for learning purpose, if i put psxtests instead of samples in this
> command : ../rtems4.12-1/configure --target=sparc-rtems4.12
> --enable-rtemsbsp=erc32 --enable-tests=samples --disable-posix
>
> and after make command, Will it generate .exe files related to psxtests ?
enable-tests only has 3 options: samples, yes, no
to generate the psxtests you need to specify --enable-tests=yes (or
just --enable-tests).
> do i have to send the ported code or can i submit the ported code to my
> github repository.. ? Any suggestion ?
> Please find the attached patch and review the tested methods.
>
In the future please send well-formatted git-commit patches intended
for review/merge to the mailing list as separate patch files,
preferably using the git-send-email. See
https://devel.rtems.org/wiki/Developer/Git/Users#CreatingaPatch
> patch1 is for methods tested within the hello world file.
> diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
> index 1987586..5c4dc15 100644
> --- a/cpukit/Makefile.am
> +++ b/cpukit/Makefile.am
> @@ -7,6 +7,7 @@ include $(top_srcdir)/automake/multilib.am
> SUBDIRS = . score rtems sapi posix
> SUBDIRS += dev
> SUBDIRS += dtc/libfdt
> +SUBDIRS += inttypes
> SUBDIRS += libcrypt
> SUBDIRS += libcsupport libblock libfs
> SUBDIRS += libdrvmgr
> diff --git a/cpukit/configure.ac b/cpukit/configure.ac
> index 67237e9..5110c07 100644
> --- a/cpukit/configure.ac
> +++ b/cpukit/configure.ac
> @@ -479,6 +479,7 @@ libstdthreads/Makefile
> libdebugger/Makefile
> zlib/Makefile
> ftpd/Makefile
> +inttypes/Makefile
> telnetd/Makefile
> pppd/Makefile
> mghttpd/Makefile
> diff --git a/cpukit/include/rtems/inttypes.h
> b/cpukit/include/rtems/inttypes.h
> index 2e23c8c..d2f9f55 100644
> --- a/cpukit/include/rtems/inttypes.h
> +++ b/cpukit/include/rtems/inttypes.h
> @@ -153,3 +153,4 @@ extern "C" {
> #endif
>
> #endif
>
> diff --git a/testsuites/psxtests/Makefile.am
> b/testsuites/psxtests/Makefile.am
> index 7bcea46..65325da 100644
> --- a/testsuites/psxtests/Makefile.am
> +++ b/testsuites/psxtests/Makefile.am
> @@ -58,6 +58,7 @@ _SUBDIRS += psxhdrs
> _SUBDIRS += psxintrcritical01
> _SUBDIRS += psxitimer
> endif
> +_SUBDIRS += psxinttypes01
> _SUBDIRS += psxkey01
> _SUBDIRS += psxkey02
> _SUBDIRS += psxkey03
> diff --git a/testsuites/psxtests/configure.ac
> b/testsuites/psxtests/configure.ac
> index 1de1312..227bda9 100644
> --- a/testsuites/psxtests/configure.ac
> +++ b/testsuites/psxtests/configure.ac
> @@ -163,6 +163,7 @@ psximfs01/Makefile
> psximfs02/Makefile
> psxintrcritical01/Makefile
> psxitimer/Makefile
> +psxinttypes01/Makefile
> psxkey01/Makefile
> psxkey02/Makefile
> psxkey03/Makefile
> diff --git a/testsuites/samples/hello/Makefile.am
> b/testsuites/samples/hello/Makefile.am
> index 234a27e..c7f7e2a 100644
> --- a/testsuites/samples/hello/Makefile.am
> +++ b/testsuites/samples/hello/Makefile.am
> @@ -9,9 +9,10 @@ include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> include $(top_srcdir)/../automake/compile.am
> include $(top_srcdir)/../automake/leaf.am
>
> +AM_CPPFLAGS += -I$(top_srcdir)/../support/include
>
> -LINK_OBJS = $(hello_OBJECTS)
> -LINK_LIBS = $(hello_LDLIBS)
> +LINK_OBJS = $(hello_OBJECTS) $(hello_LDADD)
> +LINK_LIBS = $(hello_LDLIBS)
> /home/aditya/development/b-sparc/sparc-rtems4.12/c/erc32/cpukit/inttypes/libinttypes.a
>
> hello$(EXEEXT): $(hello_OBJECTS) $(hello_DEPENDENCIES)
> @rm -f hello$(EXEEXT)
> diff --git a/testsuites/samples/hello/init.c
> b/testsuites/samples/hello/init.c
> index a2d6c30..51f4451 100644
> --- a/testsuites/samples/hello/init.c
> +++ b/testsuites/samples/hello/init.c
> @@ -18,6 +18,7 @@
>
> #include <stdio.h>
> #include <stdlib.h>
> +#include <rtems/inttypes.h>
>
> /* forward declarations to avoid warnings */
> rtems_task Init(rtems_task_argument argument);
> @@ -31,7 +32,34 @@ rtems_task Init(
> {
> rtems_print_printer_printf(&rtems_test_printer);
> rtems_test_begin();
> + char* endptr;
> + uintmax_t j,k;
> + int base = 10;
> + char *nptr;
> + wchar_t *nptr1, *endptr1;
> + intmax_t m;
> + nptr1 = L"10110134932";
> + nptr = "20690239864abc";
> + m = wcstoimax(nptr1, &endptr1, base);
> + printf("string = %s\n", nptr);
> + j = strtoumax(nptr, &endptr, base);
> + printf("wcstoimax = %jd\n", m);
> + k = wcstoumax(nptr1, &endptr1, base);
> + printf("wcstoumax = %ju\n", k);
> + printf("strtoumax = %ju (base %d)\n", j, base);
> + printf("Stopped scan at %s\n\n", endptr);
> + imaxdiv_t retrival = imaxdiv(27, 4);
> printf( "Hello World\n" );
> + printf(" Strtoimax values \n");
> + printf("%jd\n", strtoimax(" -123junk",&endptr,10)); /* base 10
> */
> + printf("%jd\n", strtoimax("11111111",&endptr,2)); /* base 2
> */
> + printf("%jd\n", strtoimax("XyZ",&endptr,36)); /* base 36
> */
> + printf("%jd\n", strtoimax("010",&endptr,0)); /* octal
> auto-detection */
> + printf("%jd\n", strtoimax("10",&endptr,0)); /* decimal
> auto-detection */
> + printf("%jd\n", strtoimax("0x10",&endptr,0)); /* hexadecimal
> auto-detection */
> + printf( "imaxabs_value = %jd\n", imaxabs(-1234));
> + printf("strtoimax value = %jd\n", strtoimax("11111111",&endptr,2));
> + printf( "imax div value = %jd\n", retrival.rem);
> rtems_test_end();
> exit( 0 );
> }
>
Remove the changes to hello world from this commit. you can do this
via git using something like:
git rebase -i HEAD~2
change 'pick' to 'edit' for the commit you want to change
and then use
git reset init.c
git checkout -- init.c
I think that should remove the changes made to the init.c file, but
check with a git tutorial if you need further guidance.
> patch2 is for separate test psxinttypes01 within the samples directory.
>
It is good to have separate patches produced from different git
commits for the test and the implementation.
> diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
> index 1987586..5c4dc15 100644
> --- a/cpukit/Makefile.am
> +++ b/cpukit/Makefile.am
> @@ -7,6 +7,7 @@ include $(top_srcdir)/automake/multilib.am
> SUBDIRS = . score rtems sapi posix
> SUBDIRS += dev
> SUBDIRS += dtc/libfdt
> +SUBDIRS += inttypes
> SUBDIRS += libcrypt
> SUBDIRS += libcsupport libblock libfs
> SUBDIRS += libdrvmgr
> diff --git a/cpukit/configure.ac b/cpukit/configure.ac
> index 67237e9..5110c07 100644
> --- a/cpukit/configure.ac
> +++ b/cpukit/configure.ac
> @@ -479,6 +479,7 @@ libstdthreads/Makefile
> libdebugger/Makefile
> zlib/Makefile
> ftpd/Makefile
> +inttypes/Makefile
> telnetd/Makefile
> pppd/Makefile
> mghttpd/Makefile
> diff --git a/cpukit/include/rtems/inttypes.h
> b/cpukit/include/rtems/inttypes.h
> index 2e23c8c..d2f9f55 100644
> --- a/cpukit/include/rtems/inttypes.h
> +++ b/cpukit/include/rtems/inttypes.h
> @@ -153,3 +153,4 @@ extern "C" {
> #endif
>
> #endif
> +
This appears to be an unnecessary white space addition.
> diff --git a/cpukit/rtems/src/ratemonreportstatistics.c
> b/cpukit/rtems/src/ratemonreportstatistics.c
> index 0ea7790..76f032e 100644
> --- a/cpukit/rtems/src/ratemonreportstatistics.c
> +++ b/cpukit/rtems/src/ratemonreportstatistics.c
> @@ -156,3 +156,4 @@ void rtems_rate_monotonic_report_statistics( void )
> rtems_print_printer_printk( &printer );
> rtems_rate_monotonic_report_statistics_with_plugin( &printer );
> }
> +
Get rid of this spurious change. Check the settings on your editor, it
appears to be adding newlines to the end of files that you open.
> diff --git a/testsuites/samples/Makefile.am b/testsuites/samples/Makefile.am
> index 85e89a5..f710aab 100644
> --- a/testsuites/samples/Makefile.am
> +++ b/testsuites/samples/Makefile.am
> @@ -9,6 +9,7 @@ _SUBDIRS += minimum
> _SUBDIRS += nsecs
> _SUBDIRS += paranoia
> _SUBDIRS += ticker
> +_SUBDIRS += psxinttypes01
This should go instead into the psxtests rather than samples.
> _SUBDIRS += unlimited
>
> if MPTESTS
> diff --git a/testsuites/samples/configure.ac
> b/testsuites/samples/configure.ac
> index ffe1bad..95ff87a 100644
> --- a/testsuites/samples/configure.ac
> +++ b/testsuites/samples/configure.ac
> @@ -75,6 +75,7 @@ nsecs/Makefile
> paranoia/Makefile
> pppd/Makefile
> ticker/Makefile
> +psxinttypes01/Makefile
ditto.
> unlimited/Makefile
> ])
> AC_OUTPUT
> diff --git a/testsuites/samples/hello/Makefile.am
> b/testsuites/samples/hello/Makefile.am
> index 234a27e..3a05a39 100644
> --- a/testsuites/samples/hello/Makefile.am
> +++ b/testsuites/samples/hello/Makefile.am
> @@ -1,6 +1,6 @@
>
> rtems_tests_PROGRAMS = hello
> -hello_SOURCES = init.c
> +hello_SOURCES = init.c libinttypes.a
>
> dist_rtems_tests_DATA = hello.scn
> dist_rtems_tests_DATA += hello.doc
> @@ -9,9 +9,10 @@ include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> include $(top_srcdir)/../automake/compile.am
> include $(top_srcdir)/../automake/leaf.am
>
> +AM_CPPFLAGS += -I$(top_srcdir)/../support/include
>
> -LINK_OBJS = $(hello_OBJECTS)
> -LINK_LIBS = $(hello_LDLIBS)
> +LINK_OBJS = $(hello_OBJECTS) $(hello_LDADD)
> +LINK_LIBS = $(hello_LDLIBS)
> /home/aditya/development/b-sparc/sparc-rtems4.12/c/erc32/cpukit/inttypes/libinttypes.a
>
You should not have hard-coded paths in code that you write. This
would not work for other people.
> hello$(EXEEXT): $(hello_OBJECTS) $(hello_DEPENDENCIES)
> @rm -f hello$(EXEEXT)
> diff --git a/testsuites/samples/hello/init.c
> b/testsuites/samples/hello/init.c
> index a2d6c30..d1fd577 100644
> --- a/testsuites/samples/hello/init.c
> +++ b/testsuites/samples/hello/init.c
> @@ -18,6 +18,7 @@
>
> #include <stdio.h>
> #include <stdlib.h>
> +#include <rtems/inttypes.h>
>
> /* forward declarations to avoid warnings */
> rtems_task Init(rtems_task_argument argument);
>
I don't see the code for your psxinttypes01 directory. Note that you
must git-add new files/directories explicitly, as git add -a will not
pick up new files only modified, existing files.
Gedare
> Thanks & Regards,
> Aditya
>
> On Mon, May 15, 2017 at 9:55 PM, Joel Sherrill <joel at rtems.org> wrote:
>>
>> I am not in a good position to review this today but patches should go to
>> the community for review. Also this one has a ticket.
>>
>> --joel
>>
>> On May 14, 2017 11:33 PM, "aditya upadhyay" <aadit0402 at gmail.com> wrote:
>>>
>>> Hello Joel, Gedare,
>>>
>>> I have ported the code of inttypes library and i have tested methods
>>> related to inttypes.h in hello world test. It is working. I have made a test
>>> related to inttypes methods named as psxinttype01. where i have tested these
>>> method. The location of psxinttypes01 is :
>>> /development/rtems4.12-1/testsuits/psxtests/psxinttypes01.
>>>
>>> Just for learning purpose, if i put psxtests instead of samples in this
>>> command : ../rtems4.12-1/configure --target=sparc-rtems4.12
>>> --enable-rtemsbsp=erc32 --enable-tests=samples --disable-posix
>>>
>>> and after make command, Will it generate .exe files related to psxtests ?
>>> do i have to send the ported code or can i submit the ported code to my
>>> github repository.. ? Any suggestion ?
>>> I am sending you the patch of tested code. please review the tested
>>> methods.
>>>
>>> Thanks & Regards,
>>> Aditya
>>>
>>>
>>>
>>> On Fri, May 12, 2017 at 9:41 PM, aditya upadhyay <aadit0402 at gmail.com>
>>> wrote:
>>>>
>>>> Hello Joe, Gedare,
>>>>
>>>> I was busy with my end semester project. I will introduce myself there.
>>>> Apart from that now i am trying to make a test for inttypes library as You
>>>> have told me in previous mail. I will do it by tonight.
>>>>
>>>> Thanks & Regards,
>>>> Aditya
>>>>
>>>> On Fri, May 12, 2017 at 9:33 PM, Joel Sherrill <joel at rtems.org> wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>> Gedare sent an email asking all students to introduce themselves and
>>>>> their project to the community. You haven't done it yet.
>>>>>
>>>>> Thanks
>>>>>
>>>>>
>>>>> --joel
>>>>
>>>>
>>>
>
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
More information about the devel
mailing list