#include #include #include #include #include #include #include extern int _platform_strcmp(const char*,const char*); extern int _platform_strncmp(const char*,const char*,size_t); extern size_t _platform_strlen(const char*); extern size_t _platform_strnlen(const char*,size_t); extern int _platform_memcmp(const void*,const void*,size_t); extern void* _platform_memmove(void*,const void*,size_t); extern void* _platform_memchr(const void*,int,size_t); static int sign(int v){return (v>0)-(v<0);} static void check(int v,const char* message){if(!v){fprintf(stderr,"FAIL: %s\n",message);exit(1);}} static int compare(const unsigned char*a,const unsigned char*b,size_t n){for(size_t i=0;isrc){for(size_t i=n;i;i--)expected[dst+i-1]=expected[src+i-1];} else{for(size_t i=0;i