SlideShare a Scribd company logo
Using the
Power to Prove
DeNA Co., Ltd.
Kazuho Oku
Do you know prove?
Have you ever used it?
Sep 20 2013 Using the Power to Prove 2
Prove is…
command-line interface of Test::Harness
Test::Harness is the test runner
Sep 20 2013 Using the Power to Prove 3
$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e"
"test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/00-base.t t/01-new.t t/02-use.t
t/03-use-error.t t/04-use-defaults.t
t/00-base.t .......... ok
t/01-new.t ........... ok
…
$ prove
t/00-base.t .......... ok
t/01-new.t ........... ok
…
Test Anything Protocol (TAP)
Test::Harness runs the scripts and
aggregates the results
test scripts return the data using TAP
Sep 20 2013 Using the Power to Prove 4
$ perl t/00-base.t
1..14
ok 1 - use Class::Accessor::Lite;
ok 2 - call mk_accessors
ok 3
ok 4
…
History of Test::Harness and TAP
TAP exists since Perl 1
Test::Harness is part of Perl core
and is part of Linux Standards Base
bindings exist for many programming
languages
 http://en.wikipedia.org/wiki/Test_Anything_Protocol
Sep 20 2013 Using the Power to Prove 5
Prove has many powerful options
Sep 20 2013 Using the Power to Prove 6
$ prove -j 8 --state hot,fast,save
- runs 8 tests in parallel
- run the tests that failed first
- run the fast tests first,
and then others that takes time
- update the test stats
Can we write tests in other programming
languages, and aggregate the results
using prove?
Sep 20 2013 Using the Power to Prove 7
Prove runs scripts written in any language
but how?
Sep 20 2013 Using the Power to Prove 8
$ cat bf.t
#! /usr/local/bin/yabi
-[----->+<]>--.---..+++.>++++++++++.-[------->+<]>.----.-[++>---<]>+.[--
>+++<]>+.>++++++++++.
$ yabi bf.t
1..1
ok 1
$ prove bf.t
bf.t .. ok
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.02 usr + 0.00 sys = 0.02 CPU)
Result: PASS
PerlProve runs scripts written in any language
Perl understands the shebang
Sep 20 2013 Using the Power to Prove 9
$ cat bf.t
#! /usr/local/bin/yabi
-[----->+<]>--.---..+++.>++++++++++.-[------->+<]>.----.-[++>---<]>+.[--
>+++<]>+.>++++++++++.
$ perl bf.t
1..1
ok 1
PerlProve runs scripts written in any language
but not binary executables…
Sep 20 2013 Using the Power to Prove 10
$ cat bin.c
#include <stdio.h>
int main(int argc, char** argv)
{
printf("1..1n");
printf("ok 1n");
return 0;
}
$ perl bin
Unrecognized character xCF; marked by <-- HERE after <-- HERE near
column 1 at bin line 1.
prove --exec '' solves the problem
why?
Sep 20 2013 Using the Power to Prove 11
$ prove –h
…
-e, --exec Interpreter to run the tests ('' for compiled tests.)
…
$ prove --exec '' bin
bin .. open3: exec of bin failed at
/System/Library/Perl/5.12/TAP/Parser/Iterator/Process.pm line 163.
bin .. Dubious, test returned 255 (wstat 65280, 0xff00)
No subtests run
prove --exec '' solves the problem
specify the paths, or add . to $PATH
but would test scripts stop running on Windows
Sep 20 2013 Using the Power to Prove 12
$ prove --exec '' t/bin
t/bin .. ok
All tests successful.
Files=1, Tests=1, 1 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU)
Result: PASS
$ PATH=".:$PATH" prove --exec '' bin
bin .. ok
All tests successful.
Files=1, Tests=1, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU)
Result: PASS
Extensions can be other than .t
use: --ext ""
Sep 20 2013 Using the Power to Prove 13
$ prove --ext '' --exec '' .
./test.bf ... ok
./test.out .. ok
./test.sh ... ok
All tests successful.
Files=3, Tests=3, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU)
Result: PASS
.proverc
Save the prove options for the project
Sep 20 2013 Using the Power to Prove 14
$ cat .proverc
--ext '' --exec ''
$ prove .
./test.bf ... ok
./test.out .. ok
./test.sh ... ok
All tests successful.
Files=3, Tests=3, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU)
Result: PASS
Test scripts are searched by default from t/
Sep 20 2013 Using the Power to Prove 15
$ cat .proverc
--ext '' --exec ''
$ prove
t/test.bf ... ok
t/test.out .. ok
t/test.sh ... ok
All tests successful.
Files=3, Tests=3, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU)
Result: PASS
Prove is powerful! Can we run programs
other than test scripts?
Sep 20 2013 Using the Power to Prove 16
Running things other than test scripts
cron tasks
service monitoring
Sep 20 2013 Using the Power to Prove 17
$ ls t
http.t memcached.t mysql.t ping.t
smtp.t
$ prove
t/http.t ....... ok
t/memcached.t .. ok
t/mysql.t ...... ok
t/ping.t ....... ok
t/smtp.t ....... ok
All tests successful.
Conclusion
Sep 20 2013 Using the Power to Prove 18
Conclusion
Prove is a proven task runner
can run any kind of tasks and generate a report
preinstalled on most systems
uses TAP - an established protocol
Sep 20 2013 Using the Power to Prove 19

