1 #!/bin/sh 2 # 3 # Copyright (c) International Business Machines Corp., 2000 4 # 5 # This program is free software; you can redistribute it and/or modify 6 # it under the terms of the GNU General Public License as published by 7 # the Free Software Foundation; either version 2 of the License, or 8 # (at your option) any later version. 9 # 10 # This program is distributed in the hope that it will be useful, 11 # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 13 # the GNU General Public License for more details. 14 # 15 # You should have received a copy of the GNU General Public License 16 # along with this program; if not, write to the Free Software 17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 18 # 19 # 20 # 21 # FILE : ar 22 # 23 # PURPOSE: Construct one or more command lines which use options that do not 24 # take arguments 25 # For each of these invocations 26 # Specify the options seperately 27 # 28 # Group the options together 29 # Compare the behavior of the two cases 30 # If they behave differently, then fail 31 # If none of the cases fail, then pass 32 # 33 # HISTORY: 34 # 06/01 Robbie Williamson (robbiew (at] us.ibm.com) 35 # -Ported 36 # 37 # 38 #----------------------------------------------------------------------- 39 # 40 #---------------------------------------------------------------------- 41 #Uncomment line below for debug output. 42 #trace_logic=${trace_logic:-"set -x"} 43 $trace_logic 44 45 TCtmp=${TCtmp:-/tmp/ar01-$$} 46 mkdir $TCtmp 47 TCdat=${TCdat:-`pwd`} 48 cd $TCdat 49 50 LOOPS=${LOOPS:-1} 51 LIST="file1.in file2.in file3.in file4.in file5.in file6.in file7.in file8.in file9.in file10.in" 52 LIST="$LIST $LIST $LIST $LIST $LIST $LIST $LIST $LIST $LIST $LIST" 53 COUNT=1 54 TCRESULT=0 55 56 # Setup function 57 setup() { 58 for i in $LIST;do 59 touch $i 60 done 61 } 62 63 # Cleanup function 64 cleanup() { 65 if [ $TCRESULT = 0 ]; then 66 echo "---------------ar command passed the system test-----------------" 67 exit 0 68 else 69 echo "---------------ar command failed the system test-----------------" 70 exit 1 71 fi 72 } 73 74 crtest() { 75 if [ $? -ne 0 ] 76 then 77 TCRESULT=1 78 echo "FAIL - could not create lib.a" 79 cleanup 80 fi 81 } 82 83 ttest() { 84 if [ $? -ne 0 ] 85 then 86 TCRESULT=1 87 echo "FAIL - could not output table from lib.a to lib.a.stdout" 88 cleanup 89 fi 90 } 91 92 rtest() { 93 if [ $? -ne 0 ] 94 then 95 TCRESULT=1 96 echo "FAIL - could not add file into lib.a" 97 cleanup 98 fi 99 } 100 101 mtest() { 102 if [ $? -ne 0 ] 103 then 104 TCRESULT=1 105 echo "FAIL - could not move file into lib.a" 106 cleanup 107 fi 108 } 109 110 setup 111 112 # Main Loop 113 while [ $COUNT -le $LOOPS ] 114 do 115 echo "-------System test for ar command, Loop $COUNT----" 116 #The 'a' flag causes files to be placed after 'posname'. 117 118 # CODE 119 rm -rf $TCtmp/lib.a;cd $TCdat 120 121 printf "file1.in\nfile2.in\nfile3.in\n" >$TCtmp/lib.a.exp 122 123 ar -cr $TCtmp/lib.a file1.in file3.in 124 crtest 125 ar -ra file1.in $TCtmp/lib.a file2.in 126 rtest 127 ar -t $TCtmp/lib.a > $TCtmp/lib.a.stdout 128 ttest 129 130 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 131 then 132 echo "-)1" 133 else 134 TCRESULT=1 135 echo "FAIL - ar with -a option does not place files after 'posname'" 136 fi 137 138 # The 'a' flag with the 'm' option causes files to be moved after 'posname' 139 140 rm -rf $TCtmp/lib.a 141 cd $TCdat 142 143 ar -cr $TCtmp/lib.a file1.in file2.in file3.in file4.in 144 crtest 145 printf "file1.in\nfile4.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 146 ar -ma file1.in $TCtmp/lib.a file4.in 147 mtest 148 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 149 ttest 150 151 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout 1> /dev/null 2> /dev/null 152 then 153 echo "-)2" 154 else 155 TCRESULT=2 156 echo "FAIL - ar with -a option does not move files after 'posname'" 157 fi 158 159 # The 'b' flag causes files to be placed before 'posname'. 160 161 # CODE 162 163 rm -rf $TCtmp/lib.a 164 cd $TCdat 165 ar -cr $TCtmp/lib.a file1.in file3.in 166 crtest 167 printf "file1.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 168 ar -rb file3.in $TCtmp/lib.a file2.in 169 rtest 170 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 171 ttest 172 173 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 174 then 175 echo "-)3" 176 else 177 TCRESULT=3 178 echo "FAIL - ar with -b option does not place files before 'posname'" 179 fi 180 181 # The 'b' flag with 'm' option causes files to be moved before 'posname'. 182 183 # CODE 184 rm -rf $TCtmp/lib.a 185 cd $TCdat 186 187 ar -cr $TCtmp/lib.a file1.in file3.in file2.in 188 crtest 189 printf "file1.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 190 ar -mb file3.in $TCtmp/lib.a file2.in 191 mtest 192 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 193 ttest 194 195 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 196 then 197 echo "-)4" 198 else 199 TCRESULT=4 200 echo "FAIL - ar with -b option does not move files before 'posname'." 201 fi 202 203 # -c option suppress the messages 204 205 # CODE 206 207 rm -rf $TCtmp/lib.a.exp $TCtmp/lib.a 208 cd $TCdat 209 210 touch $TCtmp/lib.a.exp 211 212 ar -cr $TCtmp/lib.a file1.in > $TCtmp/lib.a.stdout 213 crtest 214 215 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout 216 then 217 echo "-)5" 218 else 219 TCRESULT=5 220 echo "FAIL - ar with -c option did not suppress messages." 221 fi 222 223 # The 'qc' option causes suppresion of the default message when 224 # 'afile' is created. 225 226 # CODE 227 rm -rf $TCtmp/lib.a 228 cd $TCdat 229 230 ar -qc $TCtmp/lib.a file1.in > $TCtmp/lib.a.stdout 231 232 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 233 then 234 echo "-)6" 235 else 236 TCRESULT=6 237 echo "FAIL - ar with -qc option did not suppress messages." 238 fi 239 240 # The -d option deletes files from archive when names are specified. 241 242 # CODE 243 rm -rf $TCtmp/lib.a 244 cd $TCdat 245 246 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 247 crtest 248 echo "file3.in" > $TCtmp/lib.a.exp 249 ar -d $TCtmp/lib.a file1.in file2.in 250 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 251 ttest 252 253 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 254 then 255 echo "-)7" 256 else 257 TCRESULT=7 258 echo "FAIL - ar with -d option does not delete files form the archive" 259 fi 260 261 # The -d option does not delete files from archive when no names 262 # are specified. 263 264 # CODE 265 rm -rf $TCtmp/lib.a 266 cd $TCdat 267 268 printf "file1.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 269 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 270 crtest 271 ar -d $TCtmp/lib.a >/dev/null 2>&1 272 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 273 ttest 274 275 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 276 then 277 echo "-)8" 278 else 279 TCRESULT=8 280 echo "FAIL - ar with -d option deleted files even when none were specified" 281 fi 282 283 # The -d does not affect behaviour of -s option. 284 285 # CODE 286 rm -rf $TCtmp/lib.a 287 cd $TCdat 288 289 touch $TCtmp/dummy.in 290 ar -cr $TCtmp/lib.a $TCtmp/dummy.in file1.in file2.in file3.in 291 crtest 292 size1=`ls -s $TCtmp/lib.a|(read a b; echo $a)` 293 ar -ds $TCtmp/lib.a $TCtmp/dummy.in 2>&1 1>/dev/null 294 size2=`ls -s $TCtmp/lib.a|(read a b; echo $a)` 295 296 if [ $size1 -eq $size2 ] 297 then 298 echo "-)9" 299 else 300 TCRESULT=9 301 echo "FAIL - ar with -d option did affect the -s option" 302 fi 303 304 # The 'i' flag causes files to be placed before 'posname'. 305 306 # CODE 307 rm -rf $TCtmp/lib.a 308 cd $TCdat 309 310 printf "file1.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 311 ar -cr $TCtmp/lib.a file1.in file3.in 312 crtest 313 ar -ri file3.in $TCtmp/lib.a file2.in 314 rtest 315 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 316 ttest 317 318 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 319 then 320 echo "-)10" 321 else 322 TCRESULT=10 323 echo "FAIL - ar with -i did not place the files before 'posname'." 324 fi 325 326 # The 'i' flag with 'm' option causes files to be moved before 'posname'. 327 328 # CODE 329 rm -rf $TCtmp/lib.a 330 cd $TCdat 331 332 ar -cr $TCtmp/lib.a file1.in file3.in file2.in 333 crtest 334 printf "file1.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 335 ar -mi file3.in $TCtmp/lib.a file2.in 336 mtest 337 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 338 ttest 339 340 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 341 then 342 echo "-)11" 343 else 344 TCRESULT=11 345 echo "FAIL - ar with -i failed to move files before 'posname'." 346 fi 347 348 # m option moves the files to end of the archive 349 350 # CODE 351 352 rm -rf $TCtmp/lib.a 353 cd $TCdat 354 355 ar -cr $TCtmp/lib.a file1.in file3.in file2.in 356 crtest 357 printf "file1.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 358 ar -m $TCtmp/lib.a file3.in 359 mtest 360 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 361 ttest 362 363 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 364 then 365 echo "-)12" 366 else 367 TCRESULT=12 368 echo "FAIL - ar with -m fails to move the files to the end of archive" 369 fi 370 371 # The -p option causes only printing of contents of file contained in 372 # archive. 373 374 # CODE 375 rm -rf $TCtmp/lib.* 376 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 377 crtest 378 printf "This is file one\nThis is file two\nThis is file three\n" > $TCtmp/lib.a.exp 379 ar -p $TCtmp/lib.a 2>&1 1>$TCtmp/lib.a.stdout 380 381 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 382 then 383 echo "-)13" 384 else 385 TCRESULT=13 386 echo "FAIL - ar with -p option failed to print the contents." 387 fi 388 389 # The -p does not affect behaviour of -s option. 390 391 # CODE 392 393 rm -rf $TCtmp/lib.a;cd $TCdat 394 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 395 crtest 396 size1=`ls -s $TCtmp/lib.a|(read a b; echo $a)` 397 ar -ps $TCtmp/lib.a 2>&1 1> /dev/null 398 size2=`ls -s $TCtmp/lib.a|(read a b; echo $a)` 399 400 if [ $size1 -eq $size2 ] 401 then 402 echo "-)14" 403 else 404 TCRESULT=14 405 echo "FAIL - ar with -p did the affect behaviour of -s option" 406 fi 407 408 # The command 'ar -q afile name' appends name to the end of 'afile'. 409 410 # CODE 411 412 rm -rf $TCtmp/lib.a 413 cd $TCdat 414 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 415 crtest 416 printf "file1.in\nfile2.in\nfile3.in\nfile4.in\n" > $TCtmp/lib.a.exp 417 ar -q $TCtmp/lib.a file4.in 418 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 419 ttest 420 421 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 422 then 423 echo "-)15" 424 else 425 TCRESULT=15 426 echo "FAIL - ar with -q afilename failed to append to the end of file" 427 fi 428 429 # q option does not affect the behaviour of option s 430 431 # CODE 432 433 rm -rf $TCtmp/lib.a;cd $TCdat 434 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 435 crtest 436 size1=`ls -s $TCtmp/lib.a|(read a b; echo $a)` 437 ar -qs $TCtmp/lib.a $TCtmp/dummy.in 2>&1 1>/dev/null 438 size2=`ls -s $TCtmp/lib.a|(read a b; echo $a)` 439 440 if [ $size1 -eq $size2 ] 441 then 442 echo "-)16" 443 else 444 TCRESULT=16 445 echo "FAIL - ar with -q did affect the behaviour of -s option." 446 fi 447 448 # The -s causes regeneration of symbol table even if a symbol table exists. 449 450 echo "-)17 SKIPPED due to binutils ar automatically adds a symbol." 451 452 # CODE 453 454 rm -rf $TCtmp/lib.a;cd $TCdat 455 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 456 crtest 457 printf "file1.in\nfile2.in\nfile3.in\n" > $TCtmp/lib.a.exp 458 ar -t $TCtmp/lib.a >$TCtmp/lib.a.stdout 2>&1 459 ttest 460 461 if diff -b $TCtmp/lib.a.exp $TCtmp/lib.a.stdout >/dev/null 2>&1 462 then 463 echo "-)18" 464 else 465 TCRESULT=18 466 echo "FAIL - ar with -t did not print as desired" 467 fi 468 469 # The -t does not affect behaviour of -s option. 470 471 echo "-)19 SKIPPED due to binutils ar automatically adds a symbol." 472 473 # The 'u' flag causes files only with later modification date than 474 # in archive are replaced. 475 476 # CODE 477 rm -rf $TCtmp/lib.a 478 cd $TCdat 479 480 ar -cr $TCtmp/lib.a file0.in file2.in 481 crtest 482 File1time=`ar -tv $TCtmp/lib.a | grep file0.in` 483 File2time=`ar -tv $TCtmp/lib.a | grep file2.in` 484 485 #sleep 5 486 touch -c -t $(date --date='next day' +"%Y%m%d%H%M") file0.in 487 488 ar -ru $TCtmp/lib.a file0.in file2.in 2>&1 1>/dev/null 489 File1time1=`ar -tv $TCtmp/lib.a | grep file0.in` 490 File2time2=`ar -tv $TCtmp/lib.a | grep file2.in` 491 492 if [ "$File2time" = "$File2time2" ] 493 then 494 if [ "$File1time" = "$File1time1" ] 495 then 496 TCRESULT=20 497 echo "FAIL - ar with -u flag failed" 498 else 499 echo "-)20" 500 fi 501 else 502 TCRESULT=20 503 echo "FAIL - ar with -u flag failed" 504 fi 505 # Reset the timestamp on file0.in to current 506 touch file0.in 507 508 # This is the next assertion 509 510 # CODE 511 512 Count=0 513 rm -rf $TCtmp/lib.a;cd $TCdat 514 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 515 crtest 516 Sysmonth=`date | cut -f2 -d" "` 517 Month=`ar -tv $TCtmp/lib.a | grep "file2.in" | awk '{print $4}'` 518 Count=`ar -tv $TCtmp/lib.a | wc -l` 519 520 if [ $Sysmonth = $Month ] && [ $Count -eq 3 ] 521 then 522 echo "-)21" 523 else 524 TCRESULT=21 525 echo "FAIL - ar with -v flag failed to print a line for each file" 526 fi 527 528 # The -v option produces a verbose listing like ls -n 529 530 # CODE 531 532 rm -rf $TCtmp/lib.a;cd $TCdat $TCtmp/lib.a.exp *out 533 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 534 crtest 535 536 ls -ln --time-style=+%b" "%e" "%H:%M file1.in file2.in file3.in | 537 while read permissions link uid gid size month day time file_name 538 do 539 echo "${permissions%.};$uid/$gid;$size;$month;$day;$time;$file_name" 540 done >> $TCtmp/lib.a.exp 541 542 ar -tv $TCtmp/lib.a | 543 while read permissions uid size month day time year file_name 544 do 545 echo "-$permissions;$uid;$size;$month;$day;$time;$file_name" 546 done >> $TCtmp/lib.a.stdout 547 ttest 548 549 diff $TCtmp/lib.a.exp $TCtmp/lib.a.stdout 550 if [ $? -eq 0 ] 551 then 552 echo "-)22" 553 else 554 TCRESULT=22 555 echo "FAIL - ar with -v failed to produce a verbose out put" 556 fi 557 558 # The 'v' option causes the 'x' option to display a filename for each 559 # file extracted. 560 561 # CODE 562 563 rm -rf $TCtmp/lib.a;cd $TCdat 564 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 565 crtest 566 Count=`ar -xv $TCtmp/lib.a | wc -l` 567 568 if [ $Count = '3' ] 569 then 570 echo "-)23" 571 else 572 TCRESULT=23 573 echo "FAIL - ar with -v along with x did not display extracted file names" 574 fi 575 576 # The command 'ar -x afile ' causes all files from the archive to be extracted. 577 578 # CODE 579 580 rm -rf $TCtmp/lib.a;cd $TCdat 581 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 582 crtest 583 584 Count=`ar -xv $TCtmp/lib.a | wc -l` 585 586 if [ $Count -eq '3' ] 587 then 588 echo "-)24" 589 else 590 TCRESULT=24 591 echo "FAIL - ar with -x flag did not extract all file" 592 fi 593 594 # The command 'ar -x afile name name' causes only named files from 595 # the archive to be extracted. 596 597 # CODE 598 rm -rf $TCtmp/lib.a;cd $TCdat 599 ar -cr $TCtmp/lib.a file1.in file2.in file3.in 600 crtest 601 Count=`ar -xv $TCtmp/lib.a file1.in | grep file | wc -l` 602 603 if [ $Count = '1' ] 604 then 605 echo "-)25" 606 else 607 TCRESULT=25 608 echo "FAIL - ar with -x lib filename did not extract the named file alone" 609 fi 610 611 # This test will fail under pan, so it's commented out by default. 612 echo "-)26 SKIPPED UNDER PAN" 613 # 614 # Signal SIGHUP 615 616 # CODE 617 618 rm -rf $TCtmp/lib.* 619 620 ar -vr $TCtmp/lib.a $LIST >>$TCtmp/lib.a.stdout& 621 while [ ! -s $TCtmp/lib.a ] 622 do 623 sleep 1 624 done 625 kill -s 2 $! >/dev/null 2>&1 626 627 sleep 1 628 if [ `wc -l $TCtmp/lib.a.stdout|(read a b;echo $a)` -ne 100 ] 629 then 630 TCRESULT=27 631 echo "FAIL - ar could not create the archive ; killed by SIGINIT" 632 else 633 echo "-)27" 634 fi 635 636 # Signal SIGQUIT 637 638 # CODE 639 640 rm -rf $TCtmp/lib.* 641 642 ar -vr $TCtmp/lib.a $LIST >>$TCtmp/lib.a.stdout& 643 while [ ! -s $TCtmp/lib.a ] 644 do 645 sleep 1 646 done 647 kill -s 3 $! >/dev/null 2>&1 648 649 sleep 1 650 if [ `wc -l $TCtmp/lib.a.stdout|(read a b;echo $a)` -ne 100 ] 651 then 652 TCRESULT=28 653 echo "FAIL - ar could not create the archive ; killed by SIGQUIT" 654 else 655 echo "-)28" 656 fi 657 658 # Signal SIGHUP; ar should not remove archive that existed before invocation. 659 660 # CODE 661 662 rm -rf $TCtmp/lib.a;cd $TCdat $TCtmp/lib.a.stdout 663 ar -rv $TCtmp/lib.a file1.in file2.in file3.in 2>&1 1>$TCtmp/lib.a.stdout 664 rtest 665 ar -rv $TCtmp/lib.a $LIST 2>&1 1>>$TCtmp/lib.a.stdout& 666 rtest 667 while [ ! -s $TCtmp/lib.a ] 668 do 669 sleep 1 670 done 671 sleep 1 672 kill -s 1 $! 2>&1 1>/dev/null | read a 673 674 if [ `wc -l $TCtmp/lib.a.stdout|(read a b;echo $a)` -ne 103 ] 675 then 676 TCRESULT=29 677 echo "FAIL - ar could not complete the archive ; killed by SIGHUP" 678 else 679 echo "-)29" 680 fi 681 682 # Signal SIGINIT; ar should not remove archive that existed before invocation. 683 684 # CODE 685 686 rm -rf $TCtmp/lib.a 687 cd $TCdat $TCtmp/lib.a.stdout 688 ar -rv $TCtmp/lib.a file1.in file2.in file3.in 2>&1 1>$TCtmp/lib.a.stdout 689 rtest 690 ar -rv $TCtmp/lib.a $LIST 2>&1 1>>$TCtmp/lib.a.stdout& 691 rtest 692 while [ ! -s $TCtmp/lib.a ] 693 do 694 sleep 1 695 done 696 sleep 1 697 698 kill -s 2 $! 2>&1 1>/dev/null | read a 699 700 if [ `wc -l $TCtmp/lib.a.stdout|(read a b;echo $a)` -ne 103 ] 701 then 702 TCRESULT=30 703 echo "FAIL - ar could not complete the archive ; killed by SIGINIT" 704 else 705 echo "-)30" 706 fi 707 708 # Signal SIGQUIT; ar should not remove archive that existed before invocation. 709 710 # CODE 711 712 rm -rf $TCtmp/lib.a 713 cd $TCdat 714 ar -rv $TCtmp/lib.a file1.in file2.in file3.in 2>&1 1>$TCtmp/lib.a.stdout 715 rtest 716 ar -rv $TCtmp/lib.a $LIST 2>&1 1>>$TCtmp/lib.a.stdout& 717 rtest 718 while [ ! -s $TCtmp/lib.a ] 719 do 720 sleep 1 721 done 722 sleep 1 723 kill -s 3 $! 2>&1 1>/dev/null | read a 724 725 if [ `wc -l $TCtmp/lib.a.stdout|(read a b;echo $a)` -ne 103 ] 726 then 727 TCRESULT=31 728 echo "FAIL - ar could not complete the archive ; killed by SIGQUIT" 729 else 730 echo "-)31" 731 fi 732 733 rm -rf $TCtmp 734 COUNT=`expr $COUNT + 1` 735 736 done 737 cleanup 738