Run tests on both net45 and k10 (Fix #42)

This commit is contained in:
Brice Lambson 2014-06-09 13:34:54 -07:00
parent 71a77685e6
commit c2a22b57b0
1 changed files with 30 additions and 16 deletions

View File

@ -15,44 +15,58 @@ projectFile=''
var serializer = new JavaScriptSerializer(); var serializer = new JavaScriptSerializer();
var projectText = File.ReadAllText(projectFile); var projectText = File.ReadAllText(projectFile);
var project = (Dictionary<string, object>)serializer.DeserializeObject(projectText); var project = (Dictionary<string, object>)serializer.DeserializeObject(projectText);
object commandsObject; object commandsObject;
var commands = project.TryGetValue("commands", out commandsObject) var commands = project.TryGetValue("commands", out commandsObject)
? (Dictionary<string, object>)commandsObject ? (Dictionary<string, object>)commandsObject
: new Dictionary<string, object>(); : new Dictionary<string, object>();
if (commands.Keys.Contains("test")) if (commands.Keys.Contains("test"))
{ {
var projectFolder = Path.GetDirectoryName(projectFile); var projectFolder = Path.GetDirectoryName(projectFile);
object configsObject; object configsObject;
var configs = project.TryGetValue("configurations", out configsObject) var configs = project.TryGetValue("configurations", out configsObject)
? (Dictionary<string, object>)configsObject ? (Dictionary<string, object>)configsObject
: new Dictionary<string, object>(); : new Dictionary<string, object>
{
{ "net45", new Dictionary<string, object>() },
{ "k10", new Dictionary<string, object>() }
};
// Currently only net* and k* targets are supported. See aspnet/Universe#53 // Currently only net* and k* targets are supported. See aspnet/Universe#53
var targetFrameworks = configs.Keys.Where(k => k.StartsWith("net", StringComparison.OrdinalIgnoreCase) /* var targetFrameworks = configs.Keys.Where(k => k.StartsWith("net", StringComparison.OrdinalIgnoreCase)
|| k.StartsWith("k", StringComparison.OrdinalIgnoreCase) */ ); || k.StartsWith("k", StringComparison.OrdinalIgnoreCase));
var originalTargetFramework = Environment.GetEnvironmentVariable("TARGET_FRAMEWORK");
try try
{ {
foreach (var framework in targetFrameworks) foreach (var framework in targetFrameworks)
{ {
// Workaround for aspnet/KRuntime#129 if (framework.StartsWith("net", StringComparison.OrdinalIgnoreCase))
var frameworkString = framework.StartsWith("net", StringComparison.OrdinalIgnoreCase) {
? "" UseSvr50();
: framework; }
else
{
UseSvrc50();
}
Environment.SetEnvironmentVariable("TARGET_FRAMEWORK", frameworkString);
K("test", projectFolder); K("test", projectFolder);
} }
} finally } finally
{ {
Environment.SetEnvironmentVariable("TARGET_FRAMEWORK", originalTargetFramework); UseSvr50();
} }
} }
} }
macro name='K' command='string' workingdir='string' macro name='K' command='string' workingdir='string'
k k
macro name='UseSvr50'
exec program='cmd' commandline='/C kvm use default -svr50 -x86' if='!IsMono'
exec program='kvm' commandline='use default -svr50 -x86' if='IsMono'
macro name='UseSvrc50'
exec program='cmd' commandline='/C kvm use default -svrc50 -x86' if='!IsMono'
exec program='kvm' commandline='use default -svrc50 -x86' if='IsMono'