More Related Content

What's hot (20)

PPT
Chap06
Dr.Ravi
 
PDF
Devinsampa nginx-scripting
Tony Fabeen
 
PDF
various tricks for remote linux exploits  by Seok-Ha Lee (wh1ant)
CODE BLUE
 
PDF
Quick start bash script
Simon Su
 
PPTX
Penetration testing using python
Purna Chander K
 
ODP
Clojure: Practical functional approach on JVM
sunng87
 
PDF
Shell scripting
Geeks Anonymes
 
PDF
Shell Script
Adam Victor Brandizzi
 
PDF
Shell scripting
Manav Prasad
 
KEY
Yapcasia2011 - Hello Embed Perl
Hideaki Ohno
 
PDF
Redis & ZeroMQ: How to scale your application
rjsmelo
 
PPT
Unix 5 en
Simonas Kareiva
 
PDF
Groovy on the Shell
sascha_klein
 
DOCX
Quize on scripting shell
lebse123
 
PDF
Augeas
lutter
 
ODP
Programming Under Linux In Python
Marwan Osman
 
PDF
PHP Internals and Virtual Machine
julien pauli
 
DOCX
32 shell-programming
kayalkarnan
 
PDF
How to stand on the shoulders of giants
Ian Barber
 
PPTX
Unix shell scripts
Prakash Lambha
 
Chap06
Dr.Ravi
 
Devinsampa nginx-scripting
Tony Fabeen
 
various tricks for remote linux exploits  by Seok-Ha Lee (wh1ant)
CODE BLUE
 
Quick start bash script
Simon Su
 
Penetration testing using python
Purna Chander K
 
Clojure: Practical functional approach on JVM
sunng87
 
Shell scripting
Geeks Anonymes
 
Shell Script
Adam Victor Brandizzi
 
Shell scripting
Manav Prasad
 
Yapcasia2011 - Hello Embed Perl
Hideaki Ohno
 
Redis & ZeroMQ: How to scale your application
rjsmelo
 
Unix 5 en
Simonas Kareiva
 
Groovy on the Shell
sascha_klein
 
Quize on scripting shell
lebse123
 
Augeas
lutter
 
Programming Under Linux In Python
Marwan Osman
 
PHP Internals and Virtual Machine
julien pauli
 
32 shell-programming
kayalkarnan
 
How to stand on the shoulders of giants
Ian Barber
 
Unix shell scripts
Prakash Lambha
 

Viewers also liked (20)

PPT
3rd Workshop on Social Information Retrieval for Technology-Enhanced Learnin...
Hendrik Drachsler
 
PPTX
Microsite – Macro Idea
Maria Podolyak
 
PPT
Daily Lecture And Discussions
bsutton
 
PPT
Que no sera ni dia ni noche
Paulo Arieu
 
PPT
'Fotografia privata' su Web: microstorie del Novecento
stefanogambari
 
PPTX
Тренинг продаж: проход секретаря при холодном звонке
Mikhail Grafsky
 
PPTX
Our school in winter
Gavranica
 
PPT
Marketing strategies to increase the ROI on mobile
Amit Ambastha
 
PPTX
Improve your Web Development using Visual Studio 2010
Suthep Sangvirotjanaphat
 
PPTX
Writing presentation
Jennifer Orr
 
PPTX
Collecting and utilizing assessment information
Jennifer Orr
 
PDF
D2.2.1 Evaluation Framework
Hendrik Drachsler
 
