<metapackage xmlns:os="http://opensuse.org/Standards/One_Click_Install" xmlns="http://opensuse.org/Standards/One_Click_Install">
  <group>
    <repositories>
      <repository recommended="true">
        <name>home:smithfarm</name>
        <summary>smithfarm's Home Project</summary>
        <description>The tendency to persevere, to persist in spite of hindrances, discouragements and impossibilities -- it is this that distinguishes the strong soul from the weak.</description>
        <url>https://download.opensuse.org/repositories/home:/smithfarm/15.5/</url>
      </repository>
      <repository recommended="true">
        <name>openSUSE:Backports:SLE-15-SP5:Update</name>
        <summary>Online updates for openSUSE:Backports:SLE-15-SP5</summary>
        <description>This project is releasing updates for openSUSE:Backports SLE-15-SP5</description>
        <url>https://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-15-SP5:/Update/standard/</url>
      </repository>
      <repository recommended="true">
        <name>openSUSE:Leap:15.5:Update</name>
        <summary>Online updates for openSUSE Leap 15.5</summary>
        <description>This project is releasing the official updates for openSUSE Leap 15.5</description>
        <url>https://download.opensuse.org/update/leap/15.5/oss/</url>
      </repository>
      <repository recommended="true">
        <name>openSUSE:Leap:15.5</name>
        <summary></summary>
        <description>openSUSE Leap borrows packages from SLE. The content of the build media is almost the same as Leap:15.2, but the development is drastic different. It includes the binaries (instead of the sources) directly from SLE. https://lists.opensuse.org/opensuse-factory/2020-04/msg00165.html</description>
        <url>https://download.opensuse.org/repositories/openSUSE:/Leap:/15.5/standard/</url>
      </repository>
      <repository recommended="true">
        <name>openSUSE:Backports:SLE-15-SP5:Checks</name>
        <summary>Backports Checks for SLE-15-SP5</summary>
        <description>Backports Checks for SLE-15-SP5</description>
        <url>https://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-15-SP5:/Checks/standard/</url>
      </repository>
      <repository recommended="true">
        <name>openSUSE:Backports:SLE-15-SP5</name>
        <summary>Backports project for SLE-15-SP5</summary>
        <description>Backports project for SLE-15-SP5</description>
        <url>https://download.opensuse.org/repositories/openSUSE:/Backports:/SLE-15-SP5/standard/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP5:Update</name>
        <summary>SLE 15 SP5</summary>
        <description>SLE 15 SP5</description>
        <url>https://download.opensuse.org/update/leap/15.5/sle</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP5:GA</name>
        <summary></summary>
        <description></description>
        <url>https://download.opensuse.org/repositories/SUSE:/SLE-15-SP5:/GA/pool/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP4:Update</name>
        <summary>SLE 15 SP4</summary>
        <description>SLE 15 SP4</description>
        <url>https://download.opensuse.org/update/leap/15.4/sle/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP4:GA</name>
        <summary></summary>
        <description></description>
        <url>https://download.opensuse.org/repositories/SUSE:/SLE-15-SP4:/GA/pool/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP3:Update</name>
        <summary>SLE 15 SP3</summary>
        <description>SLE 15 SP3</description>
        <url>https://download.opensuse.org/update/leap/15.3/sle/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP3:GA</name>
        <summary></summary>
        <description></description>
        <url>https://download.opensuse.org/repositories/SUSE:/SLE-15-SP3:/GA/pool/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP2:Update</name>
        <summary>SLE 15 SP2</summary>
        <description>SLE 15 SP2</description>
        <url>https://download.opensuse.org/update/leap/15.4/sle</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP2:GA</name>
        <summary>SLE 15 SP2</summary>
        <description>SLE 15 SP2</description>
        <url>https://download.opensuse.org/repositories/SUSE:/SLE-15-SP2:/GA/pool/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP1:Update</name>
        <summary>SLE 15 SP1</summary>
        <description>SLE 15 SP1</description>
        <url>https://download.opensuse.org/update/leap/15.4/sle</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15-SP1:GA</name>
        <summary>SLE 15 SP1</summary>
        <description>SLE 15 SP1</description>
        <url>https://download.opensuse.org/repositories/SUSE:/SLE-15-SP1:/GA/pool/</url>
      </repository>
      <repository recommended="true">
        <name>SUSE:SLE-15:Update</name>
        <summary>SLE 15</summary>
        <description>SLE 15</description>
        <url>https://download.opensuse.org/update/leap/15.4/sle</url>
      </repository>
      <repository recommended="false">
        <name>SUSE:SLE-15:GA</name>
        <summary>SLE 15</summary>
        <description>SLE 15</description>
        <url>https://download.opensuse.org/repositories/SUSE:/SLE-15:/GA/pool/</url>
      </repository>
    </repositories>
    <software>
      <item>
        <name>perl-Test-Exception</name>
        <summary>Test exception-based code</summary>
        <description>This module provides a few convenience methods for testing exception based
