Documentation
¶
Index ¶
- func BasketFlags() *pflag.FlagSet
- func GenerateControls(files ...string) <-chan string
- func GenerateControlsWithContext(ctx context.Context, b Basket, files ...string) <-chan string
- func GenerateIDs(ids ...string) <-chan string
- func GenerateIDsWithContext(ctx context.Context, ids ...string) <-chan string
- func GenerateTests(files ...string) <-chan string
- func GenerateTestsWithContext(ctx context.Context, b Basket, files ...string) <-chan string
- func SplitQualifiedName(name string) (string, string)
- type Basket
- type Job
- type Ledger
- type Result
- type Runner
- type Suite
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BasketFlags ¶
BasketFlags returns a flagset with all flags for filtering objects.
BasketFlags are regular expressions to filter objects. If you pass multiple regular expressions, all of them must match (AND). Example:
$ cat example.ttcn3 testcase foo() ... testcase bar() ... testcase foobar() ... ... $ ntt list --regex=foo --regex=bar example.foobar $ ntt list --regex='foo|bar' example.foo example.bar example.foobar
Similarly, you can also specify regular expressions for documentation tags. Example:
$ cat example.ttcn3 // @one // @two some-value testcase foo() ... // @two: some-other-value testcase bar() ... ... $ ntt list --tags-regex=@one --tags-regex=@two example.foo $ ntt list --tags-regex='@two: some' example.foo example.bar
func GenerateControls ¶
GenerateControls emits all control function ids from given TTCN-3 files to a channel.
func GenerateControlsWithContext ¶
GenerateControls emits all control function ids from given TTCN-3 files to a channel.
func GenerateIDs ¶
GenerateIDs emits given IDs to a channel.
func GenerateIDsWithContext ¶
GenerateIDs emits given IDs to a channel.
func GenerateTests ¶
GenerateTests emits all test ids from given TTCN-3 files to a channel.
func GenerateTestsWithContext ¶
GenerateTestsWithContext emits all test ids from given TTCN-3 files to a channel.
func SplitQualifiedName ¶
SplitQualifiedName splits a qualified name into module and test name.
Types ¶
type Basket ¶
type Basket struct {
// Name is the name of the basket. The basket is used to filter objects
// by tag, if no explicit filters are given.
Name string
// Regular expressions the object name must match.
NameRegex []string
// Regular expressions the object name must not match.
NameExclude []string
// Regular expressions the object tags must match.
TagsRegex []string
// Regular expressions the object tags must not match.
TagsExclude []string
// Baskets are sub-baskets to be ORed.
Baskets []Basket
}
A Basket is a filter for objects. It can be used to filter objects by name and tags.
Baskets are also filters defined by environment variables of the form:
NTT_LIST_BASKETS_<name> = <filters>
For example, to define a basket "stable" which excludes all objects with @wip or @flaky tags:
export NTT_LIST_BASKETS_stable="-X @wip|@flaky"
Baskets become active when they are listed in colon separated environment variable NTT_LIST_BASKETS. If you specify multiple baskets, at least of them must match (OR).
Rule of thumb: all baskets are ORed, all explicit filter options are ANDed. Example:
$ export NTT_LIST_BASKETS_stable="--tags-exclude @wip|@flaky" $ export NTT_LIST_BASKETS_ipv6="--tags-regex @ipv6" $ NTT_LIST_BASKETS=stable:ipv6 ntt list -R @flaky
Above example will output all tests with a @flaky tag and either @wip or @ipv6 tag.
If a basket is not defined by an environment variable, it's equivalent to a "--tags-regex" filter. For example, to lists all tests, which have either a @flaky or a @wip tag:
# Note, flaky and wip baskets are not specified explicitly. $ NTT_LIST_BASKETS=flaky:wip ntt list # This does the same: $ ntt list --tags-regex="@wip|@flaky"
func (*Basket) LoadFromEnvOrConfig ¶
Load baskets from given environment variable from environment or from configuration.
type Job ¶
type Job struct {
// Full qualified name of the test or control function to be executed.
Name string
// Working directory for the job.
Dir string
// Test suite the job belongs to.
Suite *Suite
// contains filtered or unexported fields
}
Job represents a single job to be executed.
type Runner ¶
type Runner interface {
// Run the jobs in the given channel.
Run(ctx context.Context, jobs <-chan *Job) <-chan Result
}
Runner is a test runner.
type Suite ¶
Suite represents a test suite.
func NewSuite ¶
NewSuite creates a new suite from the given files. It expects either a single directory as argument or a list of regular .ttcn3 files.
Calling NewSuite with an empty argument list will create a suite from current working directory or, if set, from NTT_SOURCE_DIR.
NewSuite will read manifest (package.yml) if any.