PPTX
Lyddie: Unit3 lesson5
Terri Weiss
 
ODP
Devops down-under
Robert Postill
 
PPS
Kieeds.com
Iman Cinderamata
 
PPT
Little Ones Learning Math Using Technology
Jennifer Orr
 
PDF
Examenopleiding energieconsulent mfl
wweijmans
 
KEY
A ToolBox for Handover practices in Europe
Hendrik Drachsler
 
PPTX
Origen, filosofía
Leandro Villalobos
 
PPT
Integracija poslovnega sistema
Danilo Tic
 
3rd Workshop on Social Information Retrieval for Technology-Enhanced Learnin...
Hendrik Drachsler
 
Microsite – Macro Idea
Maria Podolyak
 
Daily Lecture And Discussions
bsutton
 
Que no sera ni dia ni noche
Paulo Arieu
 
'Fotografia privata' su Web: microstorie del Novecento
stefanogambari
 
Тренинг продаж: проход секретаря при холодном звонке
Mikhail Grafsky
 
Our school in winter
Gavranica
 
Marketing strategies to increase the ROI on mobile
Amit Ambastha
 
Improve your Web Development using Visual Studio 2010
Suthep Sangvirotjanaphat
 
Writing presentation
Jennifer Orr
 
Collecting and utilizing assessment information
Jennifer Orr
 
D2.2.1 Evaluation Framework
Hendrik Drachsler
 
Lyddie: Unit3 lesson5
Terri Weiss
 
Devops down-under
Robert Postill
 
Kieeds.com
Iman Cinderamata
 
Little Ones Learning Math Using Technology
Jennifer Orr
 
Examenopleiding energieconsulent mfl
wweijmans
 
A ToolBox for Handover practices in Europe
Hendrik Drachsler
 
Origen, filosofía
Leandro Villalobos
 
Integracija poslovnega sistema
Danilo Tic
 
Ad

Similar to Using the Power to Prove (20)

ODP
LPW 2007 - Perl Plumbing
lokku
 
PDF
Testing Code and Assuring Quality
Kent Cowgill
 
PDF
Unit Testing Lots of Perl
Workhorse Computing
 
PDF
Hidden Gems of Ruby 1.9
Aaron Patterson
 
PDF
The $path to knowledge: What little it take to unit-test Perl.
Workhorse Computing
 
PDF
Perl Testing
lichtkind
 
PDF
Puppet @ Seat
Alessandro Franceschi
 
PDF
Metadata-driven Testing
Workhorse Computing
 
PDF
Tests unitaires pour PostgreSQL avec pgTap
Rodolphe Quiédeville
 
PDF
Practical Testing of Ruby Core
Hiroshi SHIBATA
 
ODP
Go Replicator
Joshua Drake
 
PPTX
Sge
Chris Roeder
 
PDF
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Puppet
 
PDF
Performance Profiling in Rust
InfluxData
 
ODP
Intro to Testing in Zope, Plone
Quintagroup
 
PDF
Drupal Camp Brighton 2015: Ansible Drupal Medicine show
George Boobyer
 
PDF
Javantura v2 - Replication with MongoDB - what could go wrong... - Philipp Krenn
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PDF
PostgreSQL Portland Performance Practice Project - Database Test 2 Howto
Mark Wong
 
PDF
Getting testy with Perl
Workhorse Computing
 
PDF
How to master OpenStack in 2 hours
OpenCity Community
 
LPW 2007 - Perl Plumbing
lokku
 
Testing Code and Assuring Quality
Kent Cowgill
 
Unit Testing Lots of Perl
Workhorse Computing
 
Hidden Gems of Ruby 1.9
Aaron Patterson
 
The $path to knowledge: What little it take to unit-test Perl.
Workhorse Computing
 
Perl Testing
lichtkind
 
Puppet @ Seat
Alessandro Franceschi
 
Metadata-driven Testing
Workhorse Computing
 
Tests unitaires pour PostgreSQL avec pgTap
Rodolphe Quiédeville
 
Practical Testing of Ruby Core
Hiroshi SHIBATA
 
Go Replicator
Joshua Drake
 
Beaker: Automated, Cloud-Based Acceptance Testing - PuppetConf 2014
Puppet
 
Performance Profiling in Rust
InfluxData
 
Intro to Testing in Zope, Plone
Quintagroup
 
