Convert-Binary-C

 view release on metacpan or  search on metacpan

tests/include/pdclib/platform/example/functions/stdlib/getenv_s.c  view on Meta::CPAN

    {
        if ( strncmp( environ[ index ], name, nlen ) == 0 )
        {
            environ_value = environ[ index ] + nlen + 1;
            vlen = strlen( environ_value );
            rc = 0;
            break;
        }

        index++;
    }

    if ( len != NULL )
    {
        *len = vlen;
    }

    if ( vlen < maxsize )
    {
        strcpy( value, environ_value );
    }

    return rc;
}

#endif

#ifdef TEST

#include "_PDCLIB_test.h"

#if ! defined( REGTEST ) || defined( __STDC_LIB_EXT1__ )

static int HANDLER_CALLS = 0;

static void test_handler( const char * _PDCLIB_restrict msg, void * _PDCLIB_restrict ptr, errno_t error )
{
    ++HANDLER_CALLS;
}

#endif

int main( void )
{
#if ! defined( REGTEST ) || defined( __STDC_LIB_EXT1__ )
    size_t len;
    char value[20];
    set_constraint_handler_s( test_handler );

    TESTCASE( getenv_s( &len, value, 20, "SHELL" ) == 0 );
    TESTCASE( strcmp( value, "/bin/bash" ) == 0 );
    /* TESTCASE( strcmp( value, "/bin/sh" ) == 0 ); */

    /* constraint violations */
    TESTCASE( getenv_s( &len, NULL, 20, "SHELL" ) != 0 );
    TESTCASE( getenv_s( &len, value, 0, "SHELL" ) != 0 );
    TESTCASE( getenv_s( &len, value, RSIZE_MAX + 1, "SHELL" ) != 0 );
    TESTCASE( getenv_s( &len, value, 20, NULL ) != 0 );

    /* non-existing (hopefully), != 0 but not constraint violation */
    TESTCASE( getenv_s( &len, value, 20, "supercalifragilisticexpialidocius" ) != 0 );

    TESTCASE( HANDLER_CALLS == 4 );
#endif
    return TEST_RESULTS;
}

#endif



( run in 1.051 second using v1.01-cache-2.11-cpan-364913b4093 )