<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2018 Obeo
  This program and the accompanying materials
  are made available under the terms of the Eclipse Public License 2.0
  which accompanies this distribution, and is available at
  https://www.eclipse.org/legal/epl-2.0/

  SPDX-License-Identifier: EPL-2.0

  Contributors:
       Obeo - Initial API and implementation
-->
<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.sirius</groupId>
    <artifactId>sirius-parent</artifactId>
    <version>6.3.5-SNAPSHOT</version>
    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
  </parent>

  <properties>
    <sonar.coverage.exclusions>src/**/*</sonar.coverage.exclusions>
  </properties>

  <artifactId>org.eclipse.sirius.tests.junit.xtext</artifactId>
  <packaging>eclipse-test-plugin</packaging>
  <version>6.3.5-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <version>${tycho-version}</version>
        <configuration>
         <dependencies>
           <dependency>
             <type>eclipse-feature</type>
             <artifactId>org.eclipse.e4.rcp</artifactId>
             <version>0.0.0</version>
           </dependency>
         </dependencies>
          <systemProperties>
            <org.eclipse.sirius.tests.skipLongTests>${tests.skipLongTests}</org.eclipse.sirius.tests.skipLongTests>
            <org.eclipse.sirius.tests.skipUnreliableTests>${tests.skipUnreliableTests}</org.eclipse.sirius.tests.skipUnreliableTests>
            <createLocalRepresentationInSeparateResource>${createLocalRepresentationInSeparateResource}</createLocalRepresentationInSeparateResource>
          </systemProperties>
          <skipTests>${tests.junit.skip}</skipTests>
          <includes>
            <include>${tests.junit.include}</include>
          </includes>
          <useUIHarness>true</useUIHarness>
          <useUIThread>true</useUIThread>
          <argLine>${tests.vmargs}</argLine>
          <testFailureIgnore>${tests.ignoreFailures}</testFailureIgnore>
          <forkedProcessTimeoutInSeconds>${tests.timeout}</forkedProcessTimeoutInSeconds>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>
