Mercurial > hg > mercurial
view mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/HgVersionConstraint.java @ 549:80a45e45918c
Run subrepo tests only for hg with revsets
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Mon, 25 Feb 2013 12:22:27 +0400 |
parents | a827c3756535 |
children | a7719626703d |
line wrap: on
line source
package jetbrains.buildServer.buildTriggers.vcs.mercurial; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.TestCommandSettingsFactory; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.VersionCommand; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception.ParseHgVersionException; import org.jetbrains.annotations.NotNull; import org.testng.annotations.DataProvider; import java.io.File; import java.lang.reflect.Method; public class HgVersionConstraint { @DataProvider public static Object[][] installedHgVersion(Method testMethod) throws Exception { HgVersion actualVersion = getHgVersion(); RequiredHgVersion constaint = testMethod.getAnnotation(RequiredHgVersion.class); if (constaint == null) constaint = testMethod.getDeclaringClass().getAnnotation(RequiredHgVersion.class); if (constaint == null) return new Object[][] { new Object[] { actualVersion }}; HgVersion requiredMinVersion = parse(constaint.min()); if (!actualVersion.isEqualsOrGreaterThan(requiredMinVersion)) return new Object[0][]; return new Object[][] { new Object[] { actualVersion }}; } private static HgVersion getHgVersion() throws Exception { VersionCommand versionCommand = new VersionCommand(new TestCommandSettingsFactory().create(), Util.getHgPath(), new File("..")); return versionCommand.call(); } private static HgVersion parse(@NotNull String version) throws ParseHgVersionException { return HgVersion.parse("Mercurial Distributed SCM (version " + version); } }