<?xml version="1.0" encoding="UTF-8"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.eclipse.cdt</groupId>
    <artifactId>cdt-parent</artifactId>
    <version>8.6.0-SNAPSHOT</version>
    <relativePath>../../pom.xml</relativePath>
  </parent>

  <version>2.0.0-SNAPSHOT</version>
  <artifactId>org.eclipse.cdt.autotools.tests</artifactId>
  <packaging>eclipse-test-plugin</packaging>
  
  <!-- Uncommenting this is useful when the repo is built first then you want to run tests on this plugin only -->
 <!-- <repositories>
	<repository>
		<id>cdt.repo</id>
		<url>file:/${basedir}/../../releng/org.eclipse.cdt.repo/target/repository</url>
		<layout>p2</layout>
	</repository>
</repositories>-->
  
  <build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<configuration>
					<useUIHarness>true</useUIHarness>
					<argLine>${tycho.testArgLine} ${base.ui.test.vmargs}</argLine>
					<includes>
						<include>**/AllAutotoolsTests.*</include>
					</includes>
					<testFailureIgnore>true</testFailureIgnore>
					<dependencies>
						<dependency>
							<artifactId>org.eclipse.platform.feature.group</artifactId>
							<type>p2-installable-unit</type>
						</dependency>
					</dependencies>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
