1#!/usr/bin/perl -w 2 3use lib '.','./t','./blib/lib','../blib/lib'; 4# can run from here or distribution base 5 6# Before installation is performed this script should be runnable with 7# `perl test4.t time' which pauses `time' seconds (1..5) between pages 8 9######################### We start with some black magic to print on failure. 10 11use Test::More; 12eval "use DefaultPort;"; 13if ($@) { 14 plan skip_all => 'No serial port selected for use with testing'; 15} 16else { 17 plan tests => 340; 18} 19 20use AltPort 0.10; # check inheritance & export 21 22######################### End of black magic. 23 24# Insert your test code below (better if it prints "ok 13" 25# (correspondingly "not ok 13") depending on the success of chunk 13 26# of the test code): 27 28# tests start using file created by test1.t 29 30use strict; 31 32my $file = "/dev/ttyS0"; 33if ($SerialJunk::Makefile_Test_Port) { 34 $file = $SerialJunk::Makefile_Test_Port; 35} 36if (exists $ENV{Makefile_Test_Port}) { 37 $file = $ENV{Makefile_Test_Port}; 38} 39 40my $naptime = 0; # pause between output pages 41if (@ARGV) { 42 $naptime = shift @ARGV; 43 unless ($naptime =~ /^[0-5]$/) { 44 die "Usage: perl test?.t [ page_delay (0..5) ] [ /dev/ttyxx ]"; 45 } 46} 47if (@ARGV) { 48 $file = shift @ARGV; 49} 50 51my $cfgfile = $file."_test.cfg"; 52$cfgfile =~ s/.*\///; 53 54my $fault = 0; 55my $ob; 56my $pass; 57my $fail; 58my $in; 59my $in2; 60my @opts; 61my $out; 62my $blk; 63my $err; 64my $e; 65my $patt; 66my $instead; 67my $tick; 68my $tock; 69my @necessary_param = AltPort->set_test_mode_active(1); 70 71sub is_ok { 72 local $Test::Builder::Level = $Test::Builder::Level + 1; 73 return ok(shift); 74} 75 76sub is_zero { 77 local $Test::Builder::Level = $Test::Builder::Level + 1; 78 return ok(shift == 0); 79} 80 81sub is_bad { 82 local $Test::Builder::Level = $Test::Builder::Level + 1; 83 return ok(!shift); 84} 85 86# 2: Constructor 87 88unless (is_ok ($ob = AltPort->start ($cfgfile))) { 89 printf "could not open port from $cfgfile\n"; 90 exit 1; 91 # next test would die at runtime without $ob 92} 93 94#### 3 - 11: Check Port Capabilities Match Save 95 96is_ok ($ob->baudrate == 9600); # 3 97is_ok ($ob->parity eq "none"); # 4 98is_ok ($ob->databits == 8); # 5 99is_ok ($ob->stopbits == 1); # 6 100is_ok ($ob->handshake eq "none"); # 7 101is_ok ($ob->read_const_time == 0); # 8 102is_ok ($ob->read_char_time == 0); # 9 103is_ok ($ob->alias eq "AltPort"); # 10 104is_ok ($ob->parity_enable == 0); # 11 105 106#### 12 - 18: Application Parameter Defaults 107 108is_ok ($ob->devicetype eq 'none'); # 12 109is_ok ($ob->hostname eq 'localhost'); # 13 110is_zero ($ob->hostaddr); # 14 111is_ok ($ob->datatype eq 'raw'); # 15 112is_ok ($ob->cfg_param_1 eq 'none'); # 16 113is_ok ($ob->cfg_param_2 eq 'none'); # 17 114is_ok ($ob->cfg_param_3 eq 'none'); # 18 115 116# 19 - 21: "Instant" return for read_xx_time=0 117 118$tick=$ob->get_tick_count; 119($in, $in2) = $ob->read(10); 120$tock=$ob->get_tick_count; 121 122is_zero ($in); # 19 123is_bad ($in2); # 20 124$out=$tock - $tick; 125is_ok ($out < 150); # 21 126print "<0> elapsed time=$out\n"; 127 128if ($naptime) { 129 print "++++ page break\n"; 130 sleep $naptime; 131} 132 133print "Beginning Timed Tests at 2-5 Seconds per Set\n"; 134 135# 22 - 25: 2 Second Constant Timeout 136 137is_ok (2000 == $ob->read_const_time(2000)); # 22 138$tick=$ob->get_tick_count; 139($in, $in2) = $ob->read(10); 140$tock=$ob->get_tick_count; 141 142is_zero ($in); # 23 143is_bad ($in2); # 24 144$out=$tock - $tick; 145is_bad (($out < 1800) or ($out > 2400)); # 25 146print "<2000> elapsed time=$out\n"; 147 148# 26 - 29: 4 Second Timeout Constant+Character 149 150is_ok (100 == $ob->read_char_time(100)); # 26 151 152$tick=$ob->get_tick_count; 153($in, $in2) = $ob->read(20); 154$tock=$ob->get_tick_count; 155 156is_zero ($in); # 27 157is_bad ($in2); # 28 158$out=$tock - $tick; 159is_bad (($out < 3800) or ($out > 4400)); # 29 160print "<4000> elapsed time=$out\n"; 161 162 163# 30 - 33: 3 Second Character Timeout 164 165is_zero ($ob->read_const_time(0)); # 30 166 167$tick=$ob->get_tick_count; 168($in, $in2) = $ob->read(30); 169$tock=$ob->get_tick_count; 170 171is_zero ($in); # 31 172is_bad ($in2); # 32 173$out=$tock - $tick; 174is_bad (($out < 2800) or ($out > 3400)); # 33 175print "<3000> elapsed time=$out\n"; 176 177#### 34 - 64: Verify Parameter Settings 178 179is_zero ($ob->read_char_time(0)); # 34 180 181is_ok ("rts" eq $ob->handshake("rts")); # 35 182is_ok ($ob->purge_rx); # 36 183is_ok ($ob->purge_all); # 37 184is_ok ($ob->purge_tx); # 38 185 186if ($naptime) { 187 print "++++ page break\n"; 188 sleep $naptime; 189} 190 191is_ok(1 == $ob->user_msg); # 39 192is_zero(scalar $ob->user_msg(0)); # 40 193is_ok(1 == $ob->user_msg(1)); # 41 194is_ok(1 == $ob->error_msg); # 42 195is_zero(scalar $ob->error_msg(0)); # 43 196is_ok(1 == $ob->error_msg(1)); # 44 197 198print "Stty Shortcut Parameters\n"; 199 200my $vstart_1 = $ob->is_xon_char; 201is_ok(defined $vstart_1); # 45 202my $vstop_1 = $ob->is_xoff_char; 203is_ok(defined $vstop_1); # 46 204my $vintr_1 = $ob->is_stty_intr; 205is_ok(defined $vintr_1); # 47 206my $vquit_1 = $ob->is_stty_quit; 207is_ok(defined $vquit_1); # 48 208 209my $veof_1 = $ob->is_stty_eof; 210is_ok(defined $veof_1); # 49 211my $veol_1 = $ob->is_stty_eol; 212is_ok(defined $veol_1); # 50 213my $verase_1 = $ob->is_stty_erase; 214is_ok(defined $verase_1); # 51 215my $vkill_1 = $ob->is_stty_kill; 216is_ok(defined $vkill_1); # 52 217my $vsusp_1 = $ob->is_stty_susp; 218is_ok(defined $vsusp_1); # 53 219 220is_zero $ob->stty_echo; # 54 221my $echoe_1 = $ob->stty_echoe; 222is_ok(defined $echoe_1); # 55 223my $echok_1 = $ob->stty_echok; 224is_ok(defined $echok_1); # 56 225 226is_zero $ob->stty_echonl; # 57 227is_zero $ob->stty_istrip; # 58 228is_zero $ob->stty_icrnl; # 59 229is_zero $ob->stty_igncr; # 60 230 231if ($naptime) { 232 print "++++ page break\n"; 233 sleep $naptime; 234} 235 236is_zero $ob->stty_inlcr; # 61 237is_zero $ob->stty_opost; # 62 238is_zero $ob->stty_isig; # 63 239is_zero $ob->stty_icanon; # 64 240 241print "Change all the parameters\n"; 242 243#### 65 - 102: Modify All Port Capabilities 244 245is_ok ($ob->baudrate(1200) == 1200); # 65 246is_ok ($ob->parity("odd") eq "odd"); # 66 247is_ok ($ob->databits(7) == 7); # 67 248is_ok ($ob->stopbits(2) == 2); # 68 249is_ok ($ob->handshake("xoff") eq "xoff"); # 69 250is_ok ($ob->read_const_time(1000) == 1000); # 70 251is_ok ($ob->read_char_time(50) == 50); # 71 252is_ok ($ob->alias("oddPort") eq "oddPort"); # 72 253is_ok (scalar $ob->parity_enable(1)); # 73 254is_zero ($ob->user_msg(0)); # 74 255is_zero ($ob->error_msg(0)); # 75 256 257is_ok(64 == $ob->is_xon_char(64)); # 76 258is_ok(65 == $ob->is_xoff_char(65)); # 77 259is_ok(66 == $ob->is_stty_intr(66)); # 78 260is_ok(67 == $ob->is_stty_quit(67)); # 79 261is_ok(68 == $ob->is_stty_eof(68)); # 80 262is_ok(69 == $ob->is_stty_eol(69)); # 81 263is_ok(70 == $ob->is_stty_erase(70)); # 82 264 265if ($naptime) { 266 print "++++ page break\n"; 267 sleep $naptime; 268} 269 270is_ok(71 == $ob->is_stty_kill(71)); # 83 271is_ok(72 == $ob->is_stty_susp(72)); # 84 272 273is_ok($echoe_1 != $ob->stty_echoe(! $echoe_1)); # 85 274is_ok($echok_1 != $ob->stty_echok(! $echok_1)); # 86 275is_ok(1 == $ob->stty_echonl(1)); # 87 276is_ok(1 == $ob->stty_istrip(1)); # 88 277is_ok(1 == $ob->stty_icrnl(1)); # 89 278is_ok(1 == $ob->stty_igncr(1)); # 90 279is_ok(1 == $ob->stty_inlcr(1)); # 91 280is_ok(1 == $ob->stty_opost(1)); # 92 281is_ok(1 == $ob->stty_isig(1)); # 93 282is_ok(1 == $ob->stty_icanon(1)); # 94 283is_ok(1 == $ob->stty_echo(1)); # 95 284 285is_ok ($ob->devicetype('type') eq 'type'); # 96 286is_ok ($ob->hostname('any') eq 'any'); # 97 287is_ok ($ob->hostaddr(9000) == 9000); # 98 288is_ok ($ob->datatype('fixed') eq 'fixed'); # 99 289is_ok ($ob->cfg_param_1('p1') eq 'p1'); # 100 290is_ok ($ob->cfg_param_2('p2') eq 'p2'); # 101 291is_ok ($ob->cfg_param_3('p3') eq 'p3'); # 102 292 293#### 103 - 140: Check Port Capabilities Match Changes 294 295is_ok ($ob->baudrate == 1200); # 103 296is_ok ($ob->parity eq "odd"); # 104 297 298if ($naptime) { 299 print "++++ page break\n"; 300 sleep $naptime; 301} 302 303is_ok ($ob->databits == 7); # 105 304is_ok ($ob->stopbits == 2); # 106 305is_ok ($ob->handshake eq "xoff"); # 107 306is_ok ($ob->read_const_time == 1000); # 108 307is_ok ($ob->read_char_time == 50); # 109 308is_ok ($ob->alias eq "oddPort"); # 110 309is_ok (scalar $ob->parity_enable); # 111 310is_zero ($ob->user_msg); # 112 311is_zero ($ob->error_msg); # 113 312 313is_ok(64 == $ob->is_xon_char); # 114 314is_ok(65 == $ob->is_xoff_char); # 115 315is_ok(66 == $ob->is_stty_intr); # 116 316is_ok(67 == $ob->is_stty_quit); # 117 317is_ok(68 == $ob->is_stty_eof); # 118 318is_ok(69 == $ob->is_stty_eol); # 119 319is_ok(70 == $ob->is_stty_erase); # 126 320is_ok(71 == $ob->is_stty_kill); # 121 321is_ok(72 == $ob->is_stty_susp); # 122 322 323is_ok($echoe_1 != $ob->stty_echoe); # 123 324is_ok($echok_1 != $ob->stty_echok); # 124 325is_ok(1 == $ob->stty_echonl); # 125 326 327if ($naptime) { 328 print "++++ page break\n"; 329 sleep $naptime; 330} 331 332is_ok(1 == $ob->stty_istrip); # 126 333is_ok(1 == $ob->stty_icrnl); # 127 334is_ok(1 == $ob->stty_igncr); # 128 335is_ok(1 == $ob->stty_inlcr); # 129 336is_ok(1 == $ob->stty_opost); # 130 337is_ok(1 == $ob->stty_isig); # 131 338is_ok(1 == $ob->stty_icanon); # 132 339is_ok(1 == $ob->stty_echo); # 133 340 341is_ok ($ob->devicetype eq 'type'); # 134 342is_ok ($ob->hostname eq 'any'); # 135 343is_ok ($ob->hostaddr == 9000); # 136 344is_ok ($ob->datatype eq 'fixed'); # 137 345is_ok ($ob->cfg_param_1 eq 'p1'); # 138 346is_ok ($ob->cfg_param_2 eq 'p2'); # 139 347is_ok ($ob->cfg_param_3 eq 'p3'); # 140 348 349print "Restore all the parameters\n"; 350 351is_ok ($ob->restart($cfgfile)); # 141 352 353#### 142 - 179: Check Port Capabilities Match Original 354 355is_ok ($ob->baudrate == 9600); # 142 356is_ok ($ob->parity eq "none"); # 143 357is_ok ($ob->databits == 8); # 144 358is_ok ($ob->stopbits == 1); # 145 359is_ok ($ob->handshake eq "none"); # 146 360 361if ($naptime) { 362 print "++++ page break\n"; 363 sleep $naptime; 364} 365 366is_ok ($ob->read_const_time == 0); # 147 367is_ok ($ob->read_char_time == 0); # 148 368is_ok ($ob->alias eq "AltPort"); # 149 369is_zero (scalar $ob->parity_enable); # 150 370is_ok ($ob->user_msg == 1); # 151 371is_ok ($ob->error_msg == 1); # 152 372 373is_ok($vstart_1 == $ob->is_xon_char); # 153 374is_ok($vstop_1 == $ob->is_xoff_char); # 154 375is_ok($vintr_1 == $ob->is_stty_intr); # 155 376is_ok($vquit_1 == $ob->is_stty_quit); # 156 377is_ok($veof_1 == $ob->is_stty_eof); # 157 378is_ok($veol_1 == $ob->is_stty_eol); # 158 379is_ok($verase_1 == $ob->is_stty_erase); # 159 380is_ok($vkill_1 == $ob->is_stty_kill); # 160 381is_ok($vsusp_1 == $ob->is_stty_susp); # 161 382 383is_ok(0 == $ob->stty_echo); # 162 384is_ok($echoe_1 == $ob->stty_echoe); # 163 385is_ok($echok_1 == $ob->stty_echok); # 164 386is_ok(0 == $ob->stty_echonl); # 165 387is_ok(0 == $ob->stty_istrip); # 166 388 389if ($naptime) { 390 print "++++ page break\n"; 391 sleep $naptime; 392} 393 394is_ok(0 == $ob->stty_icrnl); # 167 395is_ok(0 == $ob->stty_igncr); # 168 396is_ok(0 == $ob->stty_inlcr); # 169 397is_ok(0 == $ob->stty_opost); # 170 398is_ok(0 == $ob->stty_isig); # 171 399is_ok(0 == $ob->stty_icanon); # 172 400 401is_ok ($ob->devicetype eq 'none'); # 173 402is_ok ($ob->hostname eq 'localhost'); # 174 403is_zero ($ob->hostaddr); # 175 404is_ok ($ob->datatype eq 'raw'); # 176 405is_ok ($ob->cfg_param_1 eq 'none'); # 177 406is_ok ($ob->cfg_param_2 eq 'none'); # 178 407is_ok ($ob->cfg_param_3 eq 'none'); # 179 408 409#### 180 - 182: "Instant" return for read(0) 410 411is_ok (2000 == $ob->read_const_time(2000)); # 180 412$tick=$ob->get_tick_count; 413($in, $in2) = $ob->read(0); 414$tock=$ob->get_tick_count; 415 416# behavior changed in 1.0.2 to return "0" on a "0"-requested read 417is_ok ($in == 0); # 181 418$out=$tock - $tick; 419is_ok ($out < 100); # 182 420print "<0> elapsed time=$out\n"; 421 422### 183 - 198: Defaults for lookfor 423 424@opts = $ob->are_match; 425is_ok ($#opts == 0); # 183 426is_ok ($opts[0] eq "\n"); # 184 427is_ok ($ob->lookclear == 1); # 185 428is_ok ($ob->lookfor eq ""); # 186 429is_ok ($ob->streamline eq ""); # 187 430 431if ($naptime) { 432 print "++++ page break\n"; 433 sleep $naptime; 434} 435 436($in, $out, $patt, $instead) = $ob->lastlook; 437is_ok ($in eq ""); # 188 438is_ok ($out eq ""); # 189 439is_ok ($patt eq ""); # 190 440is_ok ($instead eq ""); # 191 441is_ok ($ob->matchclear eq ""); # 192 442 443is_ok ("" eq $ob->output_record_separator); # 193 444is_ok ("" eq $ob->output_record_separator("ab")); # 194 445is_ok ("ab" eq $ob->output_record_separator); # 195 446is_ok ("ab" eq $ob->output_record_separator("")); # 196 447is_ok ("" eq $ob->output_record_separator); # 197 448is_ok ("" eq $ob->output_field_separator); # 198 449 450@opts = $ob->are_match ("END","Bye"); 451is_ok ($#opts == 1); # 199 452is_ok ($opts[0] eq "END"); # 200 453is_ok ($opts[1] eq "Bye"); # 201 454is_ok ($ob->lookclear("Good Bye, Hello") == 1); # 202 455is_ok (1); # 203 456is_ok ($ob->lookfor eq "Good "); # 204 457 458($in, $out, $patt, $instead) = $ob->lastlook; 459is_ok ($in eq "Bye"); # 205 460is_ok ($out eq ", Hello"); # 206 461is_ok ($patt eq "Bye"); # 207 462is_ok ($instead eq ""); # 208 463is_ok ($ob->matchclear eq "Bye"); # 209 464 465if ($naptime) { 466 print "++++ page break\n"; 467 sleep $naptime; 468} 469 470is_ok ($ob->matchclear eq ""); # 210 471is_ok ($ob->lookclear("Bye, Bye, Love. The END has come") == 1); # 211 472is_ok ($ob->lookfor eq ""); # 212 473 474($in, $out, $patt, $instead) = $ob->lastlook; 475is_ok ($in eq "Bye"); # 213 476is_ok ($out eq ", Bye, Love. The END has come");# 214 477 478is_ok ($patt eq "Bye"); # 215 479is_ok ($instead eq ""); # 216 480is_ok ($ob->matchclear eq "Bye"); # 217 481 482($in, $out, $patt, $instead) = $ob->lastlook; 483is_ok ($in eq ""); # 218 484is_ok ($out eq ", Bye, Love. The END has come");# 219 485is_ok ($patt eq "Bye"); # 220 486is_ok ($instead eq ""); # 221 487 488is_ok ($ob->lookfor eq ", "); # 222 489($in, $out, $patt, $instead) = $ob->lastlook; 490is_ok ($in eq "Bye"); # 223 491is_ok ($out eq ", Love. The END has come"); # 224 492is_ok ($patt eq "Bye"); # 225 493is_ok ($instead eq ""); # 226 494is_ok ($ob->matchclear eq "Bye"); # 227 495 496is_ok ($ob->lookfor eq ", Love. The "); # 228 497($in, $out, $patt, $instead) = $ob->lastlook; 498is_ok ($in eq "END"); # 229 499is_ok ($out eq " has come"); # 230 500is_ok ($patt eq "END"); # 231 501 502if ($naptime) { 503 print "++++ page break\n"; 504 sleep $naptime; 505} 506 507is_ok ($instead eq ""); # 232 508is_ok ($ob->matchclear eq "END"); # 233 509is_ok ($ob->lookfor eq ""); # 234 510is_ok ($ob->matchclear eq ""); # 235 511 512($in, $out, $patt, $instead) = $ob->lastlook; 513is_ok ($in eq ""); # 236 514is_ok ($patt eq ""); # 237 515is_ok ($instead eq " has come"); # 238 516 517is_ok ($ob->lookclear("First\nSecond\nThe END") == 1); # 239 518is_ok ($ob->lookfor eq "First\nSecond\nThe "); # 240 519($in, $out, $patt, $instead) = $ob->lastlook; 520is_ok ($in eq "END"); # 241 521is_ok ($out eq ""); # 242 522is_ok ($patt eq "END"); # 243 523is_ok ($instead eq ""); # 244 524 525is_ok ($ob->lookclear("Good Bye, Hello") == 1); # 245 526is_ok ($ob->streamline eq "Good "); # 246 527 528($in, $out, $patt, $instead) = $ob->lastlook; 529is_ok ($in eq "Bye"); # 247 530is_ok ($out eq ", Hello"); # 248 531is_ok ($patt eq "Bye"); # 249 532is_ok ($instead eq ""); # 250 533 534is_ok ($ob->lookclear("Bye, Bye, Love. The END has come") == 1); # 251 535is_ok ($ob->streamline eq ""); # 252 536 537($in, $out, $patt, $instead) = $ob->lastlook; 538is_ok ($in eq "Bye"); # 253 539 540if ($naptime) { 541 print "++++ page break\n"; 542 sleep $naptime; 543} 544 545is_ok ($out eq ", Bye, Love. The END has come");# 254 546is_ok ($patt eq "Bye"); # 255 547is_ok ($instead eq ""); # 256 548is_ok ($ob->matchclear eq "Bye"); # 257 549 550($in, $out, $patt, $instead) = $ob->lastlook; 551is_ok ($in eq ""); # 258 552is_ok ($out eq ", Bye, Love. The END has come");# 259 553is_ok ($patt eq "Bye"); # 260 554is_ok ($instead eq ""); # 261 555 556is_ok ($ob->streamline eq ", "); # 262 557($in, $out, $patt, $instead) = $ob->lastlook; 558is_ok ($in eq "Bye"); # 263 559is_ok ($out eq ", Love. The END has come"); # 264 560is_ok ($patt eq "Bye"); # 265 561is_ok ($instead eq ""); # 266 562is_ok ($ob->matchclear eq "Bye"); # 267 563 564is_ok ($ob->streamline eq ", Love. The "); # 268 565($in, $out, $patt, $instead) = $ob->lastlook; 566is_ok ($in eq "END"); # 269 567is_ok ($out eq " has come"); # 270 568is_ok ($patt eq "END"); # 271 569is_ok ($instead eq ""); # 272 570is_ok ($ob->matchclear eq "END"); # 273 571is_ok ($ob->streamline eq ""); # 274 572is_ok ($ob->matchclear eq ""); # 275 573 574if ($naptime) { 575 print "++++ page break\n"; 576 sleep $naptime; 577} 578 579($in, $out, $patt, $instead) = $ob->lastlook; 580is_ok ($in eq ""); # 276 581is_ok ($patt eq ""); # 277 582is_ok ($instead eq " has come"); # 278 583 584is_ok ($ob->lookclear("First\nSecond\nThe END") == 1); # 279 585is_ok ($ob->streamline eq "First\nSecond\nThe "); # 280 586($in, $out, $patt, $instead) = $ob->lastlook; 587is_ok ($in eq "END"); # 281 588is_ok ($out eq ""); # 282 589is_ok ($patt eq "END"); # 283 590is_ok ($instead eq ""); # 284 591 592# 257 - 303 Test and Normal "lookclear" 593 594@opts = $ob->are_match("\n"); 595is_ok ($opts[0] eq "\n"); # 285 596is_ok ($ob->lookclear("Before\nAfter") == 1); # 286 597is_ok ($ob->lookfor eq "Before"); # 287 598 599($in, $out, $patt, $instead) = $ob->lastlook; 600is_ok ($in eq "\n"); # 288 601is_ok ($out eq "After"); # 289 602is_ok ($patt eq "\n"); # 290 603is_ok ($instead eq ""); # 291 604 605is_ok ($ob->lookfor eq ""); # 292 606($in, $out, $patt, $instead) = $ob->lastlook; 607is_ok ($in eq ""); # 293 608is_ok ($patt eq ""); # 294 609is_ok ($instead eq "After"); # 295 610 611@opts = $ob->are_match ("B*e","ab..ef","-re","12..56","END"); 612is_ok ($#opts == 4); # 296 613is_ok ($opts[2] eq "-re"); # 297 614 615if ($naptime) { 616 print "++++ page break\n"; 617 sleep $naptime; 618} 619 620is_ok ($ob->lookclear("Good Bye, the END, Hello") == 1); # 298 621is_ok ($ob->lookfor eq "Good Bye, the "); # 299 622 623($in, $out, $patt, $instead) = $ob->lastlook; 624is_ok ($in eq "END"); # 300 625is_ok ($out eq ", Hello"); # 301 626is_ok ($patt eq "END"); # 302 627is_ok ($instead eq ""); # 303 628 629is_ok ($ob->lookclear("Good Bye, the END, Hello") == 1); # 304 630is_ok ($ob->streamline eq "Good Bye, the "); # 305 631 632($in, $out, $patt, $instead) = $ob->lastlook; 633is_ok ($in eq "END"); # 306 634is_ok ($out eq ", Hello"); # 307 635is_ok ($patt eq "END"); # 308 636is_ok ($instead eq ""); # 309 637 638is_ok ($ob->lookclear("Good B*e, abcdef, 123456") == 1); # 310 639is_ok ($ob->lookfor eq "Good "); # 311 640 641($in, $out, $patt, $instead) = $ob->lastlook; 642is_ok ($in eq "B*e"); # 312 643is_ok ($out eq ", abcdef, 123456"); # 313 644is_ok ($patt eq "B*e"); # 314 645is_ok ($instead eq ""); # 315 646 647is_ok ($ob->lookfor eq ", abcdef, "); # 316 648 649($in, $out, $patt, $instead) = $ob->lastlook; 650is_ok ($in eq "123456"); # 317 651is_ok ($out eq ""); # 318 652 653if ($naptime) { 654 print "++++ page break\n"; 655 sleep $naptime; 656} 657 658is_ok ($patt eq "12..56"); # 319 659is_ok ($instead eq ""); # 320 660is_ok ($ob->lookclear("Good B*e, abcdef, 123456") == 1); # 321 661is_ok ($ob->streamline eq "Good "); # 322 662 663($in, $out, $patt, $instead) = $ob->lastlook; 664is_ok ($in eq "B*e"); # 323 665is_ok ($out eq ", abcdef, 123456"); # 324 666is_ok ($patt eq "B*e"); # 325 667is_ok ($instead eq ""); # 326 668 669is_ok ($ob->streamline eq ", abcdef, "); # 327 670 671($in, $out, $patt, $instead) = $ob->lastlook; 672is_ok ($in eq "123456"); # 328 673is_ok ($out eq ""); # 329 674is_ok ($patt eq "12..56"); # 330 675is_ok ($instead eq ""); # 331 676 677@necessary_param = AltPort->set_test_mode_active(0); 678 679is_bad ($ob->lookclear("Good\nBye")); # 332 680is_ok ($ob->lookfor eq ""); # 333 681($in, $out, $patt, $instead) = $ob->lastlook; 682is_ok ($in eq ""); # 334 683is_ok ($out eq ""); # 335 684is_ok ($patt eq ""); # 336 685 686is_ok ("" eq $ob->output_field_separator(":")); # 337 687is_ok (":" eq $ob->output_field_separator); # 338 688is_ok (":" eq $ob->output_field_separator("")); # 339 689is_ok ("" eq $ob->output_field_separator); # 340 690 691is_ok ($ob->close); # 341 692undef $ob; 693