forked from Imagelibrary/rtems
psxtests: Add psxinttypes01 for <inttypes.h> methods
This commit is contained in:
committed by
Joel Sherrill
parent
373cd1c545
commit
d9fcb22a61
@@ -523,6 +523,13 @@ psxintrcritical01_CPPFLAGS = $(AM_CPPFLAGS) \
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if TEST_psxinttypes01
|
||||||
|
psx_tests += psxinttypes01
|
||||||
|
psxinttypes01_SOURCES = psxinttypes01/init.c
|
||||||
|
psxinttypes01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxinttypes01) \
|
||||||
|
$(support_includes)
|
||||||
|
endif
|
||||||
|
|
||||||
if HAS_POSIX
|
if HAS_POSIX
|
||||||
if TEST_psxitimer
|
if TEST_psxitimer
|
||||||
psx_tests += psxitimer
|
psx_tests += psxitimer
|
||||||
|
|||||||
@@ -91,6 +91,7 @@ RTEMS_TEST_CHECK([psxid01])
|
|||||||
RTEMS_TEST_CHECK([psximfs01])
|
RTEMS_TEST_CHECK([psximfs01])
|
||||||
RTEMS_TEST_CHECK([psximfs02])
|
RTEMS_TEST_CHECK([psximfs02])
|
||||||
RTEMS_TEST_CHECK([psxintrcritical01])
|
RTEMS_TEST_CHECK([psxintrcritical01])
|
||||||
|
RTEMS_TEST_CHECK([psxinttypes01])
|
||||||
RTEMS_TEST_CHECK([psxitimer])
|
RTEMS_TEST_CHECK([psxitimer])
|
||||||
RTEMS_TEST_CHECK([psxkey01])
|
RTEMS_TEST_CHECK([psxkey01])
|
||||||
RTEMS_TEST_CHECK([psxkey02])
|
RTEMS_TEST_CHECK([psxkey02])
|
||||||
|
|||||||
233
testsuites/psxtests/psxinttypes01/init.c
Normal file
233
testsuites/psxtests/psxinttypes01/init.c
Normal file
@@ -0,0 +1,233 @@
|
|||||||
|
/**
|
||||||
|
* @file
|
||||||
|
* @brief Test suite for inttypes.h methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*
|
||||||
|
* Copyright (C) 2019, Aditya Upadhyay and 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 <rtems/test.h>
|
||||||
|
#include <inttypes.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <tmacros.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
const char rtems_test_name[] = "PSXINTTYPE 01";
|
||||||
|
|
||||||
|
/* forward declarations to avoid warnings */
|
||||||
|
rtems_task Init(rtems_task_argument ignored);
|
||||||
|
|
||||||
|
rtems_task Init(rtems_task_argument ignored)
|
||||||
|
{
|
||||||
|
int base = 10;
|
||||||
|
int invalid_base = 40;
|
||||||
|
|
||||||
|
char *nptr1_p = "123abc";
|
||||||
|
char *nptr1_p_errange = "9999999999999999999999";
|
||||||
|
char *nptr1_n = "-123abc";
|
||||||
|
char *nptr1_n_errange = "-9999999999999999999999";
|
||||||
|
char *endptr1 = NULL;
|
||||||
|
|
||||||
|
wchar_t *nptr2_p = L"123junk";
|
||||||
|
wchar_t *nptr2_p_errange = L"9999999999999999999999";
|
||||||
|
wchar_t *nptr2_n = L"-123junk";
|
||||||
|
wchar_t *nptr2_n_errange = L"-9999999999999999999999";
|
||||||
|
wchar_t *endptr2 = NULL;
|
||||||
|
|
||||||
|
intmax_t result_strtoimax;
|
||||||
|
uintmax_t result_strtoumax;
|
||||||
|
|
||||||
|
TEST_BEGIN();
|
||||||
|
|
||||||
|
/* Test for strtoimax */
|
||||||
|
puts( "\nstrtoimax Testcases...." );
|
||||||
|
puts( "Valid Inputs - Positive Number" );
|
||||||
|
result_strtoimax = strtoimax( nptr1_p, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoimax == 123 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr1 == ( nptr1_p + 3 ) );
|
||||||
|
|
||||||
|
puts( "Valid Inputs - Negative Number" );
|
||||||
|
result_strtoimax = strtoimax( nptr1_n, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoimax == -123 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr1 == ( nptr1_n + 4 ) );
|
||||||
|
|
||||||
|
puts( "Valid Input - Positive Number - Number out of Range" );
|
||||||
|
result_strtoimax = strtoimax( nptr1_p_errange, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoimax == INTMAX_MAX );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Valid Input - Negative Number - Number out of Range" );
|
||||||
|
result_strtoimax = strtoimax( nptr1_n_errange, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoimax == INTMAX_MIN );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Send NULL Pointer" );
|
||||||
|
result_strtoimax = strtoimax( NULL, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoimax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Invalid base - Use base = 40" );
|
||||||
|
result_strtoimax = strtoimax( nptr1_p, &endptr1, invalid_base );
|
||||||
|
rtems_test_assert( result_strtoimax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
/* Test for strtoumax */
|
||||||
|
puts( "\nstrtoumax Testcases...." );
|
||||||
|
puts( "Valid Inputs - Positive Number" );
|
||||||
|
result_strtoumax = strtoumax( nptr1_p, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoumax ==123 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr1 == ( nptr1_p + 3 ) );
|
||||||
|
|
||||||
|
puts( "Valid Inputs - Negative Number" );
|
||||||
|
result_strtoumax = strtoumax( nptr1_n, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoumax != 0 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr1 == ( nptr1_n + 4 ) );
|
||||||
|
|
||||||
|
puts( "Valid Input - Positive Number - Number out of Range" );
|
||||||
|
result_strtoumax = strtoumax( nptr1_p_errange, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoumax == UINTMAX_MAX );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Valid Input - Negative Number - Number out of Range" );
|
||||||
|
result_strtoumax = strtoumax( nptr1_n_errange, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoumax != 0 );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Send NULL Pointer" );
|
||||||
|
result_strtoumax = strtoumax( NULL, &endptr1, base );
|
||||||
|
rtems_test_assert( result_strtoumax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Invalid base - Use base = 40" );
|
||||||
|
result_strtoumax = strtoumax( nptr1_p, &endptr1, invalid_base );
|
||||||
|
rtems_test_assert( result_strtoumax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
/* Test for wcstoimax */
|
||||||
|
puts( "\nwcstoimax Testcases...." );
|
||||||
|
puts( "Valid Inputs - Positive Number" );
|
||||||
|
result_strtoimax = wcstoimax( nptr2_p, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoimax == 123 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr2 == ( nptr2_p + 3 ) );
|
||||||
|
|
||||||
|
puts( "Valid Inputs - Negative Number" );
|
||||||
|
result_strtoimax = wcstoimax( nptr2_n, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoimax == -123 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr2 == ( nptr2_n + 4 ) );
|
||||||
|
|
||||||
|
puts( "Valid Input - Positive Number - Number out of Range" );
|
||||||
|
result_strtoimax = wcstoimax( nptr2_p_errange, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoimax == INTMAX_MAX );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Valid Input - Negative Number - Number out of Range" );
|
||||||
|
result_strtoimax = wcstoimax( nptr2_n_errange, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoimax == INTMAX_MIN );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Send NULL Pointer" );
|
||||||
|
result_strtoimax = wcstoimax( NULL, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoimax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Invalid base - Use base = 40" );
|
||||||
|
result_strtoimax = wcstoimax( nptr2_p, &endptr2, invalid_base );
|
||||||
|
rtems_test_assert( result_strtoimax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
/* Test for wcstoumax */
|
||||||
|
puts( "\nwcstoumax Testcases...." );
|
||||||
|
puts( "Valid Inputs - Positive Number" );
|
||||||
|
result_strtoumax = wcstoumax( nptr2_p, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoumax == 123 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr2 == ( nptr2_p + 3 ) );
|
||||||
|
|
||||||
|
puts( "Valid Inputs - Negative Number" );
|
||||||
|
result_strtoumax = wcstoumax( nptr2_n, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoumax != 0 );
|
||||||
|
|
||||||
|
puts( "Final string pointed by endptr" );
|
||||||
|
rtems_test_assert( endptr2 == ( nptr2_n + 4 ) );
|
||||||
|
|
||||||
|
puts( "Valid Input - Positive Number - Number out of Range" );
|
||||||
|
result_strtoumax = wcstoumax( nptr2_p_errange, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoumax == UINTMAX_MAX );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Valid Input - Negative Number - Number out of Range" );
|
||||||
|
result_strtoumax = wcstoumax( nptr2_n_errange, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoumax != 0 );
|
||||||
|
rtems_test_assert( errno == ERANGE );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Send NULL Pointer" );
|
||||||
|
result_strtoumax = wcstoumax( NULL, &endptr2, base );
|
||||||
|
rtems_test_assert( result_strtoumax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
puts( "Invalid Input - Invalid base - Use base = 40" );
|
||||||
|
result_strtoumax = wcstoumax( nptr2_p, &endptr2, invalid_base );
|
||||||
|
rtems_test_assert( result_strtoumax == 0 );
|
||||||
|
rtems_test_assert( errno == EINVAL );
|
||||||
|
|
||||||
|
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_RTEMS_INIT_TASKS_TABLE
|
||||||
|
|
||||||
|
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||||
|
|
||||||
|
#define CONFIGURE_INIT
|
||||||
|
#include <rtems/confdefs.h>
|
||||||
43
testsuites/psxtests/psxinttypes01/psxinttypes01.doc
Normal file
43
testsuites/psxtests/psxinttypes01/psxinttypes01.doc
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
This File describes the concepts tested by this test suite.
|
||||||
|
|
||||||
|
inttypes.h - fixed size integer types
|
||||||
|
|
||||||
|
test suite name: PSXINTTYPE 01
|
||||||
|
|
||||||
|
- Checks for invalid base value
|
||||||
|
|
||||||
|
- Checks for Strtoimax Testcases
|
||||||
|
- checks for output for string having a positive number
|
||||||
|
- checks for output for string having a negative number
|
||||||
|
- checks for output for string having a positive number - Number Out of Range
|
||||||
|
- checks for output for string having a negative number - Number Out of Range
|
||||||
|
- checks for final string pointed by endptr
|
||||||
|
- checks for output for invalid argument - NULL Pointer
|
||||||
|
- checks for output for invalid argument - Invalid Base
|
||||||
|
|
||||||
|
- Checks for Strtoumax Test Cases
|
||||||
|
- checks for output for string having a positive number
|
||||||
|
- checks for output for string having a negative number
|
||||||
|
- checks for output for string having a positive number - Number Out of Range
|
||||||
|
- checks for output for string having a negative number - Number Out of Range
|
||||||
|
- checks for final string pointed by endptr
|
||||||
|
- checks for output for invalid argument - NULL Pointer
|
||||||
|
- checks for output for invalid argument - Invalid Base
|
||||||
|
|
||||||
|
- Checks for Wcstoimax Testcases
|
||||||
|
- checks for output for string having a positive number
|
||||||
|
- checks for output for string having a negative number
|
||||||
|
- checks for output for string having a positive number - Number Out of Range
|
||||||
|
- checks for output for string having a negative number - Number Out of Range
|
||||||
|
- checks for final string pointed by endptr
|
||||||
|
- checks for output for invalid argument - NULL Pointer
|
||||||
|
- checks for output for invalid argument - Invalid Base
|
||||||
|
|
||||||
|
- Checks for Wcstoumax Testcases
|
||||||
|
- checks for output for string having a positive number
|
||||||
|
- checks for output for string having a negative number
|
||||||
|
- checks for output for string having a positive number - Number Out of Range
|
||||||
|
- checks for output for string having a negative number - Number Out of Range
|
||||||
|
- checks for final string pointed by endptr
|
||||||
|
- checks for output for invalid argument - NULL Pointer
|
||||||
|
- checks for output for invalid argument - Invalid Base
|
||||||
43
testsuites/psxtests/psxinttypes01/psxinttypes01.scn
Normal file
43
testsuites/psxtests/psxinttypes01/psxinttypes01.scn
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
*** PSXINTTYPE 01 TEST ***
|
||||||
|
|
||||||
|
strtoimax Testcases....
|
||||||
|
Valid Inputs - Positive Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Inputs - Negative Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Input - Positive Number - Number out of Range
|
||||||
|
Valid Input - Negative Number - Number out of Range
|
||||||
|
Invalid Input - Send NULL Pointer
|
||||||
|
Invalid Input - Invalid base - Use base = 40
|
||||||
|
|
||||||
|
strtoumax Testcases....
|
||||||
|
Valid Inputs - Positive Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Inputs - Negative Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Input - Positive Number - Number out of Range
|
||||||
|
Valid Input - Negative Number - Number out of Range
|
||||||
|
Invalid Input - Send NULL Pointer
|
||||||
|
Invalid Input - Invalid base - Use base = 40
|
||||||
|
|
||||||
|
wcstoimax Testcases....
|
||||||
|
Valid Inputs - Positive Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Inputs - Negative Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Input - Positive Number - Number out of Range
|
||||||
|
Valid Input - Negative Number - Number out of Range
|
||||||
|
Invalid Input - Send NULL Pointer
|
||||||
|
Invalid Input - Invalid base - Use base = 40
|
||||||
|
|
||||||
|
wcstoumax Testcases....
|
||||||
|
Valid Inputs - Positive Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Inputs - Negative Number
|
||||||
|
Final string pointed by endptr
|
||||||
|
Valid Input - Positive Number - Number out of Range
|
||||||
|
Valid Input - Negative Number - Number out of Range
|
||||||
|
Invalid Input - Send NULL Pointer
|
||||||
|
Invalid Input - Invalid base - Use base = 40
|
||||||
|
|
||||||
|
*** END OF PSXINTTYPE 01 TEST ***
|
||||||
Reference in New Issue
Block a user