<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright (C) 2011, Red Hat, Inc.

   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
-->
<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>
    <artifactId>linuxtools-lttng-parent</artifactId>
    <groupId>org.eclipse.linuxtools.lttng</groupId>
    <version>0.9.2</version>
  </parent>

  <artifactId>org.eclipse.linuxtools.lttng.core.tests</artifactId>
  <version>0.4.0-SNAPSHOT</version>
  <packaging>eclipse-test-plugin</packaging>

  <name>Linux Tools LTTng Core Unit Test Suite</name>

 <build>
     <!-- workaround for https://issues.sonatype.org/browse/TYCHO-168 -->
     <resources>
      <resource>
        <directory>src</directory>
        <excludes>
          <exclude>**/*.java</exclude>
        </excludes>
      </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.2</version>
            <executions>
                <execution>
                    <id>prepare</id>
                    <phase>validate</phase>
                    <configuration>
                    <tasks>
                        <echo message="prepare phase" />
                        <gunzip src="traceset/trace-15471events_nolost_newformat.tar.gz" dest="traceset/" />
                        <untar src="traceset/trace-15471events_nolost_newformat.tar" dest="traceset/" />
                        <gunzip src="traceset/trace-15316events_nolost_newformat.tar.gz" dest="traceset/" />
                        <untar src="traceset/trace-15316events_nolost_newformat.tar" dest="traceset/" />
                    </tasks>
                    </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-surefire-plugin</artifactId>
            <version>${tycho-version}</version>
            <configuration>
                <testSuite>org.eclipse.linuxtools.lttng.core.tests</testSuite>
                <testClass>org.eclipse.linuxtools.lttng.tests.AllLTTngCoreTests</testClass>
                <useUIHarness>false</useUIHarness>
                <useUIThread>false</useUIThread>
                <product>org.eclipse.sdk.ide</product>
            </configuration>
        </plugin>
    </plugins>
  </build>

 <groupId>org.eclipse.linuxtools.lttng</groupId>
</project>
