<?xml version="1.0" encoding="UTF-8"?>
<!--
 <copyright>
Copyright (c) 2012 itemis AG.
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:
    Mark Broerkens - initial API and implementation
 </copyright>

-->
<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.rmf</groupId>
		<artifactId>org.eclipse.rmf.releng</artifactId>
		<version>0.13.0-SNAPSHOT</version>
		<relativePath>../org.eclipse.rmf.releng/pom.xml</relativePath>
	</parent>
	<groupId>com.yakindu.rmf.plugins</groupId>
	<artifactId>org.eclipse.rmf.tests.reqif10.constraints</artifactId>
	<packaging>eclipse-test-plugin</packaging>
	<profiles>
		<profile>
			<id>macosx</id>
			<activation>
				<os>
					<family>mac</family>
				</os>
			</activation>
			<properties>
				<test.vmargs>-Xmx512m -XX:MaxPermSize=256m -XstartOnFirstThread</test.vmargs>
			</properties>
		</profile>
		<profile>
			<id>other-os</id>
			<activation>
				<os>
					<family>!mac</family>
				</os>
			</activation>
			<properties>
				<test.vmargs>-Xmx512m -XX:MaxPermSize=256m</test.vmargs>
			</properties>
		</profile>
	</profiles>
	<build>
		<sourceDirectory>src</sourceDirectory>
		<plugins>
			<plugin>
				<groupId>org.eclipse.tycho</groupId>
				<artifactId>tycho-surefire-plugin</artifactId>
				<version>${tycho.version}</version>
				<configuration>
					<includes>
						<include>**/*Tests.class</include>
						<exclude>**/Abstract*Tests.class</exclude>
					</includes>
					<useUIHarness>false</useUIHarness>
					<useUIThread>false</useUIThread>
					<argLine>${test.vmargs}</argLine>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>