Drupal Camp Brighton 2015: Ansible Drupal Medicine show
George Boobyer
 
Javantura v2 - Replication with MongoDB - what could go wrong... - Philipp Krenn
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
PostgreSQL Portland Performance Practice Project - Database Test 2 Howto
Mark Wong
 
Getting testy with Perl
Workhorse Computing
 
How to master OpenStack in 2 hours
OpenCity Community
 
Ad

More from Kazuho Oku (20)

PDF
HTTP/2で 速くなるとき ならないとき
Kazuho Oku
 
PDF
QUIC標準化動向 〜2017/7
Kazuho Oku
 
PDF
HTTP/2の課題と将来
Kazuho Oku
 
PDF
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
 
PDF
Reorganizing Website Architecture for HTTP/2 and Beyond
Kazuho Oku
 
PPTX
Recent Advances in HTTP, controlling them using ruby
Kazuho Oku
 
PPTX
Programming TCP for responsiveness
Kazuho Oku
 
PDF
Programming TCP for responsiveness
Kazuho Oku
 
PDF
Developing the fastest HTTP/2 server
Kazuho Oku
 
PPTX
TLS & LURK @ IETF 95
Kazuho Oku
 
PPTX
HTTPとサーバ技術の最新動向
Kazuho Oku
 
PPTX
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
Kazuho Oku
 
PPTX
Cache aware-server-push in H2O version 1.5
Kazuho Oku
 
PDF
HTTP/2時代のウェブサイト設計
Kazuho Oku
 
PDF
H2O - making the Web faster
Kazuho Oku
 
PDF
H2O - making HTTP better
Kazuho Oku
 
PDF
H2O - the optimized HTTP server
Kazuho Oku
 
PPTX
JSON SQL Injection and the Lessons Learned
Kazuho Oku
 
PPTX
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku
 
PPTX
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
 
HTTP/2で 速くなるとき ならないとき
Kazuho Oku
 
QUIC標準化動向 〜2017/7
Kazuho Oku
 
HTTP/2の課題と将来
Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
Kazuho Oku
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Kazuho Oku
 
Recent Advances in HTTP, controlling them using ruby
Kazuho Oku
 
Programming TCP for responsiveness
Kazuho Oku
 
Programming TCP for responsiveness
Kazuho Oku
 
Developing the fastest HTTP/2 server
Kazuho Oku
 
TLS & LURK @ IETF 95
Kazuho Oku
 
HTTPとサーバ技術の最新動向
Kazuho Oku
 
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
Kazuho Oku
 
Cache aware-server-push in H2O version 1.5
Kazuho Oku
 
HTTP/2時代のウェブサイト設計
Kazuho Oku
 
H2O - making the Web faster
Kazuho Oku
 
H2O - making HTTP better
Kazuho Oku
 
H2O - the optimized HTTP server
Kazuho Oku
 
JSON SQL Injection and the Lessons Learned
Kazuho Oku
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
Kazuho Oku
 
JSX の現在と未来 - Oct 26 2013
Kazuho Oku
 

Recently uploaded (20)

PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Python basic programing language for automation
DanialHabibi2
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
HubSpot Main Hub: A Unified Growth Platform
Jaswinder Singh
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Safe Software
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Presentation - Vibe Coding The Future of Tech
yanuarsinggih1
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Python basic programing language for automation
DanialHabibi2
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Bitcoin for Millennials podcast with Bram, Power Laws of Bitcoin
Stephen Perrenod
 

