1# Tests for completion system matching control 2 3# Most tests follow this format: 4# test_code $matcher_string selection_list 5# comptest -c "$code" $' tst input_string' 6# test_code generates the string $codem which sets what words the completion 7# should be selecting from. The comptest function actually performs the 8# completion test, using the completion function generated by test_code. 9# 10# This test also tests error conditions that compadd reports, so output also 11# contains the compadd output. 12 13%prep 14 if ( zmodload -i zsh/zpty ) >/dev/null 2>&1; then 15 . $ZTST_srcdir/comptest 16 mkdir match.tmp 17 cd match.tmp 18 comptestinit -z $ZTST_testdir/../Src/zsh && 19 { 20 list1=(IndianRed IndianRed2 IndianRed3 IndianRed4) 21 test_code () { 22 matcher=$1; 23 list=$2; 24 code="compdef _tst tst ; _tst () { echo -n '<COMPADD>';compadd -M '" 25 code="$code$matcher" 26 code="$code' - ${(P)list} ; echo -n '</COMPADD>'" 27 code="$code; $extra_cmd" 28 code="$code; echo -n '<INSERT_POSITIONS>'" 29 code="$code; echo \$compstate[insert_positions]" 30 code="$code; echo -n '</INSERT_POSITIONS>'" 31 code="$code}" 32 comptesteval "$code" 33 } 34 } 35 else 36 ZTST_unimplemented="the zsh/zpty module is not available" 37 fi 38 39 40%test 41 42 test_code z: list1 43 comptest $'tst \t' 440:Match Error for "z:" 45>line: {tst }{} 46>COMPADD:{_tst:compadd: unknown match specification character `z'} 47>INSERT_POSITIONS:{} 48 49 test_code m: list1 50 comptest $'tst \t' 510:Match Error for "m:" 52>line: {tst }{} 53>COMPADD:{_tst:compadd: missing patterns} 54>INSERT_POSITIONS:{} 55 56 test_code M: list1 57 comptest $'tst \t' 580:Match Error for "M:" 59>line: {tst }{} 60>COMPADD:{_tst:compadd: missing patterns} 61>INSERT_POSITIONS:{} 62 63 test_code r: list1 64 comptest $'tst \t' 650:Match Error "r:" 66>line: {tst }{} 67>COMPADD:{_tst:compadd: missing patterns} 68>INSERT_POSITIONS:{} 69 70 test_code R: list1 71 comptest $'tst \t' 720:Match Error "R:" 73>line: {tst }{} 74>COMPADD:{_tst:compadd: missing patterns} 75>INSERT_POSITIONS:{} 76 77 test_code l: list1 78 comptest $'tst \t' 790:Match Error for "l:" 80>line: {tst }{} 81>COMPADD:{_tst:compadd: missing patterns} 82>INSERT_POSITIONS:{} 83 84 test_code L: list1 85 comptest $'tst \t' 860:Match Error for "L:" 87>line: {tst }{} 88>COMPADD:{_tst:compadd: missing patterns} 89>INSERT_POSITIONS:{} 90 91 test_code 'm:{0-9' list1 92 comptest $'tst \t' 930:Match Error for "m:{0-9" 94>line: {tst }{} 95>COMPADD:{_tst:compadd: unterminated character class} 96>INSERT_POSITIONS:{} 97 98 test_code 'm:{0-9}' list1 99 comptest $'tst \t' 1000:Match Error for "m:{0-9}" 101>line: {tst }{} 102>COMPADD:{_tst:compadd: missing word pattern} 103>INSERT_POSITIONS:{} 104 105 test_code 'm:{0-9}={' list1 106 comptest $'tst \t' 1070:Match Error for "m:{0-9}={" 108>line: {tst }{} 109>COMPADD:{_tst:compadd: unterminated character class} 110>INSERT_POSITIONS:{} 111 112 test_code 'm:{0-9}={0-' list1 113 comptest $'tst \t' 1140:Match Error for "m:{0-9}={0-" 115>line: {tst }{} 116>COMPADD:{_tst:compadd: unterminated character class} 117>INSERT_POSITIONS:{} 118 119 test_code 'm:{0-9}={-' list1 120 comptest $'tst \t' 1210:Match Error for "m:{0-9}={-" 122>line: {tst }{} 123>COMPADD:{_tst:compadd: unterminated character class} 124>INSERT_POSITIONS:{} 125 126 test_code r: list1 127 comptest $'tst \t' 1280:Match Error "r:" 129>line: {tst }{} 130>COMPADD:{_tst:compadd: missing patterns} 131>INSERT_POSITIONS:{} 132 133 example1_list=( 134 kshoptionprint shglob 135 listambiguous shinstdin 136 listbeep shnullcmd 137 listpacked shoptionletters 138 listrowsfirst shortloops 139 listtypes shwordsplit 140 ) 141 options_matcher='L:|[nN][oO]= M:_= M:{A-Z}={a-z}' 142 test_code $options_matcher example1_list 143 comptest $'tst nolistbee\t' 1440:Documentation example for options, input "nolistbee" 145>line: {tst nolistbeep }{} 146>COMPADD:{} 147>INSERT_POSITIONS:{14} 148 149 150 test_code $options_matcher example1_list 151 comptest $'tst list_bee\t' 1520:Documentation example for options, input "list_bee" 153>line: {tst list_beep }{} 154>COMPADD:{} 155>INSERT_POSITIONS:{13} 156 157 test_code $options_matcher example1_list 158 comptest $'tst ListBee\t' 1590:Documentation example for options, input "ListBee" 160>line: {tst ListBeep }{} 161>COMPADD:{} 162>INSERT_POSITIONS:{12} 163 164 test_code $options_matcher example1_list 165 comptest $'tst NOList\tB\t' 1660:Documentation example for options, input "NOList" 167>line: {tst NOList}{} 168>COMPADD:{} 169>INSERT_POSITIONS:{10} 170>NO:{NOListambiguous} 171>NO:{NOListbeep} 172>NO:{NOListpacked} 173>NO:{NOListrowsfirst} 174>NO:{NOListtypes} 175>line: {tst NOListBeep }{} 176>COMPADD:{} 177>INSERT_POSITIONS:{14} 178 179 180 test_code $options_matcher example1_list 181 comptest $'tst NO_List\t__\tB\t' 1820:Documentation example for options, input "NO_List\t__\tB\t" 183>line: {tst NO_List}{} 184>COMPADD:{} 185>INSERT_POSITIONS:{11} 186>NO:{NO_Listambiguous} 187>NO:{NO_Listbeep} 188>NO:{NO_Listpacked} 189>NO:{NO_Listrowsfirst} 190>NO:{NO_Listtypes} 191>line: {tst NO_List__}{} 192>COMPADD:{} 193>INSERT_POSITIONS:{13} 194>NO:{NO_List__ambiguous} 195>NO:{NO_List__beep} 196>NO:{NO_List__packed} 197>NO:{NO_List__rowsfirst} 198>NO:{NO_List__types} 199>line: {tst NO_List__Beep }{} 200>COMPADD:{} 201>INSERT_POSITIONS:{17} 202 203 test_code $options_matcher example1_list 204 comptest $'tst __\tN\t__o\t___\tlist_\tbeep__\t' 2050:Documentation example for options, input "__\tN\t__o\t___\tlist_\tbeep__\t" 206>line: {tst __}{} 207>COMPADD:{} 208>INSERT_POSITIONS:{6} 209>NO:{__kshoptionprint} 210>NO:{__listambiguous} 211>NO:{__listbeep} 212>NO:{__listpacked} 213>NO:{__listrowsfirst} 214>NO:{__listtypes} 215>NO:{__shglob} 216>NO:{__shinstdin} 217>NO:{__shnullcmd} 218>NO:{__shoptionletters} 219>NO:{__shortloops} 220>NO:{__shwordsplit} 221>line: {tst __N}{} 222>COMPADD:{} 223>INSERT_POSITIONS:{} 224>line: {tst __N__o}{} 225>COMPADD:{} 226>INSERT_POSITIONS:{} 227>line: {tst __N__o___}{} 228>COMPADD:{} 229>INSERT_POSITIONS:{} 230>line: {tst __N__o___list_}{} 231>COMPADD:{} 232>INSERT_POSITIONS:{} 233>line: {tst __N__o___list_beep__}{} 234>COMPADD:{} 235>INSERT_POSITIONS:{} 236 237 test_code $options_matcher example1_list 238 comptest $'tst __\tNo\t___\tlist_\tbeep__\t' 2390:Documentation example for options, input "__\tNo\t___\tlist_\tbeep__\t" 240>line: {tst __}{} 241>COMPADD:{} 242>INSERT_POSITIONS:{6} 243>NO:{__kshoptionprint} 244>NO:{__listambiguous} 245>NO:{__listbeep} 246>NO:{__listpacked} 247>NO:{__listrowsfirst} 248>NO:{__listtypes} 249>NO:{__shglob} 250>NO:{__shinstdin} 251>NO:{__shnullcmd} 252>NO:{__shoptionletters} 253>NO:{__shortloops} 254>NO:{__shwordsplit} 255>line: {tst __No}{} 256>COMPADD:{} 257>INSERT_POSITIONS:{} 258>line: {tst __No___}{} 259>COMPADD:{} 260>INSERT_POSITIONS:{} 261>line: {tst __No___list_}{} 262>COMPADD:{} 263>INSERT_POSITIONS:{} 264>line: {tst __No___list_beep__}{} 265>COMPADD:{} 266>INSERT_POSITIONS:{} 267 268 269 test_code $options_matcher example1_list 270 comptest $'tst ___\tlist_\tbeep__\t' 2710:Documentation example for options, input "___\tlist_\tbeep__\t" 272>line: {tst ___}{} 273>COMPADD:{} 274>INSERT_POSITIONS:{7} 275>NO:{___kshoptionprint} 276>NO:{___listambiguous} 277>NO:{___listbeep} 278>NO:{___listpacked} 279>NO:{___listrowsfirst} 280>NO:{___listtypes} 281>NO:{___shglob} 282>NO:{___shinstdin} 283>NO:{___shnullcmd} 284>NO:{___shoptionletters} 285>NO:{___shortloops} 286>NO:{___shwordsplit} 287>line: {tst ___list_}{} 288>COMPADD:{} 289>INSERT_POSITIONS:{12} 290>NO:{___list_ambiguous} 291>NO:{___list_beep} 292>NO:{___list_packed} 293>NO:{___list_rowsfirst} 294>NO:{___list_types} 295>line: {tst ___list_beep__ }{} 296>COMPADD:{} 297>INSERT_POSITIONS:{18} 298 299 test_code 'B:[nN][oO]= M:_= M:{A-Z}={a-z}' example1_list 300 comptest $'tst __no_listbe\t' 3010:Documentation example for options, input "__no_listbe" 302>line: {tst __no_listbeep }{} 303>COMPADD:{} 304>INSERT_POSITIONS:{17} 305 306 test_code 'B:[nN][oO]= M:_= M:{A-Z}={a-z}' example1_list 307 comptest $'tst nonono_listbe\t' 3080:Documentation example for options, input "nonono_listbe" 309>line: {tst nonono_listbeep }{} 310>COMPADD:{} 311>INSERT_POSITIONS:{19} 312 313 lower_insensitive_M="M:{a-z}={A-Z}" 314 lower_insensitive_m="m:{a-z}={A-Z}" 315 example2_list=(ABC Abc abc) 316 test_code $lower_insensitive_M example2_list 317 comptest $'tst ab\tC\t' 3180:Documentation example for lowercase insenitive M, input "ab\tC\t" 319>line: {tst ab}{} 320>COMPADD:{} 321>INSERT_POSITIONS:{6} 322>NO:{abC} 323>NO:{abc} 324>line: {tst abC }{} 325>COMPADD:{} 326>INSERT_POSITIONS:{7} 327 328 test_code $lower_insensitive_m example2_list 329 comptest $'tst A\t\t' 3300:Documentation example for lowercase insenitive m, input "A\t\t" 331>line: {tst A}{} 332>COMPADD:{} 333>INSERT_POSITIONS:{5} 334>NO:{ABC} 335>NO:{Abc} 336>line: {tst ABC}{} 337>COMPADD:{} 338>INSERT_POSITIONS:{5} 339 340 example3_list=(ABC Abc abc) 341 case_insensitive_M="M:{a-zA-Z}={A-Za-z}" 342 case_insensitive_m="m:{a-zA-Z}={A-Za-z}" 343 test_code $case_insensitive_M example3_list 344 comptest $'tst aB\t\t' 3450:Documentation example for case insenitive M, input "aB\t\t" 346>line: {tst aB}{} 347>COMPADD:{} 348>INSERT_POSITIONS:{6} 349>NO:{aBC} 350>NO:{aBc} 351>line: {tst aBC}{} 352>COMPADD:{} 353>INSERT_POSITIONS:{6} 354 355 356 test_code $case_insensitive_m example3_list 357 comptest $'tst aB\t\t' 3580:Documentation example for case insenitive m, input "aB\t\t" 359>line: {tst a}{BC} 360>COMPADD:{} 361>INSERT_POSITIONS:{5:7} 362>line: {tst a}{BC} 363>COMPADD:{} 364>INSERT_POSITIONS:{5:7} 365>NO:{ABC} 366>NO:{Abc} 367>NO:{abc} 368 369 example4_matcher='r:|.=* r:|=*' 370 example4_list=(comp.sources.unix comp.sources.misc 371 comp.graphics.algorithms comp.graphics.animation comp.graphics.api 372 comp.graphics.apps comp.graphics.misc comp.graphics.packages 373 comp.graphics.rendering comp.graphics.visualization comp.graphics.apps.alias 374 comp.graphics.apps.gimp comp.graphics.apps.gnuplot 375 comp.graphics.apps.lightwave comp.graphics.apps.pagemaker 376 comp.graphics.apps.paint-shop-pro comp.graphics.apps.photoshop 377 comp.graphics.apps.softimage comp.graphics.apps.ulead 378 comp.graphics.rendering.misc comp.graphics.rendering.raytracing 379 comp.graphics.rendering.renderman) 380 test_code $example4_matcher example4_list 381 comptest $'tst c.s.u\t' 3820:Documentation example using input c.s.u 383>line: {tst comp.sources.unix }{} 384>COMPADD:{} 385>INSERT_POSITIONS:{21} 386 387 test_code $example4_matcher example4_list 388 comptest $'tst c.g.\ta\t.\tp\ta\tg\t' 3890:Documentation example using input c.g.\ta\t.\tp\ta\tg\t 390>line: {tst comp.graphics.}{} 391>COMPADD:{} 392>INSERT_POSITIONS:{18} 393>line: {tst comp.graphics.a}{} 394>COMPADD:{} 395>INSERT_POSITIONS:{19} 396>NO:{comp.graphics.algorithms} 397>NO:{comp.graphics.animation} 398>NO:{comp.graphics.api} 399>NO:{comp.graphics.apps} 400>NO:{comp.graphics.apps.alias} 401>NO:{comp.graphics.apps.gimp} 402>NO:{comp.graphics.apps.gnuplot} 403>NO:{comp.graphics.apps.lightwave} 404>NO:{comp.graphics.apps.pagemaker} 405>NO:{comp.graphics.apps.paint-shop-pro} 406>NO:{comp.graphics.apps.photoshop} 407>NO:{comp.graphics.apps.softimage} 408>NO:{comp.graphics.apps.ulead} 409>line: {tst comp.graphics.apps.}{} 410>COMPADD:{} 411>INSERT_POSITIONS:{23} 412>line: {tst comp.graphics.apps.p}{} 413>COMPADD:{} 414>INSERT_POSITIONS:{24} 415>NO:{comp.graphics.apps.pagemaker} 416>NO:{comp.graphics.apps.paint-shop-pro} 417>NO:{comp.graphics.apps.photoshop} 418>line: {tst comp.graphics.apps.pa}{} 419>COMPADD:{} 420>INSERT_POSITIONS:{25} 421>NO:{comp.graphics.apps.pagemaker} 422>NO:{comp.graphics.apps.paint-shop-pro} 423>line: {tst comp.graphics.apps.pagemaker }{} 424>COMPADD:{} 425>INSERT_POSITIONS:{32} 426 427 test_code $example4_matcher example4_list 428 comptest $'tst c...pag\t' 4290:Documentation example using input c...pag\t 430>line: {tst comp.graphics.apps.pagemaker }{} 431>COMPADD:{} 432>INSERT_POSITIONS:{32} 433 434 test_code $example4_matcher example4_list 435 comptest $'tst c...pa\tg\t' 4360:Documentation example using input c...pa\tg\t 437>line: {tst comp.graphics.apps.pa}{} 438>COMPADD:{} 439>INSERT_POSITIONS:{25} 440>line: {tst comp.graphics.apps.pagemaker }{} 441>COMPADD:{} 442>INSERT_POSITIONS:{32} 443 444 example5_matcher='r:|[.,_-]=* r:|=*' 445 example5_list=(veryverylongfile.c veryverylongheader.h) 446 test_code $example5_matcher example5_list 447 comptest $'tst v.c\tv.h\t' 4480:Documentation example using input v.c\t 449>line: {tst veryverylongfile.c }{} 450>COMPADD:{} 451>INSERT_POSITIONS:{23} 452>line: {tst veryverylongfile.c veryverylongheader.h }{} 453>COMPADD:{} 454>INSERT_POSITIONS:{44} 455 456 457 example6_list=(LikeTHIS FooHoo 5foo123 5bar234) 458 test_code 'r:|[A-Z0-9]=* r:|=*' example6_list 459 comptest $'tst H\t' 4600:Documentation example using "r:|[A-Z0-9]=* r:|=*", input H 461>line: {tst H}{} 462>COMPADD:{} 463>INSERT_POSITIONS:{} 464 465 test_code 'r:|[A-Z0-9]=* r:|=*' example6_list 466 comptest $'tst 2\t' 4670:Documentation example using "r:|[A-Z0-9]=* r:|=*", input 2 468>line: {tst 2}{} 469>COMPADD:{} 470>INSERT_POSITIONS:{} 471 472 test_code 'r:|[A-Z0-9]=** r:|=*' example6_list 473 comptest $'tst H\t' 4740:Documentation example using "r:|[A-Z0-9]=** r:|=*", input H 475>line: {tst H}{} 476>COMPADD:{} 477>INSERT_POSITIONS:{4} 478>NO:{FooHoo} 479>NO:{LikeTHIS} 480 481 test_code 'r:|[A-Z0-9]=** r:|=*' example6_list 482 comptest $'tst 2\t\t' 4830:Documentation example using "r:|[A-Z0-9]=** r:|=*", input 2 484>line: {tst 5}{23} 485>COMPADD:{} 486>INSERT_POSITIONS:{5:7} 487>line: {tst 5}{23} 488>COMPADD:{} 489>INSERT_POSITIONS:{5:7} 490>NO:{5bar234} 491>NO:{5foo123} 492 493 example7_matcher="r:[^A-Z0-9]||[A-Z0-9]=** r:|=*" 494 example7_list=($example6_list) 495 test_code $example7_matcher example7_list 496 comptest $'tst H\t2\t' 4970:Documentation example using "r:[^A-Z0-9]||[A-Z0-9]=** r:|=*" 498>line: {tst FooHoo }{} 499>COMPADD:{} 500>INSERT_POSITIONS:{10} 501>line: {tst FooHoo 5bar234 }{} 502>COMPADD:{} 503>INSERT_POSITIONS:{18} 504 505 506 workers_7311_matcher="m:{a-z}={A-Z} r:|[.,_-]=* r:|=*" 507 workers_7311_list=(Abc-Def-Ghij.txt Abc-def.ghi.jkl_mno.pqr.txt Abc_def_ghi_jkl_mno_pqr.txt) 508 test_code $workers_7311_matcher workers_7311_list 509 comptest $'tst a-a\t' 5100:Bug from workers 7311 511>line: {tst a-a}{} 512>COMPADD:{} 513>INSERT_POSITIONS:{} 514 515 test_code $workers_7311_matcher workers_7311_list 516 comptest $'tst a\t\t-d.\t' 5170:Bug from workers_7311 518>line: {tst Abc}{} 519>COMPADD:{} 520>INSERT_POSITIONS:{7} 521>line: {tst Abc}{} 522>COMPADD:{} 523>INSERT_POSITIONS:{7} 524>NO:{Abc-Def-Ghij.txt} 525>NO:{Abc-def.ghi.jkl_mno.pqr.txt} 526>NO:{Abc_def_ghi_jkl_mno_pqr.txt} 527>line: {tst Abc-def.ghi.jkl_mno.pqr.txt }{} 528>COMPADD:{} 529>INSERT_POSITIONS:{31} 530 531 workers_10886_matcher="r:|[A-Z0-9]=* r:|=*" 532 workers_10886_list=(BW UWB W) 533 test_code $workers_10886_matcher workers_10886_list 534 comptest $'tst W\t' 5350:Bug from workers 10886 536>line: {tst W }{} 537>COMPADD:{} 538>INSERT_POSITIONS:{5} 539 540 workers_11081_matcher='m:{a-zA-Z}={A-Za-z} r:|[.,_-]=* r:[^A-Z0-9]||[A-Z0-9]=* r:[A-Z0-9]||[^A-Z0-9]=* r:[^0-9]||[0-9]=* r:|=*' 541 workers_11081_list=(build.out build.out1 build.out2) 542 test_code $workers_11081_matcher workers_11081_list 543 comptest $'tst bui\t\t\t' 5440:Bug from workers 11081 545>line: {tst build.out}{} 546>COMPADD:{} 547>INSERT_POSITIONS:{13} 548>line: {tst build.out}{} 549>COMPADD:{} 550>INSERT_POSITIONS:{13} 551>NO:{build.out} 552>NO:{build.out1} 553>NO:{build.out2} 554>line: {tst build.out}{} 555>COMPADD:{} 556>INSERT_POSITIONS:{13} 557 558 559 workers_11388_matcher='r:|[:.]=* r:|=*' 560 workers_11388_list=(a.b:0 c.d:1) 561 test_code $workers_11388_matcher workers_11388_list 562 comptest $'tst :\t' 5630:Non-bug from workers 11388 564>line: {tst :}{} 565>COMPADD:{} 566>INSERT_POSITIONS:{} 567 568 workers_11388_matcher='r:|[:.]=** r:|=*' 569 workers_11388_list=(a.b:0 c.d:1) 570 test_code $workers_11388_matcher workers_11388_list 571 comptest $'tst :\t' 5720:Non-bug from workers 11388 573>line: {tst .:}{} 574>COMPADD:{} 575>INSERT_POSITIONS:{4:5:6} 576 577 workers_11586_matcher='r:|.=** r:[^0-9]||[0-9]=**' 578 workers_11586_list=(c00.abc c01.abc.def.00.0) 579 test_code $workers_11586_matcher workers_11586_list 580 comptest $'tst c00\t.\ta\t' 5810:Bug from workers 11586 582>line: {tst c00}{} 583>COMPADD:{} 584>INSERT_POSITIONS:{6} 585>NO:{c00.abc} 586>NO:{c01.abc.def.00.0} 587>line: {tst c00.}{} 588>COMPADD:{} 589>INSERT_POSITIONS:{7:8} 590>NO:{c00.abc} 591>NO:{c01.abc.def.00.0} 592>line: {tst c00.abc }{} 593>COMPADD:{} 594>INSERT_POSITIONS:{11} 595 596 workers_12995a_matcher='r:|/=* r:|=*' 597 workers_12995a_list=(u1 u1/q1 u1/q1/e1 u2 u2/q1 u2/q1/e2 u2/q1/e2/a1 u2/q1/e2/a2 u3 u3/q1 u4 u4/q u4/q/a1 u4/q/a2) 598 test_code $workers_12995a_matcher workers_12995a_list 599 comptest $'tst u/q/a\t' 6000:First test from workers 12995 601>line: {tst u4/q/a}{} 602>COMPADD:{} 603>INSERT_POSITIONS:{10} 604 605 workers_12995b_matcher='m:{a-z}={A-Z} r:|/=* r:|=*' 606 workers_12995b_list=(../Completion/Core ../Completion/Commands) 607 test_code $workers_12995b_matcher workers_12995b_list 608 comptest $'tst ../com/cor\002\002\002\002\002\002\002\t' 6090:Second test from workers 12995 610>line: {tst ../Completion/Core }{} 611>COMPADD:{} 612>INSERT_POSITIONS:{22} 613 614 workers_13320_matcher='r:|[.,_-]=** r:[^0-9]||[0-9]=**' 615 workers_13320_list=(glibc-2.1.94-3.i386.rpm glibc-devel-2.1.94-3.i386.rpm) 616 workers_13320_list=($workers_13320_list glibc-profile-2.1.94-3.i386.rpm) 617 test_code $workers_13320_matcher workers_13320_list 618 comptest $'tst glibc-2.1\t' 6190:Test from workers 13320 620>line: {tst glibc}{-2.1.94-3.i386.rpm} 621>COMPADD:{} 622>INSERT_POSITIONS:{9:27} 623 624 test_code $workers_13320_matcher workers_13320_list 625 comptest $'tst g-2\t' 6260:Test from workers 13320 627>line: {tst glibc}{-2.1.94-3.i386.rpm} 628>COMPADD:{} 629>INSERT_POSITIONS:{9:27} 630 631 workers_13345a_matcher='r:|[.,_-]=**' 632 workers_13345a_list=(A.B.C A.B.C.D A.C) 633 test_code $workers_13345a_matcher workers_13345a_list 634 comptest $'tst A.C\t' 6350:First test from workers 13345 636>line: {tst A.C}{} 637>COMPADD:{} 638>INSERT_POSITIONS:{5:7} 639>NO:{A.B.C} 640>NO:{A.B.C.D} 641>NO:{A.C} 642 643 644 workers_13345b_matcher='r:|[.,_-]=** r:[^0-9]||[0-9]=**' 645 workers_13345b_list=(a-b_1_2_2 a-b_2_0.gz a-b_2_0.zip) 646 test_code $workers_13345b_matcher workers_13345b_list 647 comptest $'tst a-b_2\t' 6480:Second test from workers 13345 649>line: {tst a-b_2_}{} 650>COMPADD:{} 651>INSERT_POSITIONS:{8:10} 652 653 workers_13382_matcher='r:|.=**' 654 workers_13382_list=(a.b.c a.b.c.d aA.bB.cB.dA aA.bB.cC.dD aD.bC.cB.dA aA.bC.cB.dA) 655 test_code $workers_13382_matcher workers_13382_list 656 comptest $'tst a...\tA\tC\t' 6570:Test for insert positions 658>line: {tst a.b.c.d}{} 659>COMPADD:{} 660>INSERT_POSITIONS:{5:7:9:11} 661>line: {tst a.b}{.cB.dA} 662>COMPADD:{} 663>INSERT_POSITIONS:{5:7:13} 664>line: {tst a}{.bC.cB.dA} 665>COMPADD:{} 666>INSERT_POSITIONS:{5:14} 667>NO:{aA.bC.cB.dA} 668>NO:{aD.bC.cB.dA} 669 670 users_12227_matcher='r:|[-./_]=* r:|=* l:|=*' 671 users_12227_list=(foo-bar-abc foo-bar-def foo-bar-ghi) 672 test_code $users_12227_matcher users_12227_list 673 comptest $'tst bar\t' 6740:Test for wildcard left anchor with partial word right anchors 675>line: {tst foo-bar-}{} 676>COMPADD:{} 677>INSERT_POSITIONS:{12} 678 679%clean 680 681 zmodload -ui zsh/zpty 682