Skip to content

Commit

Permalink
CI test for update as Raku community module
Browse files Browse the repository at this point in the history
  • Loading branch information
lizmat committed Dec 2, 2024
1 parent 7b354e6 commit 3cb9cde
Show file tree
Hide file tree
Showing 15 changed files with 411 additions and 126 deletions.
26 changes: 26 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Linux

on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:

jobs:
raku:
strategy:
matrix:
os:
- ubuntu-latest
raku-version:
- 'latest'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: Raku/setup-raku@v1
with:
raku-version: ${{ matrix.raku-version }}
- name: Run Special Tests
run: raku run-tests -i
26 changes: 26 additions & 0 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: MacOS

on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:

jobs:
raku:
strategy:
matrix:
os:
- macos-latest
raku-version:
- 'latest'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: Raku/setup-raku@v1
with:
raku-version: ${{ matrix.raku-version }}
- name: Run Special Tests
run: raku run-tests -i
11 changes: 0 additions & 11 deletions .github/workflows/test.yaml

This file was deleted.

26 changes: 26 additions & 0 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Windows

on:
push:
branches:
- '*'
tags-ignore:
- '*'
pull_request:

jobs:
raku:
strategy:
matrix:
os:
- windows-latest
raku-version:
- 'latest'
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: Raku/setup-raku@v1
with:
raku-version: ${{ matrix.raku-version }}
- name: Run Special Tests
run: raku run-tests -i
4 changes: 3 additions & 1 deletion Changes
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
Revision History for 'Test::When' Perl 6 Distribution
Revision History for Test-When

{{$NEXT}}

