test_setlocale
test_setlocale(NULL, _LC_LAST, "");
test_setlocale(NULL, _LC_LAST+0xff, "");
test_setlocale("C", LC_ALL, NULL); /* check */
test_setlocale("C", LC_ALL, "C"); /* reset */
test_setlocale("invalid", LC_CTYPE, "invalid"); /* set */
test_setlocale("invalid", LC_CTYPE, NULL);
test_setlocale("C", LC_ALL, "C"); /* reset */
test_setlocale("invalid.UTF-8", LC_CTYPE, "invalid.UTF-8"); /* set */
test_setlocale("invalid.UTF-8", LC_CTYPE, NULL);
test_setlocale("C/invalid.UTF-8/C/C/C/C", LC_ALL, NULL);
test_setlocale("C", LC_ALL, "C"); /* reset */
test_setlocale(NULL, LC_CTYPE, "fr_FR.invalid"); /* set */
test_setlocale("C", LC_CTYPE, NULL);
test_setlocale("C", LC_ALL, NULL); /* check */
test_setlocale("fr_FR.UTF-8", LC_CTYPE, ""); /* set */
test_setlocale("fr_FR.UTF-8", LC_MESSAGES, ""); /* set */
test_setlocale("C", LC_MESSAGES, "C"); /* set */
test_setlocale("C/fr_FR.UTF-8/C/C/C/C", LC_ALL, NULL); /* check */
test_setlocale("C", LC_CTYPE, "C"); /* set */
test_setlocale("C", LC_ALL, NULL); /* check */
test_setlocale("C", LC_ALL, "C"); /* reset */
test_setlocale(NULL, -1, NULL);
test_setlocale(NULL, _LC_LAST, NULL);
test_setlocale(NULL, _LC_LAST+0xff, NULL);
test_setlocale("C", LC_ALL, NULL); /* check */
test_setlocale(NULL, -1, "");