The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Muldis::Rosetta::Validator - A common comprehensive test suite to run against all Engines

VERSION

This document describes Muldis::Rosetta::Validator version 0.16.0 for Perl 5.

SYNOPSIS

This can be the complete content of the main t/*.t file for an example Muldis Rosetta Engine distribution:

    use 5.008001;
    use utf8;
    use strict;
    use warnings FATAL => 'all';

    # Load the test suite.
    use Muldis::Rosetta::Validator;

    # Run the test suite.
    Muldis::Rosetta::Validator::main({
        'engine_name' => 'Muldis::Rosetta::Engine::Example',
        'process_config' => {},
    });

    1;

The current release of Muldis::Rosetta::Validator uses Test::More internally, and main() will invoke it to output what the standard Perl test harness expects. It is expected that this will change in the future so that Validator does not use Test::More internally, and rather will simply return test results in a data structure that the main t/*.t then can disseminate and pass the components to Test::More itself.

DESCRIPTION

The Muldis::Rosetta::Validator Perl 5 module is a common comprehensive test suite to run against all Muldis Rosetta Engines. You run it against a Muldis Rosetta Engine module to ensure that the Engine and/or the database behind it implements the parts of the Muldis Rosetta API that your application needs, and that the API is implemented correctly. Muldis::Rosetta::Validator is intended to guarantee a measure of quality assurance (QA) for Muldis::Rosetta, so your application can use the database access framework with confidence of safety.

Alternately, if you are writing a Muldis Rosetta Engine module yourself, Muldis::Rosetta::Validator saves you the work of having to write your own test suite for it. You can also be assured that if your module passes Muldis::Rosetta::Validator's approval, then your module can be easily swapped in for other Engine modules by your users, and that any changes you make between releases haven't broken something important.

Muldis::Rosetta::Validator would be used similarly to how Sun has an official validation suite for Java Virtual Machines to make sure they implement the official Java specification.

For reference and context, please see the FEATURE SUPPORT VALIDATION documentation section in the core Muldis::Rosetta module.

Note that, as is the nature of test suites, Muldis::Rosetta::Validator will be getting regular updates and additions, so that it anticipates all of the different ways that people want to use their databases. This task is unlikely to ever be finished, given the seemingly infinite size of the task. You are welcome and encouraged to submit more tests to be included in this suite at any time, as holes in coverage are discovered.

This documentation is pending.

INTERFACE

This documentation is pending; this section may also be split into several.

DIAGNOSTICS

This documentation is pending.

CONFIGURATION AND ENVIRONMENT

This documentation is pending.

DEPENDENCIES

This file requires any version of Perl 5.x.y that is at least 5.8.1, and recommends one that is at least 5.10.1.

It also requires these Perl 5 packages that are bundled with any version of Perl 5.x.y that is at least 5.10.1, and are also on CPAN for separate installation by users of earlier Perl versions: Test::More-ver(0.92..*).

It also requires these Perl 5 packages that are on CPAN: namespace::autoclean-ver(0.09..*), Try::Tiny-ver(0.04..*), Class::MOP-ver(0.98..*), Test::Moose-ver(0.98..*).

It also requires these Perl 5 packages that are in the current distribution: Muldis::Rosetta::Interface-ver(0.16.0..*).

INCOMPATIBILITIES

None reported.

SEE ALSO

Go to Muldis::Rosetta for the majority of distribution-internal references, and Muldis::Rosetta::SeeAlso for the majority of distribution-external references.

BUGS AND LIMITATIONS

This documentation is pending.

AUTHOR

Darren Duncan (darren@DarrenDuncan.net)

LICENSE AND COPYRIGHT

This file is part of the Muldis Rosetta framework.

Muldis Rosetta is Copyright © 2002-2010, Muldis Data Systems, Inc.

See the LICENSE AND COPYRIGHT of Muldis::Rosetta for details.

TRADEMARK POLICY

The TRADEMARK POLICY in Muldis::Rosetta applies to this file too.

ACKNOWLEDGEMENTS

The ACKNOWLEDGEMENTS in Muldis::Rosetta apply to this file too.