<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->
<executablePlugins>

  <!-- native nunit runners -->
  <executablePlugin>
    <identifier>NUNIT</identifier>
    <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass>
    <vendor>MICROSOFT</vendor>
    <executable>nunit-console</executable>
    <profile>NUNIT</profile>
    <frameworkVersions>
      <frameworkVersion>4.5.1</frameworkVersion>
      <frameworkVersion>4.5</frameworkVersion>
      <frameworkVersion>4.0</frameworkVersion>
      <frameworkVersion>3.5</frameworkVersion>
      <frameworkVersion>3.0</frameworkVersion>
      <frameworkVersion>2.0.50727</frameworkVersion>
      <frameworkVersion>1.1.4322</frameworkVersion>
    </frameworkVersions>
    <platforms>
      <platform>
        <operatingSystem>Windows</operatingSystem>
      </platform>
    </platforms>
  </executablePlugin>
  <executablePlugin>
    <identifier>NUNIT-x86</identifier>
    <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass>
    <vendor>MICROSOFT</vendor>
    <executable>nunit-console-x86</executable>
    <profile>NUNIT-x86</profile>
    <frameworkVersions>
      <frameworkVersion>4.5.1</frameworkVersion>
      <frameworkVersion>4.5</frameworkVersion>
      <frameworkVersion>4.0</frameworkVersion>
      <frameworkVersion>3.5</frameworkVersion>
      <frameworkVersion>3.0</frameworkVersion>
      <frameworkVersion>2.0.50727</frameworkVersion>
    </frameworkVersions>
    <platforms>
      <platform>
        <operatingSystem>Windows</operatingSystem>
      </platform>
    </platforms>
  </executablePlugin>


  <!-- Mono-packaged NUNIT-runners -->
  <executablePlugin>
    <identifier>NUNIT</identifier>
    <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass>
    <vendor>MONO</vendor>
    <executable>nunit-console</executable>
    <profile>NUNIT</profile>
    <frameworkVersions>
      <frameworkVersion>4.0</frameworkVersion>
      <frameworkVersion>1.1.4322</frameworkVersion>
    </frameworkVersions>
    <platforms>
      <platform>
        <operatingSystem>Windows</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Mac OS X</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Linux</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Solaris</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>FreeBSD</operatingSystem>
      </platform>
    </platforms>
  </executablePlugin>
  <executablePlugin>
    <identifier>NUNIT</identifier>
    <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass>
    <vendor>MONO</vendor>
    <!-- until MONO < 2.10, nunit for CLR 2.0 dll's are run though nunit-console2 -->
    <executable>nunit-console2</executable>
    <profile>NUNIT</profile>
    <frameworkVersions>
      <frameworkVersion>3.5</frameworkVersion>
      <frameworkVersion>3.0</frameworkVersion>
      <frameworkVersion>2.0.50727</frameworkVersion>
    </frameworkVersions>
    <platforms>
      <platform>
        <operatingSystem>Windows</operatingSystem>
      </platform>
      <platform>      
        <operatingSystem>Mac OS X</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Linux</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Solaris</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>FreeBSD</operatingSystem>
      </platform>
    </platforms>
  </executablePlugin>


  <executablePlugin>
    <identifier>NUNIT-4.0</identifier>
    <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass>
    <vendor>MONO</vendor>
    <executable>nunit-console4</executable>
    <profile>NUNIT</profile>
    <frameworkVersions>
      <frameworkVersion>4.0</frameworkVersion>
    </frameworkVersions>
    <platforms>
      <platform>
        <operatingSystem>Windows</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Mac OS X</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Linux</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>Solaris</operatingSystem>
      </platform>
      <platform>
        <operatingSystem>FreeBSD</operatingSystem>
      </platform>
    </platforms>
  </executablePlugin>
</executablePlugins>
