<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2017 Conrad Groth and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Conrad Groth - initial 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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <artifactId>eclipse.platform.swt.localbuild</artifactId>
    <groupId>eclipse.platform.swt</groupId>
    <version>4.15.0-SNAPSHOT</version>
    <relativePath>../../local-build/local-build-parent/</relativePath>
  </parent>
  <groupId>org.eclipse.swt</groupId>
  <artifactId>org.eclipse.swt.tests.cocoa</artifactId>
  <version>3.106.100-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>
  <properties>
    <code.ignoredWarnings>${tests.ignoredWarnings}</code.ignoredWarnings>
    <tycho.testArgLine></tycho.testArgLine>
    <skipAPIAnalysis>true</skipAPIAnalysis>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>target-platform-configuration</artifactId>
        <configuration>
          <!-- Make all platform-specific fragments available (and optional) via a feature -->
	      <dependency-resolution>
	         <extraRequirements>
	            <requirement>
	               <type>eclipse-feature</type>
	               <id>org.eclipse.swt.tests.fragments.feature</id>
	               <versionRange>0.0.0</versionRange>
	            </requirement>
	         </extraRequirements>
	      </dependency-resolution>
	      <!-- but only resolve against current environment as we don't want all fragments simultaneously in test -->
	      <environments combine.self="override"/> <!--  we only want platform specific artifacts here -->
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-surefire-plugin</artifactId>
        <configuration>
          <!-- When adding a test suite in the future, make sure to specify os-jvm-flags in argLine. See swt.tests pom.xml -->
          <skipTests>true</skipTests> <!-- Skip all tests on build servers, because it contains platform specific code -->
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
