<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011, Obeo

   All rights reserved. This program and the accompanying materials
   are made available under the terms of the Eclipse Public License v1.0
   which accompanies this distribution, and is available at
   http://www.eclipse.org/legal/epl-v10.html
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse.acceleo</groupId>
    <artifactId>org.eclipse.acceleo-parent</artifactId>
    <version>3.7.11-SNAPSHOT</version>
    <relativePath>../..</relativePath>
  </parent>

  <artifactId>org.eclipse.acceleo.tests</artifactId>
  <version>3.7.11-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <name>Acceleo Tests</name>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
          <includes>
            <include>org/eclipse/acceleo/tests/suite/AllTests.class</include>
          </includes>        
          <useUIHarness>false</useUIHarness>
          <useUIThread>false</useUIThread>
          <testFailureIgnore>true</testFailureIgnore>
          <appArgLine>-Xmx1024m -XX:MaxPermSize=256m</appArgLine>
        </configuration>
      </plugin>
     </plugins>
    </build>
</project>