Introduciendo una Prueba Adicional

El programa 02lex.t pone a prueba una subrutina Lexical::Analysis::scanner que hemos escrito. Se supone que su ejecución con entrada $a debe producir como resultado que la lista @PL::Tutu::tokens contenga una secuencia dada de caracteres:

$ cat 02lex.t
# change 'tests => 1' to 'tests => last_test_to_print';

use Test::More tests => 2;
BEGIN { use_ok('PL::Tutu') };

#########################

my $a = 'int a,b; string c; c = "hello"; a = 4; b = a +1; p b';
local @PL::Tutu::tokens = ();
Lexical::Analysis::scanner($a);
ok("@PL::Tutu::tokens" eq
'INT INT ID a PUN , ID b PUN ; STRING STRING ID c PUN ; ID c PUN = STR "hello" PUN ; 
ID a PUN = NUM 4 PUN ; ID b PUN = ID a PUN + NUM 1 PUN ; P P ID b');

Ahora probamos de nuevo los tests:

$ make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" 
                  "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01load....ok
t/02lex.....ok
All tests successful.
Files=2, Tests=3,  0 wallclock secs ( 0.15 cusr +  0.02 csys =  0.17 CPU)

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19