Using the Power to Prove

  • 1. Using the Power to Prove DeNA Co., Ltd. Kazuho Oku
  • 2. Do you know prove? Have you ever used it? Sep 20 2013 Using the Power to Prove 2
  • 3. Prove is… command-line interface of Test::Harness Test::Harness is the test runner Sep 20 2013 Using the Power to Prove 3 $ make test PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/00-base.t t/01-new.t t/02-use.t t/03-use-error.t t/04-use-defaults.t t/00-base.t .......... ok t/01-new.t ........... ok … $ prove t/00-base.t .......... ok t/01-new.t ........... ok …
  • 4. Test Anything Protocol (TAP) Test::Harness runs the scripts and aggregates the results test scripts return the data using TAP Sep 20 2013 Using the Power to Prove 4 $ perl t/00-base.t 1..14 ok 1 - use Class::Accessor::Lite; ok 2 - call mk_accessors ok 3 ok 4 …
  • 5. History of Test::Harness and TAP TAP exists since Perl 1 Test::Harness is part of Perl core and is part of Linux Standards Base bindings exist for many programming languages  http://en.wikipedia.org/wiki/Test_Anything_Protocol Sep 20 2013 Using the Power to Prove 5
  • 6. Prove has many powerful options Sep 20 2013 Using the Power to Prove 6 $ prove -j 8 --state hot,fast,save - runs 8 tests in parallel - run the tests that failed first - run the fast tests first, and then others that takes time - update the test stats
  • 7. Can we write tests in other programming languages, and aggregate the results using prove? Sep 20 2013 Using the Power to Prove 7
  • 8. Prove runs scripts written in any language but how? Sep 20 2013 Using the Power to Prove 8 $ cat bf.t #! /usr/local/bin/yabi -[----->+<]>--.---..+++.>++++++++++.-[------->+<]>.----.-[++>---<]>+.[-- >+++<]>+.>++++++++++. $ yabi bf.t 1..1 ok 1 $ prove bf.t bf.t .. ok All tests successful. Files=1, Tests=1, 0 wallclock secs ( 0.02 usr + 0.00 sys = 0.02 CPU) Result: PASS
  • 9. PerlProve runs scripts written in any language Perl understands the shebang Sep 20 2013 Using the Power to Prove 9 $ cat bf.t #! /usr/local/bin/yabi -[----->+<]>--.---..+++.>++++++++++.-[------->+<]>.----.-[++>---<]>+.[-- >+++<]>+.>++++++++++. $ perl bf.t 1..1 ok 1
  • 10. PerlProve runs scripts written in any language but not binary executables… Sep 20 2013 Using the Power to Prove 10 $ cat bin.c #include <stdio.h> int main(int argc, char** argv) { printf("1..1n"); printf("ok 1n"); return 0; } $ perl bin Unrecognized character xCF; marked by <-- HERE after <-- HERE near column 1 at bin line 1.
  • 11. prove --exec '' solves the problem why? Sep 20 2013 Using the Power to Prove 11 $ prove –h … -e, --exec Interpreter to run the tests ('' for compiled tests.) … $ prove --exec '' bin bin .. open3: exec of bin failed at /System/Library/Perl/5.12/TAP/Parser/Iterator/Process.pm line 163. bin .. Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run
  • 12. prove --exec '' solves the problem specify the paths, or add . to $PATH but would test scripts stop running on Windows Sep 20 2013 Using the Power to Prove 12 $ prove --exec '' t/bin t/bin .. ok All tests successful. Files=1, Tests=1, 1 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU) Result: PASS $ PATH=".:$PATH" prove --exec '' bin bin .. ok All tests successful. Files=1, Tests=1, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU) Result: PASS
  • 13. Extensions can be other than .t use: --ext "" Sep 20 2013 Using the Power to Prove 13 $ prove --ext '' --exec '' . ./test.bf ... ok ./test.out .. ok ./test.sh ... ok All tests successful. Files=3, Tests=3, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU) Result: PASS
  • 14. .proverc Save the prove options for the project Sep 20 2013 Using the Power to Prove 14 $ cat .proverc --ext '' --exec '' $ prove . ./test.bf ... ok ./test.out .. ok ./test.sh ... ok All tests successful. Files=3, Tests=3, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU) Result: PASS
  • 15. Test scripts are searched by default from t/ Sep 20 2013 Using the Power to Prove 15 $ cat .proverc --ext '' --exec '' $ prove t/test.bf ... ok t/test.out .. ok t/test.sh ... ok All tests successful. Files=3, Tests=3, 0 wallclock secs ( 0.02 usr + 0.01 sys = 0.03 CPU) Result: PASS
  • 16. Prove is powerful! Can we run programs other than test scripts? Sep 20 2013 Using the Power to Prove 16
  • 17. Running things other than test scripts cron tasks service monitoring Sep 20 2013 Using the Power to Prove 17 $ ls t http.t memcached.t mysql.t ping.t smtp.t $ prove t/http.t ....... ok t/memcached.t .. ok t/mysql.t ...... ok t/ping.t ....... ok t/smtp.t ....... ok All tests successful.
  • 18. Conclusion Sep 20 2013 Using the Power to Prove 18
  • 19. Conclusion Prove is a proven task runner can run any kind of tasks and generate a report preinstalled on most systems uses TAP - an established protocol Sep 20 2013 Using the Power to Prove 19