function runCSharpTests($clientRoot) { global $config; // upgrade the solution to a new version $search = array('Microsoft Visual Studio Solution File, Format Version 10.00', '# Visual C# Express 2008', ' ToolsVersion="3.5" ', '<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>'); $replace = array('Microsoft Visual Studio Solution File, Format Version ' . $config['csharp']['solution_format_version'], '# ' . $config['csharp']['visual_studio_version'], ' ToolsVersion="' . $config['csharp']['visual_studio_tools_version'] . '" ', '<TargetFrameworkVersion>v' . $config['csharp']['dot_net_framework_version'] . '</TargetFrameworkVersion>'); replaceInFolder($clientRoot, array('.sln', '.csproj'), null, $search, $replace); // clean up $exeFile = fixSlashes("{$clientRoot}/KalturaClientTester/bin/Debug/KalturaClientTester.exe"); if (file_exists($exeFile)) { unlink($exeFile); } // compile executeCommandFrom($clientRoot, $config['csharp']['devenv_bin'], "/build Debug KalturaClient.sln"); // wait for compilation to end $startTime = microtime(true); while (microtime(true) - $startTime < 30) { if (file_exists($exeFile)) { break; } sleep(1); } if (!file_exists($exeFile)) { echo "Error: failed to compile {$exeFile}\n"; return; } // run the tests executeCommandFrom("{$clientRoot}/KalturaClientTester", $exeFile); }
function replaceInFolder($path, $includeSuffixes, $excludeSuffixes, $search, $replace, $fileNameSearch = null, $fileNameReplace = null) { $fileList = listDir($path); foreach ($fileList as $curFile) { $curPath = "{$path}/{$curFile}"; if (is_dir($curPath)) { replaceInFolder($curPath, $includeSuffixes, $excludeSuffixes, $search, $replace, $fileNameSearch, $fileNameReplace); } else { if ($includeSuffixes && !endsWith($curPath, $includeSuffixes)) { continue; } if ($excludeSuffixes && endsWith($curPath, $excludeSuffixes)) { continue; } replaceInFile($curPath, $search, $replace, $fileNameSearch, $fileNameReplace); } } }
<?php require_once __DIR__ . '/utils.php'; if ($argc < 2) { die("Usage:\n\tphp " . basename(__FILE__) . " <root dir>\n"); } $rootDir = fixSlashes($argv[1]); $config = parse_ini_file(dirname(__FILE__) . '/config.ini', true); $search = array('@YOUR_PARTNER_ID@', '@YOUR_USER_SECRET@', '@YOUR_ADMIN_SECRET@', '@SERVICE_URL@'); $replace = array($config['general']['partner_id'], $config['general']['user_secret'], $config['general']['admin_secret'], $config['general']['service_url']); replaceInFolder($rootDir, null, array('.tar.gz', 'configureTestPartner.php'), $search, $replace, '.template', '');