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)

PDF
Running and Developing Tests with the Apache::Test Framework
webhostingguy
 
ODP
Software Testing
Lambert Lum
 
PDF
Getting testy with Perl
Workhorse Computing
 
PDF
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Alex Balhatchet
 
PDF
The state of PHPUnit
Edorian
 
PDF
Test-Tutorial
tutorialsruby
 
PDF
Test-Tutorial
tutorialsruby
 
PDF
Power Shell For Testers
Mca140 software solutions
 
PDF
Why Perl, when you can use bash+awk+sed? :P
Luciano Rocha
 
ODP
Advanced Perl Techniques
Dave Cross
 
PDF
How to write PHPT tests
Scott MacVicar
 
PDF
Testing Code and Assuring Quality
Kent Cowgill
 
PDF
New and improved: Coming changes to the unittest module
PyCon Italia
 
PDF
The State of PHPUnit
Edorian
 
PDF
Getting Testy With Perl6
Workhorse Computing
 
PDF
Test tutorial
msksaba
 
PDF
The State of PHPUnit
Edorian
 
PPT
Unit Testing using PHPUnit
varuntaliyan
 
PDF
Hiveminder - Everything but the Secret Sauce
Jesse Vincent
 
PDF
Keeping objects healthy with Object::Exercise.
Workhorse Computing
 
Running and Developing Tests with the Apache::Test Framework
webhostingguy
 
Software Testing
Lambert Lum
 
Getting testy with Perl
Workhorse Computing
 
Continuous testing and deployment in Perl (London.pm Technical Meeting Octobe...
Alex Balhatchet
 
The state of PHPUnit
Edorian
 
Test-Tutorial
tutorialsruby
 
Test-Tutorial
tutorialsruby
 
Power Shell For Testers
Mca140 software solutions
 
Why Perl, when you can use bash+awk+sed? :P
Luciano Rocha
 
Advanced Perl Techniques
Dave Cross
 
How to write PHPT tests
Scott MacVicar
 
Testing Code and Assuring Quality
Kent Cowgill
 
New and improved: Coming changes to the unittest module
PyCon Italia
 
The State of PHPUnit
Edorian
 
Getting Testy With Perl6
Workhorse Computing
 
Test tutorial
msksaba
 
The State of PHPUnit
Edorian
 
Unit Testing using PHPUnit
varuntaliyan
 
Hiveminder - Everything but the Secret Sauce
Jesse Vincent
 
Keeping objects healthy with Object::Exercise.
Workhorse Computing
 
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
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
PDF
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
Safe Software
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PPTX
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
PPTX
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
 
PDF
Kubernetes - Architecture & Components.pdf
geethak285
 
PDF
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
PDF
FME in Overdrive: Unleashing the Power of Parallel Processing
Safe Software
 
PDF
How to Comply With Saudi Arabia’s National Cybersecurity Regulations.pdf
Bluechip Advanced Technologies
 
PPTX
2025 HackRedCon Cyber Career Paths.pptx Scott Stanton
Scott Stanton
 
PDF
Draugnet: Anonymous Threat Reporting for a World on Fire
treyka
 
PPTX
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
PPTX
Practical Applications of AI in Local Government
OnBoard
 
PDF
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PPTX
Securing Model Context Protocol with Keycloak: AuthN/AuthZ for MCP Servers
Hitachi, Ltd. OSS Solution Center.
 
PPTX
Wondershare Filmora Crack Free Download 2025
josanj305
 
PPTX
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
 
TrustArc Webinar - Navigating APAC Data Privacy Laws: Compliance & Challenges
TrustArc
 
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
Safe Software
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
Enabling the Digital Artisan – keynote at ICOCI 2025
Alan Dix
 
Paycifi - Programmable Trust_Breakfast_PPTXT
FinTech Belgium
 
Kubernetes - Architecture & Components.pdf
geethak285
 
Dev Dives: Accelerating agentic automation with Autopilot for Everyone
UiPathCommunity
 
FME in Overdrive: Unleashing the Power of Parallel Processing
Safe Software
 
How to Comply With Saudi Arabia’s National Cybersecurity Regulations.pdf
Bluechip Advanced Technologies
 
2025 HackRedCon Cyber Career Paths.pptx Scott Stanton
Scott Stanton
 
Draugnet: Anonymous Threat Reporting for a World on Fire
treyka
 
MARTSIA: A Tool for Confidential Data Exchange via Public Blockchain - Pitch ...
Michele Kryston
 
Practical Applications of AI in Local Government
OnBoard
 
NLJUG Speaker academy 2025 - first session
Bert Jan Schrijver
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
Securing Model Context Protocol with Keycloak: AuthN/AuthZ for MCP Servers
Hitachi, Ltd. OSS Solution Center.
 
Wondershare Filmora Crack Free Download 2025
josanj305
 
01_Approach Cyber- DORA Incident Management.pptx
FinTech Belgium
 

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