The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Overview

This is a "hello world"-style example for Tapper. This subdirectory contains scripts and examples for a first start (a bit redundantly, as they are also found in other Tapper libraries).

Install Tapper

Install libraries from CPAN:

bash $ cpan install Task::Tapper::Server

Initialize Tapper

Create your personal ~/.tapper/ working directory:

bash $ tapper init --defaults

Start Tapper

You need several daemons running, e.g. in several terminals.

bash $ tapper_reports_web_server.pl

bash $ tapper-reports-receiver

bash $ tapper-reports-api

Execute tests

Set your environment

Several env vars are used to specify where the central server is, here it's about where to send test results. For this hello-world we point them to our localhost:

bash $ cd $HOME/.tapper/hello-world/00-set-environment $ source local-tapper-env.inc

Run example tests and report results

bash $ cd $HOME/.tapper/hello-world/01-executing-tests/

You can execute the scripts with prove (already available in your Linux distro) which executes the tests but does not report results to the server:

$ prove     t/basic/example-01-basic.t
$ prove -v  t/basic/example-01-basic.t
$ prove -r  t/                           # recursive
$ prove -rv t/                           # verbose
$ prove -r  t/basic                      # subset only
$ prove -r  t/complex                    # subset only

For running the tests inclusive reporting their results to the Tapper server (defined by $TAPPER_REPORT_SERVER) you execute them directly:

$ t/basic/
$ for t in $(find t/ -name "*.t") ; do $t ; done

More info

The utility libraries should be accessible, here we made tapper-autoreport directly available. See http://github.com/tapper/Tapper-autoreport for more.

Evaluate tests

The query API works by sending templates to the server which are evaluated and sent back. Inside the templates you use a query language to fetch values from the test results db.

Simple results

bash $ cd $HOME/.tapper/hello-world/02-query-api/ $ cat hello.tt | netcat localhost 7358 Planned tests: 5 5 5 5

Benchmarks

The mechanism is the same, just the templates are more complex, e.g. to select values that are deeper embedded in the test results:

bash $ cat benchmarks.tt | netcat localhost 7358 Benchmarks: 1995.10 1995.10 1995.10 1995.10

Now let's generate a gnuplot file with those data:

```bash $ cat benchmarks-gnuplot.tt | netcat localhost 7358 #! /usr/bin/env gnuplot TITLE = "Example bogomips" set title TITLE offset char 0, char -1 set style data linespoints set xtics rotate by 45 set xtics out offset 0,-2.0 set term png size 1200, 800 set output "example-03-benchmarks.png"

plot '-' using 1:2 with linespoints lt 3 lw 1 title "ratio"

       19 1995.10
       25 1995.10
       31 1995.10
       32 1995.10

```

You can also directly pipe such a result into gnuplot:

bash $ cat benchmarks-gnuplot.tt | netcat localhost 7358 | gnuplot $ eog example-03-benchmarks.png

See http://template-toolkit.org for more information about the template language.