Use own implementation of strsep()
Not available on windows, and strtok() is not a good option
diff --git a/tests/suites/test_suite_x509parse.function b/tests/suites/test_suite_x509parse.function
index be5fa10..c476ec5 100644
--- a/tests/suites/test_suite_x509parse.function
+++ b/tests/suites/test_suite_x509parse.function
@@ -39,6 +39,36 @@
return 0;
}
+/* strsep() not available on Windows */
+char *mystrsep(char **stringp, const char *delim)
+{
+ const char *p;
+ char *ret = *stringp;
+
+ if( *stringp == NULL )
+ return( NULL );
+
+ for( ; ; (*stringp)++ )
+ {
+ if( **stringp == '\0' )
+ {
+ *stringp = NULL;
+ goto done;
+ }
+
+ for( p = delim; *p != '\0'; p++ )
+ if( **stringp == *p )
+ {
+ **stringp = '\0';
+ (*stringp)++;
+ goto done;
+ }
+ }
+
+done:
+ return( ret );
+}
+
#if defined(MBEDTLS_X509_CRT_PARSE_C)
typedef struct {
char buf[512];
@@ -453,7 +483,7 @@
mbedtls_x509_crt_init( &chain );
mbedtls_x509_crt_init( &trusted );
- while( ( act = strsep( &chain_paths, " " ) ) != NULL )
+ while( ( act = mystrsep( &chain_paths, " " ) ) != NULL )
TEST_ASSERT( mbedtls_x509_crt_parse_file( &chain, act ) == 0 );
TEST_ASSERT( mbedtls_x509_crt_parse_file( &trusted, trusted_ca ) == 0 );