code. It is built with Test::Builder and plays happily with Test::More and
friends.

If you are not already familiar with Test::More now would be the time to go
take a look.

You can specify the test plan when you 'use Test::Exception' in the same
way as 'use Test::More'. See Test::More for details.

NOTE: Test::Exception only checks for exceptions. It will ignore other
methods of stopping program execution - including exit(). If you have an
exit() in evalled code Test::Exception will not catch this with any of its
testing functions.

NOTE: This module uses Sub::Uplevel and relies on overriding
'CORE::GLOBAL::caller' to hide your test blocks from the call stack. If
this use of global overrides concerns you, the Test::Fatal module offers a
more minimalist alternative.

* *throws_ok*

Tests to see that a specific exception is thrown. throws_ok() has two
forms:

  throws_ok BLOCK REGEX, TEST_DESCRIPTION
  throws_ok BLOCK CLASS, TEST_DESCRIPTION

In the first form the test passes if the stringified exception matches the
give regular expression. For example:

    throws_ok { read_file( 'unreadable' ) } qr/No file/, 'no file';

If your perl does not support 'qr//' you can also pass a regex-like string,
for example:

    throws_ok { read_file( 'unreadable' ) } '/No file/', 'no file';

The second form of throws_ok() test passes if the exception is of the same
class as the one supplied, or a subclass of that class. For example:

    throws_ok { $foo-&gt;bar } &quot;Error::Simple&quot;, 'simple error';

Will only pass if the 'bar' method throws an Error::Simple exception, or a
subclass of an Error::Simple exception.

You can get the same effect by passing an instance of the exception you
want to look for. The following is equivalent to the previous example:

    my $SIMPLE = Error::Simple-&gt;new;
    throws_ok { $foo-&gt;bar } $SIMPLE, 'simple error';

Should a throws_ok() test fail it produces appropriate diagnostic messages.
For example:

    not ok 3 - simple error
    
    
    

Like all other Test::Exception functions you can avoid prototypes by
passing a subroutine explicitly:

    throws_ok( sub {$foo-&gt;bar}, &quot;Error::Simple&quot;, 'simple error' );

A true value is returned if the test succeeds, false otherwise. On exit $@
is guaranteed to be the cause of death (if any).

A description of the exception being checked is used if no optional test
description is passed.

NOTE: Remember when you 'die $string_without_a_trailing_newline' perl will
automatically add the current script line number, input line number and a
newline. This will form part of the string that throws_ok regular
expressions match against.

* *dies_ok*

Checks that a piece of code dies, rather than returning normally. For
example:

    sub div {
        my ( $a, $b ) = @_;
        return $a / $b;
    };

    dies_ok { div( 1, 0 ) } 'divide by zero detected';

    
    dies_ok( sub { div( 1, 0 ) }, 'divide by zero detected' );

A true value is returned if the test succeeds, false otherwise. On exit $@
is guaranteed to be the cause of death (if any).

Remember: This test will pass if the code dies for any reason. If you care
about the reason it might be more sensible to write a more specific test
using throws_ok().

The test description is optional, but recommended.

* *lives_ok*

Checks that a piece of code doesn't die. This allows your test script to
continue, rather than aborting if you get an unexpected exception. For
example:

    sub read_file {
        my $file = shift;
        local $/;
        open my $fh, '&lt;', $file or die &quot;open failed ($!)\n&quot;;
        $file = &lt;FILE&gt;;
        return $file;
    };

    my $file;
    lives_ok { $file = read_file('test.txt') } 'file read';

    
    lives_ok( sub { $file = read_file('test.txt') }, 'file read' );

Should a lives_ok() test fail it produces appropriate diagnostic messages.
For example:

    not ok 1 - file read
    
    

A true value is returned if the test succeeds, false otherwise. On exit $@
is guaranteed to be the cause of death (if any).

The test description is optional, but recommended.

* *lives_and*

Run a test that may throw an exception. For example, instead of doing:

  my $file;
  lives_ok { $file = read_file('answer.txt') } 'read_file worked';
  is $file, &quot;42&quot;, 'answer was 42';

You can use lives_and() like this:

  lives_and { is read_file('answer.txt'), &quot;42&quot; } 'answer is 42';
  
  lives_and(sub {is read_file('answer.txt'), &quot;42&quot;}, 'answer is 42');

Which is the same as doing

  is read_file('answer.txt'), &quot;42\n&quot;, 'answer is 42';

unless 'read_file('answer.txt')' dies, in which case you get the same kind
of error as lives_ok()

  not ok 1 - answer is 42
  
  

A true value is returned if the test succeeds, false otherwise. On exit $@
is guaranteed to be the cause of death (if any).

The test description is optional, but recommended.</description>
      </item>
    </software>
  </group>
</metapackage>
