setlocale_variation2.phpt [plain text]
--TEST--
Test setlocale() function : usage variations - Setting all available locales in the platform
--SKIPIF--
<?php
if (substr(PHP_OS, 0, 3) == 'WIN') {
die('skip Not valid for windows');
}
?>
--FILE--
<?php
echo "*** Testing setlocale() : usage variations ***\n";
function good_locale($locale) {
return $locale !== 'tt_RU@iqtelif.UTF-8';
}
function list_system_locales() {
ob_start();
system('locale -a');
$all_locales = ob_get_contents();
ob_end_clean();
$system_locales = explode("\n", $all_locales);
return array_filter($system_locales, 'good_locale');
}
$all_system_locales = list_system_locales();
$failure_locale = array();
$success_count = 0;
echo "-- Test setlocale() with all available locale in the system --\n";
foreach($all_system_locales as $value){
if(setlocale(LC_ALL,$value )){
$success_count++;
}
else{
$failure_locale[] = $value;
}
}
echo "No of locales found on the machine = ".count($all_system_locales)."\n";
echo "No of setlocale() success = ".$success_count."\n";
echo "Expected no of failures = 0\n";
echo "Test ";
if($success_count != count($all_system_locales)){
echo "FAILED\n";
echo "Names of locale() for which setlocale() failed ...\n";
var_dump($failure_locale);
}
else{
echo "PASSED\n";
}
echo "Done\n";
?>
--EXPECTF--
*** Testing setlocale() : usage variations ***
-- Test setlocale() with all available locale in the system --
No of locales found on the machine = %d
No of setlocale() success = %d
Expected no of failures = 0
Test PASSED
Done