<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2016, 2017 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

  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.0.3-SNAPSHOT</version>
    <relativePath>../../packaging/org.eclipse.sirius.parent</relativePath>
  </parent>

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

  <artifactId>org.eclipse.sirius.tests.ui.properties</artifactId>
  <packaging>eclipse-test-plugin</packaging>
  <version>6.0.3-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-source-plugin</artifactId>
        <version>${tycho-version}</version>
      </plugin>
      <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>
