<?xml version="1.0" encoding="UTF-8"?>
<!--
	Copyright (c) 2017, 2020 Eclipse contributors and others

	This program and the accompanying materials are made available under the
	terms of the Eclipse Public License 2.0 which is available at
	https://www.eclipse.org/legal/epl-2.0/.

	SPDX-License-Identifier: EPL-2.0
-->
<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>10.1.0-SNAPSHOT</version>
		<relativePath>../../pom.xml</relativePath>
    </parent>

    <version>1.0.0-SNAPSHOT</version>
    <artifactId>org.eclipse.cdt.lsp.core.tests</artifactId>
    <packaging>eclipse-test-plugin</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-surefire-plugin</artifactId>
                <configuration>
                <!-- If you have any UI tests, use this block -->
                    <useUIHarness>true</useUIHarness>
                    <useUIThread>true</useUIThread>
                    <argLine>${tycho.testArgLine} ${base.ui.test.vmargs}</argLine>
					<appArgLine>-pluginCustomization ${basedir}/../../disable_intro_in_tests.ini</appArgLine>
                <!-- else, if you have no UI tests, use this block -->
                    <!-- <useUIHarness>false</useUIHarness>
                    <useUIThread>false</useUIThread>
                    <argLine>${tycho.testArgLine} ${base.test.vmargs}</argLine> -->
                <!-- endif -->
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
