<!--
 * Copyright (c) 2011 PetalsLink
 *  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:
 *      Mickael istria (PetalsLink)
-->
<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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.eclipse.gmf-tooling.tests</groupId>
	<artifactId>org.eclipse.gmf.tests</artifactId>
	<packaging>eclipse-test-plugin</packaging>
	<version>2.1.0-SNAPSHOT</version>

	<parent>
		<groupId>org.eclipse.gmf-tooling</groupId>
		<artifactId>tests</artifactId>
		<version>2.4.1-SNAPSHOT</version>
		<relativePath>../</relativePath>
	</parent>

	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>SWTBot tests</id>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<testClass>org.eclipse.gmf.tests.AllSWTBotTests</testClass>
		        			<useUIThread>false</useUIThread>
						</configuration>
					</execution>
					<execution>
						<id>default-test</id> <!-- Do not rename, see bug 364856 -->
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<testClass>org.eclipse.gmf.tests.AllTests</testClass>
		        			<useUIThread>true</useUIThread>
						</configuration>
					</execution>
				</executions>
				<!-- Inherited configuration -->
				<configuration>
					<useUIHarness>true</useUIHarness>
					<testSuite>org.eclipse.gmf.tests</testSuite>
					<argLine>${tycho.testArgLine} -Xmx512m -XX:MaxPermSize=128m -DbuildingWithTycho=true</argLine>
					<bundleStartLevel>
						<bundle>
							<id>org.eclipse.equinox.ds</id>
							<level>1</level>
							<autoStart>true</autoStart>
						</bundle>
					</bundleStartLevel>
					<dependencies>
						<dependency>
	             				<type>p2-installable-unit</type>
	             				<artifactId>org.eclipse.gmf.feature.group</artifactId>
	          				</dependency>
	          				<dependency>
	             				<type>p2-installable-unit</type>
	             				<artifactId>org.eclipse.pde.feature.group</artifactId>
	          				</dependency>
	          				<dependency>
	             				<type>p2-installable-unit</type>
	             				<artifactId>org.eclipse.emf.validation.ocl</artifactId>
	          				</dependency>
					</dependencies>
				</configuration>
			</plugin>
		</plugins>
	</build>


</project>