1.001001 2016-05-19
- First version released on an unsuspecting world
30 changes: 18 additions & 12 deletions META6.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
{
"name": "Test::When",
"description": "Selectively run tests based on the environment and installed modules and libs",
"version": "1.001009",
"perl": "6.c",
"auth": "zef:raku-community-modules",
"authors": [
"Zoffix Znet"
],
"auth": "zef:raku-community-modules",
"depends": [],
"test-depends": [
"Test"
"build-depends": [
],
"depends": [
],
"description": "Selectively run tests based on the environment and installed modules and libs",
"license": "Artistic-2.0",
"name": "Test::When",
"perl": "6.c",
"provides": {
"Test::When": "lib/Test/When.pm6"
"Test::When": "lib/Test/When.rakumod"
},
"license": "Artistic-2.0",
"source-url": "https://github.com/raku-community-modules/Test-When"
}
"resources": [
],
"source-url": "https://github.com/raku-community-modules/Test-When.git",
"tags": [
],
"test-depends": [
],
"version": "1.001009"
}
137 changes: 52 additions & 85 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,155 +1,122 @@
# NAME [![Tests on source](https://github.com/raku-community-modules/Test-When/actions/workflows/test.yaml/badge.svg)](https://github.com/raku-community-modules/Test-When/actions/workflows/test.yaml)
[![Actions Status](https://github.com/raku-community-modules/Test-When/actions/workflows/linux.yml/badge.svg)](https://github.com/raku-community-modules/Test-When/actions) [![Actions Status](https://github.com/raku-community-modules/Test-When/actions/workflows/macos.yml/badge.svg)](https://github.com/raku-community-modules/Test-When/actions) [![Actions Status](https://github.com/raku-community-modules/Test-When/actions/workflows/windows.yml/badge.svg)](https://github.com/raku-community-modules/Test-When/actions)

NAME
====

Test::When - Selectively run tests based on the environment and installed modules and libs

# TABLE OF CONTENTS
- [NAME](#name)
- [SYNOPSIS](#synopsis)
- [UNIMPLEMENTED / SPEC](#unimplemented--spec)
- [DESCRIPTION](#description)
- [USAGE](#usage)
- [Environmental Variable Controlled Tests](#environmental-variable-controlled-tests)
- [`smoke`](#smoke)
- [`interactive`](#interactive)
- [`extended`](#extended)
- [`release`](#release)
- [`author`](#author)
- [`online`](#online)
- [Meaning of the Respected Environmental Variables](#meaning-of-the-respected-environmental-variables)
- [REPOSITORY](#repository)
- [BUGS](#bugs)
- [AUTHOR](#author-1)
- [LICENSE](#license)

# SYNOPSIS
SYNOPSIS
========

```raku
use Test::When <release author>,
:modules<Extra::Features More::Options>,
:libs( 'someClib', any(<sqlite3 mysql pg>) );
use Test::When <release author>,
:modules<Extra::Features More::Options>,
:libs( 'someClib', any(<sqlite3 mysql pg>) );
```

# UNIMPLEMENTED / SPEC
UNIMPLEMENTED / SPEC
====================

The `:modules` and `:libs` restrictions aren't yet implemented, but will
be soon. Checkout the [SPECIFICATION](SPECIFICATION.md) for details on what
they will do.
The `:modules` and `:libs` restrictions aren't yet implemented, but will be soon. Checkout the [SPECIFICATION](SPECIFICATION.md) for details on what they will do.

# DESCRIPTION
DESCRIPTION
===========

This module lets you write selective tests that will only run when user requested, say, network tests to run, or when the runner of the tests
explicitly requested any interactive tests to be avoided. These checks are
heavily based on the decisions by the [Lancaster Consensus](https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md#environment-variables-for-testing-contexts)
This module lets you write selective tests that will only run when user requested, say, network tests to run, or when the runner of the tests explicitly requested any interactive tests to be avoided. These checks are heavily based on the decisions by the [Lancaster Consensus](https://github.com/Perl-Toolchain-Gang/toolchain-site/blob/master/lancaster-consensus.md#environment-variables-for-testing-contexts).

*Currently unimplemented.* The module also allows run tests only when a
specific module or C library are installed. This is handy when your
module offers extra optional functionality dependent on extra stuff, for
example.
*Currently unimplemented.* The module also allows run tests only when a specific module or C library are installed. This is handy when your module offers extra optional functionality dependent on extra stuff, for example.

# USAGE
USAGE
=====

The type of tests your test file represents is specified on the `use` line
of `Test::When` module.
The type of tests your test file represents is specified on the `use` line of `Test::When` module.

## Environmental Variable Controlled Tests
Environmental Variable Controlled Tests
---------------------------------------

```raku
use Test::When <author extended>;
use Test::When <author extended>;
```

The type of test environment to look for is set by positional arguments
provided on the `use` line. Multiple positional arguments can be
combined. Whether your tests run depends on the set
environmental variables.
The type of test environment to look for is set by positional arguments provided on the `use` line. Multiple positional arguments can be combined. Whether your tests run depends on the set environmental variables.

The following positional arguments are supported:

### `smoke`
### smoke

```raku
use Test::When <smoke>;
use Test::When <smoke>;
```

Tests to run when either `AUTOMATED_TESTING` or `ALL_TESTING` env vars are true.

### `interactive`
### interactive

```raku
use Test::When <interactive>;
use Test::When <interactive>;
```

Tests must **NOT** be run when `NONINTERACTIVE_TESTING` is set to true,
unless `ALL_TESTING` is also set to true.
Tests must **NOT** be run when `NONINTERACTIVE_TESTING` is set to true, unless `ALL_TESTING` is also set to true.

### `extended`
### extended

```raku
use Test::When <extended>;
use Test::When <extended>;
```

Tests to be run when either `EXTENDED_TESTING`, `RELEASE_TESTING`,
or `ALL_TESTING` env var is set to true.
Tests to be run when either `EXTENDED_TESTING`, `RELEASE_TESTING`, or `ALL_TESTING` env var is set to true.

### `release`
### release

```raku
use Test::When <release>;
use Test::When <release>;
```

Tests to be run when `RELEASE_TESTING` or `ALL_TESTING` env var is set to true.

### `author`
### author

```raku
use Test::When <author>;
use Test::When <author>;
```

Tests to be run when `AUTHOR_TESTING` or `ALL_TESTING` env var is set to true.

### `online`
### online

```raku
use Test::When <online>;
use Test::When <online>;
```

Tests to be run when `ONLINE_TESTING` or `ALL_TESTING` env var is set to true.

### Meaning of the Respected Environmental Variables

* `AUTOMATED_TESTING`: if true, tests are being run by an automated testing facility and not as part of the installation of a module; CPAN smokers must set this to true; CPAN clients (e.g. `zef`) must not set this.

* `NONINTERACTIVE_TESTING`: if true, tests should not attempt to interact with a user; output may not be seen and prompts will not be answered.
* `AUTOMATED_TESTING`: if true, tests are being run by an automated testing facility and not as part of the installation of a module; smokers must set this to true; clients (e.g. `zef`) must not set this.

* `EXTENDED_TESTING`: if true, the user or process running tests is willing to run optional tests that may take extra time or resources to complete. Such tests must not include any development or QA tests. Only tests of runtime functionality should be included.
* `NONINTERACTIVE_TESTING`: if true, tests should not attempt to interact with a user; output may not be seen and prompts will not be answered.

* `RELEASE_TESTING`: if true, tests are being run as part of a release QA process; CPAN clients must not set this variable.
* `EXTENDED_TESTING`: if true, the user or process running tests is willing to run optional tests that may take extra time or resources to complete. Such tests must not include any development or QA tests. Only tests of runtime functionality should be included.

* `AUTHOR_TESTING`: if true, tests are being run as part of an author's personal development process; such tests may or may not be run prior to release. CPAN clients must not set this variable. Distribution packagers (ppm, deb, rpm, etc.) should not set this variable.
* `RELEASE_TESTING`: if true, tests are being run as part of a release QA process; clients must not set this variable.

* `ONLINE_TESTING`: unless true, tests must not attempt to access a network
resource (such a website or attempt to query a network interface).
* `AUTHOR_TESTING`: if true, tests are being run as part of an author's personal development process; such tests may or may not be run prior to release. clients must not set this variable. Distribution packagers (ppm, deb, rpm, etc.) should not set this variable.

* `ALL_TESTING`: if true, all possible tests will be run. That is, this
module will NOT skip any tests it could possibly skip under other
environment. This **includes** tests that require a particular module
or C library to be installed.
* `ONLINE_TESTING`: unless true, tests must not attempt to access a network resource (such a website or attempt to query a network interface).

# REPOSITORY
* `ALL_TESTING`: if true, all possible tests will be run. That is, this module will NOT skip any tests it could possibly skip under other environment. This **includes** tests that require a particular module or C library to be installed.

Fork this module on GitHub:
https://github.com/raku-community-modules/Test-When
AUTHOR
======

# BUGS
Zoffix Znet

To report bugs or request features, please use
https://github.com/raku-community-modules/Test-When/issues
COPYRIGHT AND LICENSE
=====================

# AUTHOR
Copyright 2016 - 2017 Zoffix Znet

Zoffix Znet (http://zoffix.com/)
Copyright 2020 - 2024 Raku Community

# LICENSE
This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.

You can use and distribute this module under the terms of the
The Artistic License 2.0. See the `LICENSE` file included in this
distribution for complete details.
Loading

0 comments on commit 3cb9cde

Please sign in to comment.