<!--
 * 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.4.0-SNAPSHOT</version>

	<parent>
		<groupId>org.eclipse.gmf-tooling</groupId>
		<artifactId>tests</artifactId>
		<version>3.0.0-SNAPSHOT</version>
		<relativePath>../</relativePath>
	</parent>
	
	<properties>
		<os-jvm-flags/>
	</properties>
	
	<profiles>
		<profile>
			<id>macosx-jvm-flags</id>
			<activation>
				<os><family>mac</family></os>
			</activation>
			<properties>
				<os-jvm-flags>-XstartOnFirstThread</os-jvm-flags>
			</properties>
		</profile>
	</profiles>	
	
	<build>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>target-platform-configuration</artifactId>
				<version>${tycho-version}</version>
				<configuration>
				<dependency-resolution>
					<extraRequirements>
						<requirement>
							<type>eclipse-plugin</type>
							<id>org.eclipse.osgi.compatibility.state</id>
							<versionRange>1.0.0</versionRange>
						</requirement>
					</extraRequirements>
				</dependency-resolution>
				</configuration>
			</plugin>
			<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} -Xmx2g -XX:MaxPermSize=256m -DbuildingWithTycho=true ${os-jvm-flags}</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>
							<dependency>
								<type>p2-installable-unit</type>
								<artifactId>org.hamcrest</artifactId>
							</dependency>
							<dependency>
								<type>p2-installable-unit</type>
								<artifactId>org.eclipse.equinox.event</artifactId>
							</dependency>
							<dependency>
								<type>p2-installable-unit</type>
								<artifactId>org.eclipse.e4.ui.workbench.renderers.swt</artifactId>
							</dependency>
							<dependency>
								<type>eclipse-feature</type>
								<artifactId>org.eclipse.jdt</artifactId>
							</dependency>
					</dependencies>
				</configuration>
			</plugin>
		</plugins>
	</build>


</project>