This is a summary of the changes I made to the tests for the core APR 1.2.11 library. The patch and other files will follow separately.
* Build as Unicode project. * Include tchar.h to use generic data type mappings for Unicode. * Change "main" declarations to use generic data type mappings. * Use generic data type mappings where possible (string functions). * Add ConvertUTF.(c|h) source from Unicode website to convert back and forth between UTF-16 and UTF-8 as needed without using APR. * Convert command line arguments to UTF-8 before passing to APR. * Make output quiet because backspace outputs "^H" text everywhere. * Initialize "not_impl" member of suites. * Output number of tests not implemented along with failures at the end. * Replaced use of apr_strtoi64() in globalmutexchild.c with _wtoi64() because the command line argument is Unicode. * Replaced use of read/write() in proc_child.c with fread/fwrite() because read/write() aren't implemented. * Reduced the number of threads created during "testatomic" due to CE's limitations. * Make all paths absolute, rooted in "/Windows/apr" as needed. * Log unimplemented functions, modify test to check for them and skip when a function isn't implemented. * Exclude inclusion of "errno.h" from CE build, it doesn't exist. * "testdir" shouldn't test current directory. * "testdso" uses an absolute path for MOD_NAME. * "testfnmatch" ends up with 6 files instead of 5 when enumerating the files in a directory. * "testfnmatch" shouldn't test current directory. * "testmmap" can't use current directory, replaced with absolute path, removed check for drive. * "testmmap" replaced use of APR_FINFO_NORM with APR_FINFO_SIZE when only size information was needed. * "testnames" needs to use "/" instead of "C:/" as root, shouldn't test current directory. * "testpipe" was incorrectly testing apr_file_pipe_timeout_set(). The function was performing according to the comments. * Replaced use of CRT time functions in "testsleep" with GetCurrentFT() because the CRT doesn't implement the time functions. * "teststr" needed ERANGE defined and to ignore "errno" because it doesn't exist on CE. * Replaced use of CRT time functions in "testtime" with closest match to be able to perform the test.