Changeset 2725 in MondoRescue for branches/2.2.9/mindi-busybox/testsuite


Ignore:
Timestamp:
Feb 25, 2011, 9:26:54 PM (13 years ago)
Author:
Bruno Cornec
Message:
  • Update mindi-busybox to 1.18.3 to avoid problems with the tar command which is now failing on recent versions with busybox 1.7.3
Location:
branches/2.2.9/mindi-busybox/testsuite
Files:
43 added
63 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.9/mindi-busybox/testsuite/README

    r902 r2725  
    1 Update: doesn't work as described. Try "make check" from parent dir...
    2 * * *
    3 
    41To run the test suite, change to this directory and run "./runtest".  It will
    52run all of the test cases, and list those with unexpected outcomes.  Adding the
    63-v option will cause it to show expected outcomes as well.  To only run the test
    7 cases for particular applets, specify them as parameters to runtest.
     4cases for particular applets:
    85
    9 The test cases for an applet reside in the subdirectory of the applet name.  The
    10 name of the test case should be the assertion that is tested.  The test case
    11 should be a shell fragment that returns successfully if the test case passes,
    12 and unsuccessfully otherwise.
     6./runtest <applet1> <applet2>...
     7
     8Set SKIP_KNOWN_BUGS environment variable to any non-empty value
     9to exclude tests which are known to fail.
     10
     11Set SKIP_INTERNET_TESTS to exclude tests which require working
     12internet connection.
     13
     14
     15Common causes of false positives:
     16
     17For busybox built against uclibc, /etc/TZ does not exist or does not match
     18host system timezone setting. For glibc based host systems, timezone settings
     19are in /etc/localtime.
     20
     21LANG and LC_xxx environment variables set to non-C locale.
     22
     23
     24Developer's notes:
     25
     26The test cases for an applet reside in the subdirectory of the applet name.
     27The name of the test case should be the assertion that is tested.
     28The test case should be a shell fragment that returns successfully
     29if the test case passes, and unsuccessfully otherwise.
    1330
    1431If the test case relies on a certain feature, it should include the string
    1532"FEATURE: " followed by the name of the feature in a comment.  If it is always
    1633expected to fail, it should include the string "XFAIL" in a comment.
     34
    1735
    1836For the entire testsuite, the copyright is as follows:
  • branches/2.2.9/mindi-busybox/testsuite/all_sourcecode.tests

    r1765 r2725  
    33# Tests for the sourcecode base itself.
    44# Copyright 2006 by Mike Frysinger <vapier@gentoo.org>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    77[ -n "$srcdir" ] || srcdir=$(pwd)
    8 . testing.sh
     8. ./testing.sh
    99
    1010
     
    1717
    1818#
     19# make sure all usage strings are properly escaped.  oftentimes people miss
     20# an escape sequence so we end up with:
     21# #define foo_usage \
     22#       " this line is ok" \
     23#       " as is this line"
     24#       " but this one is broken as the \ is missing from above"
     25#
     26${CROSS_COMPILE}cpp -dD -P $srcdir/../include/usage.h \
     27    | sed -e '/^#define/d' -e '/^$/d' > src.usage.escaped
     28testing "Usage strings escaped" "cat src.usage.escaped" "" "" ""
     29rm -f src.usage.escaped
     30
     31
     32#
    1933# verify the applet order is correct in applets.h, otherwise
    2034# applets won't be called properly.
    2135#
    22 sed -n -e '/^USE_[A-Z]*(APPLET/{s:,.*::;s:.*(::;s:"::g;p}' \
     36sed -n -e 's:^//::' -e '/^IF_[A-Z]*(APPLET/{s:,.*::;s:.*(::;s:"::g;p}' \
    2337    $srcdir/../include/applets.h > applet.order.current
    2438LC_ALL=C sort applet.order.current > applet.order.correct
     
    6074#
    6175find $srcdir/.. '(' -name '*.c' -o -name '*.h' ')' -print0 | xargs -0 \
    62     grep -E -e '\<(bcmp|bcopy|bzero|getwd|index|mktemp|rindex|utimes)\>[[:space:]]*\(' \
     76    grep -E -e '\<(bcmp|bcopy|bzero|getwd|index|mktemp|rindex|utime|sigblock|siggetmask|sigsetmask)\>[[:space:]]*\(' \
    6377    | sed -e "s:^$srcdir/\.\./::g" > src.obsolete.funcs
    6478testing "Obsolete function usage" "cat src.obsolete.funcs" "" "" ""
  • branches/2.2.9/mindi-busybox/testsuite/awk.tests

    r1765 r2725  
    11#!/bin/sh
    22
    3 # awk tests.
    43# Copyright 2007 by Denys Vlasenko <vda.linux@googlemail.com>
    5 # Licensed under GPL v2, see file LICENSE for details.
    6 
    7 . testing.sh
    8 
    9 # testing "description" "arguments" "result" "infile" "stdin"
     4# Licensed under GPLv2, see file LICENSE in this source tree.
     5
     6. ./testing.sh
     7
     8# testing "description" "command" "result" "infile" "stdin"
    109
    1110testing "awk -F case 0" "awk -F '[#]' '{ print NF }'" ""    "" ""
     
    1817testing "awk -F case 7" "awk -F '[#]' '{ print NF }'" "5\n" "" "z##abc##zz\n"
    1918
     19# 4294967295 = 0xffffffff
     20testing "awk bitwise op"  "awk '{ print or(4294967295,1) }'" "4.29497e+09\n" "" "\n"
     21optional DESKTOP
     22testing "awk hex const 1" "awk '{ print or(0xffffffff,1) }'" "4.29497e+09\n" "" "\n"
     23testing "awk hex const 2" "awk '{ print or(0x80000000,1) }'" "2.14748e+09\n" "" "\n"
     24testing "awk oct const"   "awk '{ print or(01234,1) }'"      "669\n"         "" "\n"
     25SKIP=
     26
     27# check that "hex/oct integer" heuristic doesn't kick in on 00NN.NNN
     28testing "awk floating const with leading zeroes" \
     29    "awk '{ printf \"%f %f\n\", \"000.123\", \"009.123\" }'" \
     30    "0.123000 9.123000\n" \
     31    "" "\n"
     32
     33# long field seps requiring regex
     34testing "awk long field sep" "awk -F-- '{ print NF, length(\$NF), \$NF }'" \
     35    "2 0 \n3 0 \n4 0 \n5 0 \n" \
     36    "" \
     37    "a--\na--b--\na--b--c--\na--b--c--d--"
     38
     39# '@(samp|code|file)\{' is an invalid extended regex (unmatched '{'),
     40# but gawk 3.1.5 does not bail out on it.
     41testing "awk gsub falls back to non-extended-regex" \
     42    "awk 'gsub(\"@(samp|code|file)\{\",\"\");'; echo \$?" "0\n" "" "Hi\n"
     43
     44optional TAR BUNZIP2 FEATURE_SEAMLESS_BZ2
     45test x"$SKIP" != x"1" && tar xjf awk_t1.tar.bz2
     46testing "awk 'gcc build bug'" \
     47    "awk -f awk_t1_opt-functions.awk -f awk_t1_opth-gen.awk <awk_t1_input | md5sum" \
     48    "f842e256461a5ab1ec60b58d16f1114f  -\n" \
     49    "" ""
     50rm -rf awk_t1_* 2>/dev/null
     51SKIP=
     52
     53Q='":"'
     54
     55testing "awk NF in BEGIN" \
     56    "awk 'BEGIN { print ${Q} NF ${Q} \$0 ${Q} \$1 ${Q} \$2 ${Q} }'" \
     57    ":0::::\n" \
     58    "" ""
     59
     60prg='
     61function b(tmp) {
     62    tmp = 0;
     63    print "" tmp; #this line causes the bug
     64    return tmp;
     65}
     66function c(tmpc) {
     67    tmpc = b(); return tmpc;
     68}
     69BEGIN {
     70    print (c() ? "string" : "number");
     71}'
     72testing "awk string cast (bug 725)" \
     73    "awk '$prg'" \
     74    "0\nnumber\n" \
     75    "" ""
     76
     77testing "awk handles whitespace before array subscript" \
     78    "awk 'BEGIN { arr [3] = 1; print arr [3] }'" "1\n" "" ""
     79
     80# GNU awk 3.1.5's "print ERRNO" prints "No such file or directory" instead of "2",
     81# do we need to emulate that as well?
     82testing "awk handles non-existing file correctly" \
     83    "awk 'BEGIN { getline line <\"doesnt_exist\"; print ERRNO; ERRNO=0; close(\"doesnt_exist\"); print ERRNO; print \"Ok\" }'" \
     84    "2\n0\nOk\n" "" ""
     85
     86prg='
     87BEGIN {
     88  u["a"]=1
     89  u["b"]=1
     90  u["c"]=1
     91  v["d"]=1
     92  v["e"]=1
     93  v["f"]=1
     94  for (l in u) {
     95    print "outer1", l;
     96    for (l in v) {
     97      print " inner", l;
     98    }
     99    print "outer2", l;
     100  }
     101  print "end", l;
     102  l="a"
     103  exit;
     104}'
     105testing "awk nested loops with the same variable" \
     106    "awk '$prg'" \
     107    "\
     108outer1 a
     109 inner d
     110 inner e
     111 inner f
     112outer2 f
     113outer1 b
     114 inner d
     115 inner e
     116 inner f
     117outer2 f
     118outer1 c
     119 inner d
     120 inner e
     121 inner f
     122outer2 f
     123end f
     124" \
     125    "" ""
     126
     127prg='
     128BEGIN {
     129  u["a"]=1
     130  u["b"]=1
     131  u["c"]=1
     132  v["d"]=1
     133  v["e"]=1
     134  v["f"]=1
     135  for (l in u) {
     136    print "outer1", l;
     137    for (l in v) {
     138      print " inner", l;
     139      break;
     140    }
     141    print "outer2", l;
     142  }
     143  print "end", l;
     144  l="a"
     145  exit;
     146}'
     147# It's not just buggy, it enters infinite loop. Thus disabled
     148false && test x"$SKIP_KNOWN_BUGS" = x"" && testing "awk nested loops with the same variable and break" \
     149    "awk '$prg'" \
     150    "\
     151outer1 a
     152 inner d
     153outer2 d
     154outer1 b
     155 inner d
     156outer2 d
     157outer1 c
     158 inner d
     159outer2 d
     160end d
     161" \
     162    "" ""
     163
     164prg='
     165function f() {
     166  for (l in v) {
     167    print " inner", l;
     168    return;
     169  }
     170}
     171
     172BEGIN {
     173  u["a"]=1
     174  u["b"]=1
     175  u["c"]=1
     176  v["d"]=1
     177  v["e"]=1
     178  v["f"]=1
     179  for (l in u) {
     180    print "outer1", l;
     181    f();
     182    print "outer2", l;
     183  }
     184  print "end", l;
     185  l="a"
     186  exit;
     187}'
     188# It's not just buggy, it enters infinite loop. Thus disabled
     189false && test x"$SKIP_KNOWN_BUGS" = x"" && testing "awk nested loops with the same variable and return" \
     190    "awk '$prg'" \
     191    "\
     192outer1 a
     193 inner d
     194outer2 d
     195outer1 b
     196 inner d
     197outer2 d
     198outer1 c
     199 inner d
     200outer2 d
     201end d
     202" \
     203    "" ""
     204
    20205exit $FAILCOUNT
  • branches/2.2.9/mindi-busybox/testsuite/basename/basename-works

    r821 r2725  
    11test x$(basename $(pwd)) = x$(busybox basename $(pwd))
    2 
  • branches/2.2.9/mindi-busybox/testsuite/bunzip2.tests

    r1765 r2725  
    11#!/bin/sh
     2# Used by both gunzip and bunzip2 tests
     3
     4FAILCOUNT=0
    25
    36if test "${0##*/}" = "gunzip.tests"; then
     
    2023
    2124hello_gz() {
    22     # Gzipped "HELLO\n"
    23     #_________________________ vvv vvv vvv vvv - mtime
    24     echo -ne "\x1f\x8b\x08\x00\x85\x1d\xef\x45\x02\x03\xf3\x70\xf5\xf1\xf1\xe7"
    25     echo -ne "\x02\x00\x6e\xd7\xac\xfd\x06\x00\x00\x00"
     25# Gzipped "HELLO\n"
     26#_________________________ vvv vvv vvv vvv - mtime
     27$ECHO -ne "\x1f\x8b\x08\x00\x85\x1d\xef\x45\x02\x03\xf3\x70\xf5\xf1\xf1\xe7"
     28$ECHO -ne "\x02\x00\x6e\xd7\xac\xfd\x06\x00\x00\x00"
    2629}
    2730
    2831hello_bz2() {
    29     # Bzipped "HELLO\n"
    30     echo -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x5b\xb8\xe8\xa3\x00\x00"
    31     echo -ne "\x01\x44\x00\x00\x10\x02\x44\xa0\x00\x30\xcd\x00\xc3\x46\x29\x97"
    32     echo -ne "\x17\x72\x45\x38\x50\x90\x5b\xb8\xe8\xa3"
     32# Bzipped "HELLO\n"
     33$ECHO -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x5b\xb8\xe8\xa3\x00\x00"
     34$ECHO -ne "\x01\x44\x00\x00\x10\x02\x44\xa0\x00\x30\xcd\x00\xc3\x46\x29\x97"
     35$ECHO -ne "\x17\x72\x45\x38\x50\x90\x5b\xb8\xe8\xa3"
     36}
     37
     38# We had bunzip2 error on this .bz2 file (fixed in rev 22521)
     39test1_bz2()
     40{
     41$ECHO -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\xbf\x4b\x95\xe7\x00\x15"
     42$ECHO -ne "\xa1\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"
     43$ECHO -ne "\xff\xff\xff\xff\xff\xff\xff\xff\xff\xef\xff\xff\xfb\xff\xff\xff"
     44$ECHO -ne "\xff\xff\xff\xe0\x16\xe6\x37\xb7\x77\xb0\xfb\x22\xb5\x81\x40\xf5"
     45$ECHO -ne "\xa7\x69\xa4\x47\xab\x61\x4d\x6a\x3d\xef\x75\x7b\x22\xaf\x71\x9b"
     46$ECHO -ne "\xb3\x5a\x93\xbb\x78\x00\x79\xbd\xc0\x07\xae\x1b\xdb\xc5\xc6\x6b"
     47$ECHO -ne "\x7a\x7b\xd3\xd7\x38\xbb\x70\x5e\xf0\xd1\x08\x9a\x64\x26\x53\x68"
     48$ECHO -ne "\x03\x53\x4d\x32\x30\xd2\x61\x31\x13\x68\xd1\xa6\x4c\x41\x89\x84"
     49$ECHO -ne "\x31\x4f\x40\xd2\x79\x14\xf0\xa3\xda\x1a\x00\x65\x4f\x53\xd9\x28"
     50$ECHO -ne "\xd3\xf4\x4c\x13\x26\x4c\x4c\x64\x34\x9a\x6a\x7a\x99\x3c\x12\x78"
     51$ECHO -ne "\xd2\x68\xd4\xda\x6a\x79\x32\x64\xd1\xa8\x1b\x13\x01\x4f\x29\xea"
     52$ECHO -ne "\x6c\xa3\xd2\x07\x94\x06\xa6\x44\x01\x4f\x11\xa3\x4d\x13\x4d\x31"
     53$ECHO -ne "\x32\x4c\x98\x0c\x9a\xa6\xda\x29\x3d\xa4\xf1\x24\xfd\x1a\xa3\x7a"
     54$ECHO -ne "\x93\xf4\xa7\xb5\x3d\x51\xe2\x47\x94\xf2\x8f\x29\xb2\x9b\x29\xe9"
     55$ECHO -ne "\x34\x79\x4f\x46\x9e\x84\x6a\x69\xea\x69\xa7\xa9\xb5\x03\x27\xa8"
     56$ECHO -ne "\xf1\x40\x32\x7a\x13\x10\x00\x3d\x41\x90\x00\xd0\x1e\x84\x0d\x1b"
     57$ECHO -ne "\x53\x41\xa3\x21\x93\xd0\x83\x53\x10\x99\x34\x24\xf5\x32\x99\x34"
     58$ECHO -ne "\xd2\x7a\x86\xca\x6c\x28\xda\x6d\x29\xa6\x4d\x31\x0c\xd4\x7a\x69"
     59$ECHO -ne "\x1e\x93\x23\xca\x1e\x93\x4d\x03\x26\x9a\x68\x01\xa0\xc9\xa0\x1a"
     60$ECHO -ne "\x00\x34\x00\x00\x69\xa0\xf4\x80\x0d\x00\x00\x34\x06\x86\x80\x34"
     61$ECHO -ne "\x00\x00\x00\x34\x00\x48\x88\x84\x53\x68\x4f\x45\x3d\x51\xfa\x4d"
     62$ECHO -ne "\x4c\xda\x9a\x8d\xb5\x4c\xd4\xf2\x35\x1b\x51\xb4\xd3\x14\xf5\x0f"
     63$ECHO -ne "\x50\xf5\x0f\x24\xd3\x32\x23\xd4\xcd\x21\xa6\xd4\xd0\xd0\x69\xa0"
     64$ECHO -ne "\xf4\x8d\x3d\x43\xd3\x51\xea\x6c\x90\xd0\x68\xf4\x40\x00\x07\xa8"
     65$ECHO -ne "\x19\x3d\x47\xa8\x1e\xa0\xd0\x34\x00\x0d\x1a\x06\x80\x01\xe9\x00"
     66$ECHO -ne "\x64\x20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
     67$ECHO -ne "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
     68$ECHO -ne "\x00\x00\x48\x92\x1a\x46\x9a\x02\x9e\x24\xc5\x4f\xc9\x91\x4f\x29"
     69$ECHO -ne "\xec\xa9\xea\x34\xd3\xd2\x68\x68\x00\xf4\xd4\xf5\x19\x00\x34\x00"
     70$ECHO -ne "\x06\x4d\x00\xd0\x1a\x1a\x03\x20\x01\xa0\x00\xf5\x00\x0d\x06\x9b"
     71$ECHO -ne "\x50\x36\xa3\x35\x00\x03\x40\x03\x40\x68\xf5\x34\x00\x00\x00\x71"
     72$ECHO -ne "\xe4\x3c\x0c\x0f\x0f\x3d\x23\x9a\x7f\x31\x80\xae\x1a\xe1\x09\x03"
     73$ECHO -ne "\x2c\x61\x63\x18\xfc\x1a\x28\x0e\x9a\x85\xc3\x86\x96\x11\x94\x88"
     74$ECHO -ne "\x0f\x92\x11\x8a\x1a\xb4\x61\x8c\x38\x30\xf3\xa9\xfb\xbe\xcd\x8d"
     75$ECHO -ne "\xc4\xb7\x7a\x52\xad\x92\x9f\xde\xe6\x75\x74\xb7\xbb\x0b\xf5\x4c"
     76$ECHO -ne "\x97\xd9\x49\xc8\x63\x9b\xa6\xba\x95\xe8\x46\x70\x11\x71\x55\x67"
     77$ECHO -ne "\x17\xe3\xab\x91\x7d\xbe\x0d\x56\x78\x61\x98\x41\x28\x2c\xb5\xa3"
     78$ECHO -ne "\xd1\xb8\x76\x80\xc8\xad\x9b\x79\x6f\x8a\x7a\x84\x44\x35\x24\x64"
     79$ECHO -ne "\xa0\xde\x18\x80\x11\x14\xcd\xb0\xc6\xe4\x31\x49\x71\x53\xaf\x5d"
     80$ECHO -ne "\x20\xc9\x59\xdc\xa2\x53\x06\xf0\x4f\xc8\x09\x21\x92\x6b\xf2\x37"
     81$ECHO -ne "\x32\xcb\x75\x91\x75\x41\xc0\xe8\x47\x02\xb3\x8e\x0b\x17\x47\x42"
     82$ECHO -ne "\x79\x21\x3c\xec\x6c\xb0\x84\x24\x96\x45\x4a\x8e\xbb\xbe\xc2\xe0"
     83$ECHO -ne "\x16\x85\x76\x43\x26\xd5\xd0\x58\xdd\xf7\x83\x65\x44\x8f\xbe\x6c"
     84$ECHO -ne "\x72\xe1\x5b\x1a\x0e\x3a\xbb\x51\xcf\xbd\x9b\x3a\xd0\xd5\x39\x5b"
     85$ECHO -ne "\x23\x7d\xc9\x0b\x08\x0a\x23\x7b\x3a\x00\x67\xa1\x76\xa5\x19\xab"
     86$ECHO -ne "\x48\xbd\x54\xaa\x8f\xaf\xb6\xe8\xd5\x91\x0f\x3e\x4b\x3a\x8d\xc9"
     87$ECHO -ne "\x48\x02\xc2\x6b\xfc\xef\x0a\x9b\xf1\x67\xd0\x45\x48\x45\x05\xc0"
     88$ECHO -ne "\x07\xc4\x47\x96\x6e\x79\xac\x31\x49\xcf\x1f\xa8\x3b\xdc\x1d\x44"
     89$ECHO -ne "\x83\x84\x04\x49\x9f\x25\x01\x4b\x41\x80\x14\x1b\x9d\xaf\xfc\xb5"
     90$ECHO -ne "\x46\x22\xca\x96\x4e\xd5\xe3\x08\x7d\xab\x17\x0b\x65\xcd\xa7\xd4"
     91$ECHO -ne "\x5e\xd1\x8a\x27\xc8\x60\xe9\x17\xa3\xc9\xb4\x26\xf8\x58\xb2\x4a"
     92$ECHO -ne "\x15\x52\x8e\x15\x20\x72\xb2\x0e\x4f\x64\xcb\x2b\xa3\xd9\xf0\xa6"
     93$ECHO -ne "\x6f\x0b\x50\xed\x4e\xa4\x28\xe8\xe0\x05\x2d\x15\x26\x2c\x3d\x9f"
     94$ECHO -ne "\x87\xc4\xd1\xd3\x69\xe2\x1c\xea\x41\x99\xbd\x43\x59\x9f\x06\x57"
     95$ECHO -ne "\x06\xb4\x72\xe7\x45\x2c\xd2\xcf\x5f\x66\xa5\xeb\x58\x6a\xc0\x37"
     96$ECHO -ne "\x82\x81\xf6\xdc\x1c\x35\x5b\xc6\xf1\x92\x4e\xe0\xe2\xd2\x12\x82"
     97$ECHO -ne "\x92\x97\x14\xe5\xac\x49\x9f\xfd\x16\x46\xc6\xc2\xf1\x48\x86\x05"
     98$ECHO -ne "\xe6\x74\xac\x9a\x52\x49\x64\x45\x25\x43\x08\x06\x03\x63\x49\x91"
     99$ECHO -ne "\x9a\x92\x96\x5b\xe3\x2f\x11\x51\xcd\xe3\xa3\x9f\x3e\x8f\x9f\xab"
     100$ECHO -ne "\x92\xbc\x6d\x36\xa3\xd1\x71\xa4\x4a\xb6\xe1\x49\xb8\xdc\x2c\x90"
     101$ECHO -ne "\xb2\xd6\xfb\xa6\xc6\xd9\xa4\x5b\x9b\xe5\xd6\x59\xb3\x76\x37\xeb"
     102$ECHO -ne "\xa6\x3e\xf0\x4c\x98\x1d\x73\x04\x01\x06\x8c\x10\x00\x3b\x2b\x04"
     103$ECHO -ne "\x55\xf4\xfd\xec\x9d\xad\xc7\x2b\xbd\xe3\xda\x4b\xee\x28\x5d\x7a"
     104$ECHO -ne "\xbe\xa6\xb9\xe0\x81\x15\xa6\x09\x26\x52\x60\xcc\x03\x30\x66\x60"
     105$ECHO -ne "\xb9\xd0\x79\xfd\xb6\xb3\x85\xac\xd1\xc4\x4c\xbf\x80\x20\x44\x45"
     106$ECHO -ne "\x7f\x72\x27\xff\x14\xc2\xc0\x81\x02\xab\x32\x20\x43\x46\x06\x7f"
     107$ECHO -ne "\xb7\xc2\xb9\xf6\x39\x7b\x0b\x0c\xcb\xe7\x6e\x03\xe3\x20\x46\x82"
     108$ECHO -ne "\x4a\x01\x23\xbb\xb0\x0c\xb5\x6f\xf7\xfb\xfc\xf5\xf2\x3c\x8e\x7e"
     109$ECHO -ne "\xcb\x77\x6f\x7e\xc3\x71\x7c\x44\x3f\xbc\x3c\x54\xb8\x40\x27\x78"
     110$ECHO -ne "\x63\x4d\x83\x22\x6a\x0a\x00\x0e\x8d\xa5\xfa\x5e\xe5\x89\x55\xa4"
     111$ECHO -ne "\x18\x60\xc2\xa6\xd6\x17\x98\x23\xf0\x07\x44\x45\x18\xa4\x68\xd9"
     112$ECHO -ne "\xcc\x0d\xe3\x81\x06\x09\x0c\x17\xaf\x52\xad\x85\x83\x5d\x09\x30"
     113$ECHO -ne "\x0d\xa9\xb3\xe6\x45\x85\x9e\x26\x47\xab\x7d\x14\xe1\x8a\xb9\xfe"
     114$ECHO -ne "\x0a\x0f\x8d\x68\x73\x73\x5c\xa3\x0b\xb5\x29\x0c\xd8\xde\xc2\x30"
     115$ECHO -ne "\xbe\x61\xce\xbd\x4d\x3a\x03\xef\xe9\x45\xef\xeb\x07\xe8\x6b\x7d"
     116$ECHO -ne "\xd2\xf4\x92\x8f\x91\xa1\x6e\x85\x2b\x73\xaf\x01\x8a\xd2\x0f\x52"
     117$ECHO -ne "\xed\x65\x9f\xe6\x15\x47\xb2\x71\xd3\xbc\xee\xde\xff\x10\xfa\x4d"
     118$ECHO -ne "\x7f\x9d\x5a\x4b\x13\x4a\x92\xd6\x85\xb2\xef\xe1\xbb\x92\x80\x4a"
     119$ECHO -ne "\x45\x70\xa0\x4e\xe6\xf3\x39\x9a\xf6\x55\xee\x80\xc5\xa0\xff\x9d"
     120$ECHO -ne "\xb6\x66\xe6\xcc\x81\xb2\xdc\xd6\x39\xb7\x06\x2c\xd6\x3b\x27\x0e"
     121$ECHO -ne "\x5d\x01\x92\x5c\xf3\xbe\x3d\x46\x8a\x46\xa4\xd4\x03\x21\x86\x8e"
     122$ECHO -ne "\x68\x05\x3b\xf0\x66\x69\x4c\x61\xf0\x39\x1c\x9d\xe2\x74\x3b\x5f"
     123$ECHO -ne "\xd7\x87\xdc\xd3\xeb\x59\x50\xb6\x6d\x75\xc9\x5b\xdc\x4d\xb7\x29"
     124$ECHO -ne "\x0c\x64\x9c\x5c\x22\xd1\x44\xd7\x01\x68\x0a\x26\x25\x7d\x6a\x76"
     125$ECHO -ne "\x1c\x1b\xbf\x7a\xa5\xeb\x42\x8f\x2f\x93\xa3\xc1\xca\xe3\x9f\x46"
     126$ECHO -ne "\xfd\x77\x07\x27\x2d\xaf\xbb\x1a\x13\x5b\x86\x94\x00\x90\x86\xc1"
     127$ECHO -ne "\x24\x8d\x86\x22\x56\xbe\x06\xe1\xa1\x44\x4c\x36\xe2\x22\x08\x21"
     128$ECHO -ne "\xb2\x20\x6d\xb6\xdb\x6c\x6e\x26\x26\x06\xc0\x26\x09\x94\x09\x75"
     129$ECHO -ne "\x2c\x10\x4b\x44\xb0\x1b\x44\x26\x11\x58\x10\xdf\x2c\xc1\x55\x8a"
     130$ECHO -ne "\xad\xb2\xa3\x08\x67\x34\xe5\x83\x95\x0a\x08\x82\xc1\x8a\x06\xdd"
     131$ECHO -ne "\xb1\x32\x14\xa5\x27\x78\xca\xb6\xd1\x57\x5a\xc9\x2a\x06\x05\x29"
     132$ECHO -ne "\x0c\x88\x28\xd2\x86\xa5\xa9\x69\x51\x81\x46\xa1\xa4\x81\xb1\x8d"
     133$ECHO -ne "\xb1\xb0\x01\x83\x49\x4b\x15\x1a\x6e\x13\x24\x68\x54\x60\x4b\x4e"
     134$ECHO -ne "\x21\x39\x82\x1c\x8d\x02\x6d\x23\xc3\x30\x25\x83\x69\x05\x11\x05"
     135$ECHO -ne "\x4d\x24\x04\x4e\x0c\x53\x81\x25\xce\x34\x10\xd0\x04\xd4\x98\xa1"
     136$ECHO -ne "\x21\x0b\x7e\xc4\x09\x11\x30\x82\x8f\x68\xc4\x13\x48\x0a\x30\x17"
     137$ECHO -ne "\x4f\xaf\x80\x52\xd0\x36\x22\xd6\x43\x48\x15\xf6\xa1\x82\x84\xdc"
     138$ECHO -ne "\x44\x34\x07\x52\xc4\x2c\x56\xb7\xaf\xa8\x3b\xb1\x08\x4b\x6b\x6c"
     139$ECHO -ne "\x24\x05\xce\x1a\x10\xe2\x02\x31\x22\x25\xb8\x23\x65\xd0\x52\x9b"
     140$ECHO -ne "\x4a\xcb\x64\xae\xbd\xe8\xda\x30\xb4\x25\x79\xa4\xbc\xe6\xe0\xf3"
     141$ECHO -ne "\xde\x82\x23\x84\xce\xe5\xb9\xc9\xe9\xeb\x69\x78\x2f\xbc\x76\x6d"
     142$ECHO -ne "\x58\x86\xc4\xa5\x82\xfa\xad\x61\x75\x62\x0c\xb6\x9b\x00\xdf\x30"
     143$ECHO -ne "\x4a\xd6\x83\xaa\x60\x8a\x33\x7c\xd2\x12\xf5\x6c\x48\x52\xc5\x85"
     144$ECHO -ne "\xe2\x6f\x37\x73\xc7\xbc\xad\xea\x27\x27\xa8\xef\xf7\xef\x59\x17"
     145$ECHO -ne "\x65\xb6\xe1\xd8\xdd\xb5\x93\x42\xd0\x29\x5a\x18\x76\x08\xdb\xe5"
     146$ECHO -ne "\x38\xf9\xa8\xe4\xa1\xa2\xd4\x40\xa0\xfd\x45\x18\x4b\x3c\xa6\x85"
     147$ECHO -ne "\x02\x94\x8c\x88\xa9\x71\x87\x40\x96\x4d\x23\x26\xf4\x17\x44\xb8"
     148$ECHO -ne "\x78\x1e\x71\xe3\x3b\xee\xc6\x4b\x87\x88\xfd\x2b\xb5\x8b\x1b\x53"
     149$ECHO -ne "\x0b\xab\xd6\x47\x23\xa7\xcf\x78\x3a\x25\xd7\x3c\x77\xb3\x8e\x00"
     150$ECHO -ne "\x37\x83\x11\xbb\x68\xf5\xed\x0a\x1a\x4d\xa3\x90\x68\xea\xed\x49"
     151$ECHO -ne "\x8d\xb6\x80\x69\x83\x67\xcf\x65\x5a\xec\xda\x12\xe6\x5a\x47\x5a"
     152$ECHO -ne "\x3c\x63\x50\x41\x73\x40\x83\xc7\x69\xbc\x46\xa7\xb1\xed\x79\x3c"
     153$ECHO -ne "\xfe\xdf\x27\x4b\xbe\xeb\x68\xec\x83\x00\x6b\x7b\x08\x4a\x6e\x0c"
     154$ECHO -ne "\x2d\x16\xba\x1a\x96\xa1\x03\xc3\x63\x9e\x7a\xce\x8b\xe2\xae\x51"
     155$ECHO -ne "\xfb\x7d\xed\x5d\xfb\xbc\xed\x04\x6f\x1f\x21\xfc\x69\x3c\xb1\xaa"
     156$ECHO -ne "\xdf\xbf\xa0\xab\xc3\xcc\x6a\xbf\xe7\x96\xbe\x36\xb3\x23\x32\x1c"
     157$ECHO -ne "\xb5\x18\x44\x54\x51\x81\xb4\x63\xc7\x99\x84\x06\xcb\xaf\x5b\x05"
     158$ECHO -ne "\x4f\x82\xf5\x93\xb4\xc3\xcf\xdb\x65\xb8\x8d\xae\xa1\xc2\xf0\xdf"
     159$ECHO -ne "\xa7\xe5\xf3\x37\xd2\x57\x73\x0d\x89\xb8\x21\x10\x9a\x43\xe9\xe0"
     160$ECHO -ne "\x09\x1a\x40\x49\xa0\xcc\x03\x30\x46\x66\x66\x0c\x12\x48\x89\xff"
     161$ECHO -ne "\x57\xe8\xd2\x7c\x3e\x8d\x9e\x46\x7f\x97\xfc\x3b\x12\x95\xd2\xdf"
     162$ECHO -ne "\x2f\xb1\xc8\x7d\x61\xdb\xb2\x8a\xdd\xbf\xf3\x7e\x08\xcc\xad\x16"
     163$ECHO -ne "\xbe\x45\x13\xf2\x7f\x14\x5a\x79\x2e\xb5\xbb\x78\x0c\x22\xc6\x10"
     164$ECHO -ne "\x31\xce\x9c\x6b\x1d\x48\x11\x16\x4c\xdf\x98\x12\xf3\x41\x05\x81"
     165$ECHO -ne "\xd3\x24\x94\x92\x37\x51\x5d\xdc\x51\x08\xd3\x73\xba\x89\x42\x3f"
     166$ECHO -ne "\xcb\x5c\x4c\xb2\x16\xcb\x04\xcd\x86\xb2\x05\x8a\xc3\x56\xc8\x83"
     167$ECHO -ne "\x0b\x2e\x90\x31\x86\x5c\x68\xb9\x8d\xbc\xbf\xf2\xe2\xd2\xb0\x0b"
     168$ECHO -ne "\x76\x2b\x3d\x79\xba\x3f\x9b\xe3\x8e\xc4\xf5\xed\xe0\xf7\xdd\xdb"
     169$ECHO -ne "\x97\x5f\x9a\xb3\xfc\x50\xbf\x89\xf4\x7a\x38\xa3\x44\x0c\x50\x5d"
     170$ECHO -ne "\x7c\xbb\x65\x47\xf1\x33\xd6\x67\xa4\xe0\xf0\x68\x58\xe9\x6c\x40"
     171$ECHO -ne "\x02\x6b\x01\x20\x40\x84\x89\x80\x08\xcc\x52\xa0\x20\x81\x98\x16"
     172$ECHO -ne "\xa1\x90\xf8\xcd\xbe\x1e\xc7\x6b\x1d\xb5\x81\x6b\x04\xdb\x4c\x43"
     173$ECHO -ne "\x1a\xbc\xd4\x0d\xb6\x0d\xb3\x82\xc8\xc7\xf0\x13\xa8\xc5\x20\xd5"
     174$ECHO -ne "\xbd\xb4\xc0\x5a\xdd\xe8\xd1\x31\x4f\xad\x88\x63\x30\x44\x0d\xd5"
     175$ECHO -ne "\xc6\x56\x96\x28\xe2\xe8\xa8\xa9\x10\xdb\x1a\xa3\x21\xa6\xc5\xe6"
     176$ECHO -ne "\xf5\xb2\xa4\x6d\x8d\xb4\x31\xb5\xc3\xec\x3e\x8f\xd0\xeb\x35\xce"
     177$ECHO -ne "\xdb\x02\x9c\x4e\x96\xcd\x40\x14\xcd\x97\xb9\x0a\xe3\x09\xf5\x49"
     178$ECHO -ne "\xfe\x1e\xc7\xc5\x57\xb9\x96\xe9\xf5\x8a\x56\xdf\x63\xda\x8a\xea"
     179$ECHO -ne "\x41\x97\x74\x7b\xa6\x57\x99\x8d\xb0\x78\x60\xe4\x04\xd7\xe4\xbf"
     180$ECHO -ne "\x89\x71\xa5\xc8\x93\x42\x02\x53\x7a\x6a\x9d\x99\xc9\xd3\x2b\x87"
     181$ECHO -ne "\x75\xb2\x8f\x19\x86\x28\x2b\xc3\x2b\x67\x95\x72\xfb\x13\x39\xb5"
     182$ECHO -ne "\xca\x8c\x43\x88\x1c\xdc\x47\xb6\xdb\x05\xaf\x8e\x31\x54\xb8\xbd"
     183$ECHO -ne "\x98\x8b\x1d\x1f\x17\x87\x9d\x6d\x05\xca\xa8\x90\x49\x10\xbb\x67"
     184$ECHO -ne "\x2f\x92\x61\x43\xfe\xe2\xd6\x18\x6d\x2a\xc0\x14\x96\x9a\x2a\x65"
     185$ECHO -ne "\x48\x04\xc7\x2d\x76\xa6\x1f\xc5\x79\x36\x28\x69\x6f\x09\xb6\x90"
     186$ECHO -ne "\xc3\x55\x6d\x98\xf0\xbd\xce\xb1\x37\xf4\xc4\x90\x1c\xdf\x5a\x27"
     187$ECHO -ne "\xbc\x24\x38\x52\x75\xc0\xee\xc9\x05\x5a\xd7\x2b\x61\xfd\xba\xfb"
     188$ECHO -ne "\xea\x9f\x65\x39\x9f\xe7\xc9\xc3\x0e\xa9\x3a\x20\x50\x87\xb6\x08"
     189$ECHO -ne "\xc7\x80\x92\xe2\x60\x21\xd2\x2d\x51\x12\xf8\x46\x60\xbd\xf4\x65"
     190$ECHO -ne "\xd5\x7b\x1a\xa7\x79\xb7\x73\x79\xe9\x0d\x60\x34\xc3\xb0\x58\xc8"
     191$ECHO -ne "\xcc\x42\x7b\xb0\x56\x8c\xde\x66\x72\x23\xc2\x59\xe6\x9f\x83\x6a"
     192$ECHO -ne "\xef\x4a\x9e\x1e\xf3\xd5\xde\x52\x32\x14\x8a\x2d\x0b\xf0\x1e\x5b"
     193$ECHO -ne "\x7c\x4a\x34\x4d\x72\x4f\x1d\x8f\x97\xe8\xc9\xcd\xe2\xb9\x03\x36"
     194$ECHO -ne "\x9f\x89\x97\xc3\x19\x8d\x8d\x84\x41\x0c\x03\x34\x18\x41\x20\x10"
     195$ECHO -ne "\x26\x4c\x10\x18\x50\x5e\xd7\x93\x1f\x31\xf7\x54\xb3\x43\x4d\xd7"
     196$ECHO -ne "\x48\x69\xcf\x7d\x29\x2f\x7f\x8f\x11\xf2\x4c\x3f\xcd\xe7\xa2\xe1"
     197$ECHO -ne "\x09\x9a\x1a\x6c\xc6\xf3\xcf\x33\xe5\xb5\x8f\x6e\x41\xf1\x80\x07"
     198$ECHO -ne "\x4d\x7f\xbe\x1b\x37\xdd\xe3\x64\xb8\xa2\x59\x90\x2c\xa2\xbe\xf4"
     199$ECHO -ne "\x82\x2a\x80\x46\x4d\x1a\x8c\x88\x5a\x18\x30\x64\x0a\x5a\x57\x37"
     200$ECHO -ne "\x63\xe9\x6d\x8a\x6d\x5f\x88\x5e\x6d\x41\x33\x60\xfd\x45\x90\x7e"
     201$ECHO -ne "\x15\xaa\x95\x6f\xbd\xfc\xe9\x0b\x34\xe4\x3b\xa8\x41\x78\x1c\x55"
     202$ECHO -ne "\x62\x5d\xb2\x19\xdd\xeb\x69\xeb\xef\xe1\xbf\x7b\xeb\x62\x23\x8a"
     203$ECHO -ne "\x61\x14\x9f\x22\x53\x08\x6a\x31\xba\x30\x24\x1e\x54\x83\xae\xbd"
     204$ECHO -ne "\x87\xa1\x71\xf0\x3c\x7d\x94\xa1\x2c\xea\xff\x84\x76\x77\xd2\xc9"
     205$ECHO -ne "\x9f\x2f\x9c\xc7\x83\x3f\x89\x5d\x1b\x5c\xc3\x0f\xfa\xd2\x93\x32"
     206$ECHO -ne "\xfc\xed\xa6\x26\x86\x98\x1b\x05\x10\x20\x27\x4c\x95\x3f\x6d\x94"
     207$ECHO -ne "\x82\x5a\xa8\x68\x72\xae\xd7\xae\xdb\xaf\x26\xb6\x5a\x89\x30\xe7"
     208$ECHO -ne "\xd0\x5a\x7c\xc6\x66\xfa\xc3\x85\x7d\x26\xee\xb3\x34\xc2\xac\x70"
     209$ECHO -ne "\x88\x03\x15\xc6\xee\x55\x45\xde\x1c\x10\x01\xe6\x3b\x36\x26\x11"
     210$ECHO -ne "\xbe\xec\x54\xea\xd8\x20\x1d\x35\x00\xd1\x8c\x00\xe8\xf5\x21\x97"
     211$ECHO -ne "\x26\x06\x69\x87\x55\xa3\xc8\xf6\x58\xcc\x60\x12\x30\x0b\x8a\x50"
     212$ECHO -ne "\x01\x57\x30\xdc\x9a\x01\xd4\xa4\xcd\xd6\x69\x23\x0f\xc3\xb8\x85"
     213$ECHO -ne "\x12\xbb\x8e\xdf\xc5\xf1\xf3\x7c\xc9\x7a\x24\x25\x07\x9c\x86\x97"
     214$ECHO -ne "\x68\xb5\xad\x0b\xba\x2e\xe8\x6f\x7f\xa1\xed\x4f\x0c\x34\x7b\xc8"
     215$ECHO -ne "\x84\x10\x08\x2a\xcc\x19\x59\xbd\xbc\xe4\x3d\xa8\xd9\x35\xaf\x8b"
     216$ECHO -ne "\xa7\x0a\xad\x42\xe8\x02\x90\xe6\x8e\x76\x5d\x0f\x3b\x87\xb8\xe4"
     217$ECHO -ne "\x65\x4e\x5f\x0d\xe8\x26\xaf\x2a\x94\x9a\x2e\x21\x9a\x19\xb9\xa0"
     218$ECHO -ne "\x8d\x26\x78\xa1\x4b\x6e\xf6\xd7\x29\x66\xdb\x49\x09\xa0\xca\x4d"
     219$ECHO -ne "\x32\xb0\x31\xf5\x73\xe1\x67\xce\xe0\x5a\x79\x84\xa4\x22\xd4\xc9"
     220$ECHO -ne "\x43\x59\x08\xa8\xd5\x5e\x8c\x72\x61\x70\x9a\xa6\x42\xc0\x42\x22"
     221$ECHO -ne "\x2d\xd0\xbe\xb1\x49\x6e\x36\xbb\x8d\x8f\x03\x9b\xb4\xdb\x5a\x77"
     222$ECHO -ne "\x3e\x29\x91\xc6\x73\x88\xef\x8c\xf7\xde\xe2\x2b\xc2\xce\xcd\x8c"
     223$ECHO -ne "\x92\x60\x96\x29\x89\x99\x62\x99\x81\x36\x9b\x50\xc8\x70\xd6\x8d"
     224$ECHO -ne "\xaf\x6b\x30\xba\xc7\x7a\xca\x4c\x56\x66\x66\x2d\xc7\xa5\xf7\x63"
     225$ECHO -ne "\xa4\x55\x8d\xd4\x92\xdb\x2b\x6b\xb1\xa1\x96\x99\xd9\x25\xdb\x14"
     226$ECHO -ne "\x1c\x49\x04\x67\x25\x45\x0a\x50\x1d\x20\xd8\x8d\xcf\xe7\x03\x20"
     227$ECHO -ne "\xf0\xd7\xc0\xcc\x84\x20\x68\x4a\x63\x41\xa4\x6c\x32\x08\xa2\x37"
     228$ECHO -ne "\x03\x6b\x42\x12\xbe\xa9\x4e\x9b\x97\x16\x92\x48\x56\x32\xae\x2c"
     229$ECHO -ne "\x10\xc6\x31\x14\x8c\xcc\xd6\x23\x09\xf4\x64\x15\x9e\xf1\x35\x75"
     230$ECHO -ne "\x98\x3a\x0c\x12\x29\xaa\xb7\x2b\x82\xe0\xf9\xcd\x05\xed\xb8\xbe"
     231$ECHO -ne "\xb6\xf5\x6f\xcc\x41\xbc\x3a\x81\x39\x3b\x03\xe8\xb2\xab\xb6\xaa"
     232$ECHO -ne "\xed\xa8\x58\xdf\xca\x06\xba\x64\x7b\xc4\xef\xec\x23\x38\x77\xec"
     233$ECHO -ne "\xcf\xd7\xd2\xeb\x75\x3d\x26\xe2\xfa\x66\x49\x0b\x4a\xdc\xe3\x48"
     234$ECHO -ne "\x64\x33\xc4\xb3\x93\xda\xdd\x3c\x08\x83\x7d\x91\x78\xe5\x61\x57"
     235$ECHO -ne "\x67\x37\x73\xe1\x05\xbb\x96\x3e\x26\xc7\x6c\x44\xb5\xfb\x80\xb2"
     236$ECHO -ne "\xd9\xa0\x99\x6b\xbf\x74\x62\xb7\xf7\x14\xec\x07\x12\xfc\xe6\x1b"
     237$ECHO -ne "\xf1\x1d\x24\xfe\xd0\xb9\x61\x76\x56\xa0\xa5\x8c\x63\xce\x96\x5d"
     238$ECHO -ne "\x65\x4f\xae\xcc\x7d\x86\x2d\xd7\x74\x96\x67\xb7\x5c\x94\xa6\x30"
     239$ECHO -ne "\xbd\xb3\x84\x56\x93\x1e\x44\xc5\x43\x5f\x65\x9d\x1a\x92\xb1\x9a"
     240$ECHO -ne "\x4c\x46\x1f\xd2\x64\x54\xb6\x4e\x7e\xb2\x71\x75\xf6\xce\xac\xdc"
     241$ECHO -ne "\x5a\xa1\xd4\xf1\xf5\x71\x6a\x93\x50\xd2\x8b\xb2\xb1\x7f\xaf\x20"
     242$ECHO -ne "\xd2\xc9\xce\xeb\xfb\x1d\x4a\xff\x26\x89\xa2\x60\xed\x8a\xeb\xa7"
     243$ECHO -ne "\x6e\x92\xea\xb7\xef\x7a\xcc\xd9\x4b\xbb\x3e\xad\xc6\x7a\xfa\xbb"
     244$ECHO -ne "\xe0\x25\x0c\x0f\xe2\x14\xf9\x2e\x0b\x5f\xd4\xbd\x8f\x5a\xae\xb6"
     245$ECHO -ne "\xca\xc1\x5a\x89\x4c\x74\x36\xd3\x32\xab\x87\xa7\x7d\x57\x7f\x45"
     246$ECHO -ne "\x1a\x1d\x45\xcc\xc8\xf1\x36\x8c\x4d\x6e\xc9\x01\xb8\x7a\x99\xdc"
     247$ECHO -ne "\x4d\x9a\xa1\xc3\x7a\x81\xac\xa9\x40\x20\xc1\x18\xc7\x1e\x0d\xeb"
     248$ECHO -ne "\xf7\x53\x9b\xcb\xe2\x64\x4e\x17\x1c\x6a\xd7\x74\x6b\xe4\x4b\xe7"
     249$ECHO -ne "\x5f\x06\x31\xac\xe7\x5c\x64\x93\x05\x69\x13\x1a\x34\x52\x3e\x1a"
     250$ECHO -ne "\xc8\xf6\xed\xde\x5e\x79\xf4\xe2\x04\xc3\xb6\xb3\x49\xdc\x7a\xe3"
     251$ECHO -ne "\x52\x12\x1b\x32\xd9\xe2\x5c\x95\x5f\x69\x01\xde\x77\x16\x34\xf7"
     252$ECHO -ne "\xda\x43\x2c\x56\x77\x21\xcc\x86\xc4\x4a\x14\xb8\x29\x28\x0a\xf1"
     253$ECHO -ne "\x79\x8a\x9e\x94\x86\x6c\x6a\x6c\x0f\x15\xe6\xb4\x57\x92\xfc\x1f"
     254$ECHO -ne "\x6d\x98\xbf\x2f\x0b\x97\xb3\x4b\xec\xe6\xd3\xf7\x94\xe4\x2c\xf3"
     255$ECHO -ne "\x20\xfa\x42\x69\xd9\xb6\xb2\x96\x31\x09\x6b\xcb\xd2\x92\x14\x40"
     256$ECHO -ne "\x69\x75\x9a\x83\x49\x44\xed\xe0\xdd\xa3\x3d\x09\xe0\xe4\xcf\x4f"
     257$ECHO -ne "\x3b\x12\x84\xb6\x47\x2b\x1b\x7e\xc2\xac\x8d\xf6\x1c\x74\x26\xb0"
     258$ECHO -ne "\x2a\x27\xf6\x03\xe3\xf9\xe3\xbb\x4a\x1a\x6f\xa2\xf4\x10\xb0\xe5"
     259$ECHO -ne "\x70\x9a\x9b\xdf\xac\x42\x6a\xdc\x80\xc3\x80\x0c\x84\x26\xf0\x23"
     260$ECHO -ne "\xd6\x5b\xcb\x8b\x3b\xe1\x65\xfe\xba\xad\x85\xe9\x1d\x88\xa4\xf8"
     261$ECHO -ne "\x05\xb8\x58\x0b\xb1\x13\xa8\xd8\xea\xfd\x07\x68\xee\x6b\x5c\x88"
     262$ECHO -ne "\x17\x49\x89\x0e\xa5\x7a\xe6\xa0\x9c\x3a\x06\x2d\x71\x84\x2c\xd2"
     263$ECHO -ne "\x1b\x07\xfd\x43\x9b\x48\x9b\xae\x60\x54\x5d\xd3\x2b\xf1\xc0\x0d"
     264$ECHO -ne "\x49\x01\x64\x34\x36\x77\x2f\x0e\xe7\x72\x35\x48\x2f\x05\xaa\xd5"
     265$ECHO -ne "\xb4\x98\x77\xa3\x19\xa2\xf4\xb8\x11\xa7\xa6\x24\x91\xac\x1e\x09"
     266$ECHO -ne "\x38\x04\xc6\xff\x0b\x7d\x36\xc2\xcb\xb8\x9c\x7e\x7b\x49\x8c\x4e"
     267$ECHO -ne "\xbb\x37\x19\x18\x83\xc5\x23\x03\x6c\xcb\x51\x24\xe5\x42\x85\xc7"
     268$ECHO -ne "\x73\x13\x2c\xc8\x22\x28\x50\x83\xbc\x3a\x8e\x60\xac\xb1\xda\x18"
     269$ECHO -ne "\x24\x6d\x64\xd0\xa9\x65\xcd\xd6\x5a\xa7\xaa\xc6\xed\x32\x76\x7b"
     270$ECHO -ne "\x07\x90\xb4\x7b\x5d\x16\x88\x9b\xd7\x5e\x0a\xb7\xbf\xbf\xc4\x5d"
     271$ECHO -ne "\x1c\xbd\x39\xf3\x17\xae\x50\xaa\xc7\xa4\xe9\xad\xa5\xac\x04\xd9"
     272$ECHO -ne "\xa4\x27\x5f\x79\x75\x29\x10\x69\x75\xe9\x06\x53\x7c\x66\x8b\x83"
     273$ECHO -ne "\xf7\x7c\xfd\xcd\x16\xc3\x8c\x8e\x51\x6f\xcb\x68\x0a\x9c\x39\x39"
     274$ECHO -ne "\xb9\x0b\x6a\x16\xc5\x4a\x22\xc0\x31\x09\x22\x28\xa0\x65\x69\x05"
     275$ECHO -ne "\x30\x90\xc1\x18\x22\x05\x9e\xad\xa9\xc3\x54\x3e\x27\xa9\xc4\x41"
     276$ECHO -ne "\x2c\x39\x03\xd2\x8e\x3f\x91\x9a\x4c\xc8\x68\x14\xe4\x1c\xa6\x5f"
     277$ECHO -ne "\x0b\x57\x27\x09\x8a\x7d\xff\x47\x63\xa7\x5a\x29\x82\xa0\x3a\x28"
     278$ECHO -ne "\x30\x9a\x2b\xf3\x69\x63\x18\xcd\xe2\x32\x66\x3c\xd7\x79\xdd\x12"
     279$ECHO -ne "\x86\x34\xc6\x9e\x75\x05\x87\x39\x23\x72\x97\x71\x27\x64\xcd\xd9"
     280$ECHO -ne "\xa6\x2e\x61\xd2\x37\xe4\xae\xc6\xc9\x81\xc0\x2e\x9f\xc6\xf9\x7f"
     281$ECHO -ne "\xd9\x5e\xd0\xa9\x09\x97\x35\xa2\xe3\x4f\xe9\x19\x7c\xa5\xc7\x4d"
     282$ECHO -ne "\x2d\x92\xec\xd6\xef\xda\x55\xf3\xa2\x95\x17\x1b\xce\xbe\x6b\x74"
     283$ECHO -ne "\x70\xee\xdb\xa8\x42\x26\xb1\xcc\xc1\x31\x0a\x67\x92\x13\x9d\x9c"
     284$ECHO -ne "\x12\x18\xa4\x08\x4d\x4d\xfc\x7c\xeb\x59\x6b\x22\x03\xaa\x97\xc3"
     285$ECHO -ne "\x27\xa5\x21\x35\x68\xd2\x57\x54\xca\x58\x38\x82\xc5\x05\xa0\x71"
     286$ECHO -ne "\x01\x1b\xce\x57\x1e\x20\xbf\x89\x96\x2a\x31\x8e\x6e\xaf\x7f\x35"
     287$ECHO -ne "\x08\x10\xd9\x0e\x8a\x78\xb0\x48\x98\xa4\x64\x14\xa2\xcf\x23\x2d"
     288$ECHO -ne "\x0a\x7b\x84\xe5\xfd\x29\x49\x15\x3d\x75\x39\xfd\xaa\xd6\xa4\xb9"
     289$ECHO -ne "\x05\x12\x57\x31\x04\xdc\x26\x34\x16\x3f\xa7\x03\x32\x1d\x4b\x1d"
     290$ECHO -ne "\x78\xdc\x9b\x79\x96\x9a\x87\x6e\xb4\x80\xaa\x01\x19\x33\x92\xb0"
     291$ECHO -ne "\x16\xc9\x94\x9c\xe7\xa5\x63\xe6\x18\x13\xb2\x34\xbd\x98\x41\xd6"
     292$ECHO -ne "\xa4\xc8\xb9\x6e\x06\x9c\x72\xf8\x49\xab\xd5\x47\x9e\xa1\xe6\xde"
     293$ECHO -ne "\x62\xd0\xec\xaf\xbf\x1b\x8a\xaf\x63\xa0\x29\xbe\x3d\x87\xa0\x22"
     294$ECHO -ne "\xce\x46\x4e\x18\x30\x7b\x3c\x3d\x86\xe1\x9e\xb6\x59\xef\x1c\x43"
     295$ECHO -ne "\x65\xd0\x3d\x53\xd0\x41\x20\x40\xb7\x2b\xb1\xdd\x52\x2c\xdd\x68"
     296$ECHO -ne "\x44\xc1\xbe\x40\x72\x61\xd7\x25\x5d\xf5\x69\xce\x3a\x3b\x2e\x9b"
     297$ECHO -ne "\x13\x19\x79\x1a\xf0\xee\xb0\xe7\x17\x44\x45\xe8\x2d\x59\x50\xbc"
     298$ECHO -ne "\x40\x67\x66\x12\x20\xcc\x43\x8a\x9c\x1d\xde\xac\x2d\x00\x76\xb2"
     299$ECHO -ne "\x98\x8a\xa9\xde\x1c\xb6\x8b\x32\x19\x67\x1c\x67\x95\x41\x40\x60"
     300$ECHO -ne "\xf3\x13\x44\xb8\xc5\x18\xa7\xca\xdd\x8c\x5a\x8f\x72\x69\xf1\x31"
     301$ECHO -ne "\xa9\xd2\xeb\xac\x3e\x2f\xdc\xc7\xe0\x00\x78\x5d\x72\xff\x01\x95"
     302$ECHO -ne "\x86\x4a\x90\x2b\xf8\x10\xc5\xc2\xd1\x9d\x7a\xc3\x65\xb1\xfd\x2d"
     303$ECHO -ne "\x09\x0b\xcd\xdf\x03\x80\x3e\x44\x81\x65\x49\x4f\x50\x7e\x1f\x75"
     304$ECHO -ne "\x97\xc6\x05\xda\x5a\xe9\xf6\xee\xe5\x66\xcc\x5e\x17\xe2\x8c\xb2"
     305$ECHO -ne "\x06\x5b\xdd\x41\x0d\x26\xcc\x87\x0d\x37\x2e\x2d\x35\xe0\x5d\x93"
     306$ECHO -ne "\xc5\xdf\x2d\xb4\xa2\xb1\x1b\x0e\x9b\xe6\x76\xb4\x28\x69\x5c\xe9"
     307$ECHO -ne "\x4e\x27\x6f\x52\xcb\x4d\xb3\xc8\xaa\xea\xd3\x1a\x57\x00\xdf\x20"
     308$ECHO -ne "\x2d\x42\xea\x6a\x18\x0a\xac\xae\x9a\x32\x08\x23\x99\xb7\xd8\xe5"
     309$ECHO -ne "\x75\x3a\x65\x8b\x2f\xaa\x4f\x7b\x68\xd5\x66\x76\xf4\xec\x3d\xdb"
     310$ECHO -ne "\xe9\x37\xdb\x69\x40\x6d\x35\x4f\x77\xfa\x8f\x07\x60\xac\x8e\x3b"
     311$ECHO -ne "\x89\x46\x3c\x16\xd4\x4b\x6e\x71\x4f\x00\x10\x22\x14\x12\xca\x72"
     312$ECHO -ne "\xe0\x6c\x54\x2f\x0e\x32\x8c\xba\x53\xad\x51\x48\xaf\xee\xb2\xca"
     313$ECHO -ne "\x93\x4a\x46\x24\x1f\x09\x83\x69\x1c\x3f\x72\x50\x70\xff\x10\x74"
     314$ECHO -ne "\x21\xef\x4a\x08\x38\x25\x4c\x54\xb6\x34\x83\x64\x99\x22\x0f\x02"
     315$ECHO -ne "\x49\x58\x50\x74\xa3\xbe\xc2\x17\x05\xa7\x60\x55\xc4\x21\x52\x0c"
     316$ECHO -ne "\x57\xee\x0f\x64\x6a\xa9\x73\x25\xa1\x2a\x94\x1d\x00\xca\x65\xc4"
     317$ECHO -ne "\x39\xfc\x53\xa8\xe7\x4c\x07\x44\x5f\x29\x19\x98\x08\x16\x53\x1a"
     318$ECHO -ne "\xba\xee\x8e\x2e\x16\x97\x66\x5b\x7c\xb5\x63\x2d\x31\x18\xdb\x64"
     319$ECHO -ne "\xc5\x69\x15\xa9\xe8\x23\x5f\x92\xdb\x75\x60\x90\x6a\xbf\xb5\xba"
     320$ECHO -ne "\xe5\xa5\x70\xce\x26\xd0\xc1\x63\xcb\x0e\x21\x67\x1e\x8e\x20\x32"
     321$ECHO -ne "\xa1\x2d\x51\xfc\x32\xa0\xc9\xd0\x32\x91\x9a\xda\x45\x73\x2e\x97"
     322$ECHO -ne "\x09\x17\x0c\xea\xe4\x89\x94\xe8\xad\x64\xd6\x78\x02\x07\x79\x06"
     323$ECHO -ne "\xa4\x01\xce\xd0\xcc\x33\x20\x8d\xc9\x2d\x67\xdf\x85\x06\xb5\x21"
     324$ECHO -ne "\x74\x61\x49\x99\x98\xec\x28\x06\xc4\xbd\x25\xb5\x62\x2d\xb0\xba"
     325$ECHO -ne "\x5f\x4c\xc4\x33\x85\x42\x58\x11\xd4\xff\x27\x21\x3c\x57\x9e\xd9"
     326$ECHO -ne "\xc4\xb1\x6d\x8d\x4a\x8c\x8a\x80\x6c\x1e\x16\x5f\xc1\xc4\x68\x4a"
     327$ECHO -ne "\xca\x20\xb1\x40\x10\x1b\x1b\x6c\xf7\x82\xf8\xd4\x35\x29\x10\x76"
     328$ECHO -ne "\x7d\x3a\x4d\x4d\x49\x9b\x62\x65\x66\xd4\xda\x81\x24\xca\x4a\x48"
     329$ECHO -ne "\x48\x2f\x83\x48\xd1\x09\xdf\x2f\x17\x8b\xc5\x37\x89\x94\x15\xb1"
     330$ECHO -ne "\x36\x58\xcd\x80\xb4\x19\xc5\xc6\xda\xda\x16\x95\x82\x14\xc5\x19"
     331$ECHO -ne "\x61\x6e\xb5\xcc\x27\xb5\xf3\xdb\xef\x6e\x44\x37\xbf\xdc\x11\xf9"
     332$ECHO -ne "\xa0\xf2\x78\x30\x85\xc0\xc0\x07\x67\x02\x66\x56\x7c\x76\xee\x7a"
     333$ECHO -ne "\x97\x6e\x02\x5e\x08\xc0\x35\x02\x4a\x87\x39\x4c\xd6\xc4\xe0\x99"
     334$ECHO -ne "\xcd\xd9\xda\x2c\x49\x18\x5c\x22\xb6\x51\x4b\xa0\x58\x8b\x7a\x55"
     335$ECHO -ne "\x61\xdc\xa5\x21\x83\x1d\x47\x9c\x0b\xf4\x74\xba\x08\x85\xe4\xc8"
     336$ECHO -ne "\x80\xbe\x80\x46\xfc\x46\x85\x60\x64\xa6\xc4\xc1\xae\x69\x67\x0b"
     337$ECHO -ne "\x8e\xac\xa2\xc0\xf4\x6b\x6f\x7a\x9e\x00\xdd\x4d\x59\x57\x4a\x78"
     338$ECHO -ne "\x08\x64\x08\x84\x80\x50\x34\xb1\x3b\xc7\x71\x3f\x3e\x1c\x1d\x4e"
     339$ECHO -ne "\x4e\xa9\xb0\x32\x02\x10\x8e\x88\x71\xed\x87\x2c\x32\x4d\x57\x05"
     340$ECHO -ne "\xf1\xba\xa0\xf9\x61\x30\x4b\x18\x65\x6e\x38\xf9\x41\xdd\xf1\x48"
     341$ECHO -ne "\x63\x38\x50\x10\xc1\xac\x1b\xf2\x5b\xaa\x15\xf4\x89\x0e\xe9\x77"
     342$ECHO -ne "\x80\x56\x50\x18\x81\x71\xd8\xdb\x0d\x6a\xce\xd2\xb6\x76\xbd\x35"
     343$ECHO -ne "\xf0\x96\xe1\x06\x8b\x09\xab\x83\x21\x10\x10\x30\x68\x30\xad\xe0"
     344$ECHO -ne "\xc2\x62\xa2\x99\x0b\x92\x17\x19\xab\xe3\x7a\xd1\x90\xae\x5c\x2b"
     345$ECHO -ne "\x6e\xbe\x31\xec\x72\x78\x03\x7a\x85\x70\xe0\x67\x36\xe0\xdb\x63"
     346$ECHO -ne "\x6e\xed\x26\x94\xcc\x9b\x4e\xa8\x23\x57\x56\xe1\x49\x61\x31\x5e"
     347$ECHO -ne "\xc8\x2b\x81\x05\x23\x18\xdb\x68\x34\x0b\x6c\xf1\xfc\xc7\xdd\xdf"
     348$ECHO -ne "\x1a\x39\xf8\xf6\x72\xb9\x4d\xc9\x80\xbf\x23\x93\x24\x76\xdd\x6d"
     349$ECHO -ne "\x0a\x8f\x18\xe1\x81\x8f\x48\x7b\x48\x2e\xd0\xb5\xd0\xcb\xa1\x46"
     350$ECHO -ne "\xae\x1c\x26\x02\xd2\xe0\xf4\x56\x8c\x8a\x01\x97\x4e\x5f\xd1\xde"
     351$ECHO -ne "\x9a\x10\x31\x0d\x4c\xbc\x40\x06\xc5\x04\x92\x91\x88\x81\x58\x5d"
     352$ECHO -ne "\x55\x13\xab\x4f\xaa\xbd\xee\xa0\x6a\x80\xb2\x83\xd0\x46\x31\xa0"
     353$ECHO -ne "\xbc\x2c\xf9\x0d\xad\xe2\x62\xb0\xac\xa4\x91\x84\xb8\x31\x99\xb9"
     354$ECHO -ne "\x45\xb3\x47\x1e\xc2\x96\xc9\x9d\xcc\xd3\xcc\x71\xc4\xf3\x9a\x92"
     355$ECHO -ne "\x2b\xac\xc3\x8c\xe1\xdc\x40\x66\x64\xe8\x24\x35\x50\x26\x68\x0b"
     356$ECHO -ne "\x79\x96\x81\xb6\x36\xc7\xa4\x82\x0d\x32\x65\xc3\x4c\x61\x49\x32"
     357$ECHO -ne "\x09\x14\x22\xac\x37\x69\x34\xb4\x6c\xdd\xbc\x95\x54\x6b\x59\x53"
     358$ECHO -ne "\xc6\x50\x32\x09\x99\x14\x8c\x18\x74\xcc\x05\x86\x7a\x06\x48\x50"
     359$ECHO -ne "\x6e\xe0\xaa\x41\xbb\xb0\xbc\x19\xaa\x2c\x12\x9c\xcd\xa5\x1c\x6d"
     360$ECHO -ne "\x19\x0a\x62\x02\xfe\xd3\x4a\xcc\x7c\x6a\xa5\x72\x06\x35\xfb\x8d"
     361$ECHO -ne "\xf9\xab\x1e\x0b\x29\x73\x70\xb5\xe8\xf6\x54\xb6\x4c\xc8\xea\x30"
     362$ECHO -ne "\x8c\xaf\xd0\xd3\xb0\x20\x59\x80\x61\x40\xc8\x19\x99\x6d\x97\xb3"
     363$ECHO -ne "\xca\x66\x1e\x16\x3d\xa7\x74\xa6\x58\xf0\xd4\x00\x67\xdc\xbb\x8a"
     364$ECHO -ne "\x4a\x7b\x75\xa4\x6e\x89\xc4\x44\x44\x3d\x72\xb4\x52\x8a\xc0\xc2"
     365$ECHO -ne "\x11\x40\x22\x9a\x14\x09\x66\xc2\x03\xcc\x04\x86\x02\x03\xa6\x8a"
     366$ECHO -ne "\xab\x60\xe0\xe8\xdc\x2b\x5d\x0d\x73\xb5\x8f\x74\xc6\xce\xdb\xb5"
     367$ECHO -ne "\xa8\xe7\x95\x3f\x8b\xaf\xb9\x87\xbc\x63\xab\x84\xea\x93\x1e\x9d"
     368$ECHO -ne "\xb4\xe0\x83\xc8\x4a\xc9\xc7\xb9\xc7\xf2\xc6\x25\x10\x58\xc0\x21"
     369$ECHO -ne "\x64\xa1\x08\xd3\x10\x2f\x94\x40\x5a\x56\x17\xa1\x0f\xa6\xfb\xda"
     370$ECHO -ne "\xd3\x12\x42\x31\x71\x09\xa5\x2e\x8b\xd1\x69\x5c\x99\x5b\x09\x52"
     371$ECHO -ne "\xc6\x9b\x5a\x18\x0c\x06\x47\x42\x8a\xc3\xad\xef\x9a\xe9\x9d\xf6"
     372$ECHO -ne "\x2b\x81\x72\x48\x05\x20\x16\x10\xa3\xc3\xc5\xd2\x71\x0e\xca\x04"
     373$ECHO -ne "\x17\xef\xdf\x39\x64\x26\x4c\x9f\x22\xb4\x13\x1c\x3d\xe7\x55\x40"
     374$ECHO -ne "\x2e\xd1\x91\x28\xc8\x1c\x68\x69\x65\x97\x13\x75\xfe\x5b\x5c\xb1"
     375$ECHO -ne "\x9b\x5a\xf7\xd2\x02\xb2\x0b\x41\x36\x67\xe7\xa9\x10\x80\xd0\x5c"
     376$ECHO -ne "\x64\x08\x67\xda\x56\x36\x53\x4a\xa8\xca\x16\x88\xc5\x79\xdd\x3e"
     377$ECHO -ne "\x87\x71\x13\x39\xae\xfd\x2a\x93\x6e\xbb\x96\x02\x39\xea\xda\x5a"
     378$ECHO -ne "\x87\xb8\xfa\x54\x2c\x49\xa3\xa0\xbb\xa5\xc4\x10\x5c\xd2\x10\x10"
     379$ECHO -ne "\x0c\x88\xb2\xd4\xf4\x67\x6a\x93\x5b\xbb\x20\x06\xdc\x75\x7f\x3a"
     380$ECHO -ne "\x9b\xa3\xb0\x76\x98\xd9\x77\x32\x97\xa5\xdc\x64\xa4\x7b\xa5\xae"
     381$ECHO -ne "\xaa\x15\x2d\x59\x0c\xc1\x7a\x40\xd2\xc2\xbb\x45\x10\xe1\x9a\x46"
     382$ECHO -ne "\x52\x91\xe4\x24\x21\x9c\x46\xee\x05\x57\x44\x5e\x41\xad\x5a\x08"
     383$ECHO -ne "\x46\x0b\xa0\xdf\xb4\x59\x7a\xe4\x41\xa3\x0a\x59\x5e\x2b\x17\x20"
     384$ECHO -ne "\x19\x02\x6c\xe6\xe2\x48\x85\x99\xb3\xba\xfc\x9c\xe3\xcd\xf9\x31"
     385$ECHO -ne "\x5b\xf1\x86\x64\x9d\x8f\x93\x24\xa3\x29\x38\x94\xcb\x1e\x71\x87"
     386$ECHO -ne "\x54\xf2\x27\x22\x4e\x57\x26\x9a\x82\xb5\x6e\x6c\x1c\xad\x2d\x2b"
     387$ECHO -ne "\x22\x62\x0a\xd0\x23\x5d\x5a\x75\x15\xae\xa0\x26\x04\x21\x6d\x2c"
     388$ECHO -ne "\xfe\x06\xd9\x60\x61\x20\x8e\xea\xef\xba\x59\x03\x64\xda\xe5\xb2"
     389$ECHO -ne "\x30\xc0\x9c\xdc\xcf\x11\x77\xe9\x23\x54\x33\xb8\xe9\x05\xab\x4c"
     390$ECHO -ne "\x5b\xb5\x4b\x2d\x03\x0c\x51\xc5\x80\x11\x51\xac\xeb\x8d\x4c\x25"
     391$ECHO -ne "\x21\x98\x79\xb0\x38\x99\x9c\xbc\xe2\x96\xe9\x4a\xd0\xad\x56\x6a"
     392$ECHO -ne "\x65\xe1\xd4\x90\x12\x4a\xa5\x48\x06\xc6\x48\x31\xac\xaf\x21\x0a"
     393$ECHO -ne "\x56\xa2\x90\x12\xd7\x53\xa8\x48\x03\x75\x2e\x36\x14\xf4\x50\x89"
     394$ECHO -ne "\x7c\x49\x4e\x4a\x2a\xbc\x46\xc3\x2d\x16\x4e\x42\x25\x28\xd4\xf2"
     395$ECHO -ne "\x01\x47\xa3\x5a\xd1\x6a\x0c\x1c\x35\x9c\x52\xc8\x2d\xeb\xab\x15"
     396$ECHO -ne "\x2a\x99\x51\x45\x22\x9c\x77\xaf\x85\x77\xbc\x84\xb2\xf5\x99\xe9"
     397$ECHO -ne "\xd8\xd9\xc1\x90\x83\x02\xeb\xde\x8f\x91\x82\xa3\x0c\x73\x1a\x05"
     398$ECHO -ne "\x6b\x9c\x98\x28\xc5\x56\x55\xe9\xf3\x74\x24\x81\x48\xaf\x21\xb4"
     399$ECHO -ne "\x84\x2d\x6b\x45\x88\xc2\x90\xb1\x12\x12\x60\xc8\x6a\xec\x61\x33"
     400$ECHO -ne "\xa2\xc3\xb3\x58\xbf\x29\x1c\x48\x97\x7a\xea\x20\x65\x03\x7f\x22"
     401$ECHO -ne "\x45\xa5\xdd\x03\x5c\x52\xdc\x30\x85\xde\xd9\x47\x5e\xeb\x31\x65"
     402$ECHO -ne "\x0b\xf3\x13\x80\xae\x3e\x07\x52\x2a\x47\xb9\x7b\x7c\xa8\x41\x79"
     403$ECHO -ne "\x95\x2e\xcf\x3d\x60\x08\xe6\x26\x00\xd1\x82\x60\x70\x45\xa1\x4a"
     404$ECHO -ne "\x48\xa2\x18\x76\x35\xb5\xe8\x6c\x0d\x42\xd2\xba\x2c\x13\x5b\x25"
     405$ECHO -ne "\x27\xd4\x8d\x73\x7a\xf8\xd9\xfe\xf3\xd3\x81\x73\x83\xe8\x65\x60"
     406$ECHO -ne "\xf3\x5b\x18\x07\x15\x04\x60\x67\x51\xca\xab\x91\x85\xdc\x61\x3a"
     407$ECHO -ne "\xe9\x72\xc2\xd1\xa4\x68\xe2\x00\xc8\x0c\x5e\x82\xa0\x0b\x82\x16"
     408$ECHO -ne "\x40\x82\xb2\x98\x7b\x76\xf8\x5b\xb5\xf6\x8d\xfb\xc9\x36\x8c\x1e"
     409$ECHO -ne "\xa6\xc9\xb5\x95\xd8\x36\x28\x36\xee\xa9\xa2\x72\x66\x58\xf5\x90"
     410$ECHO -ne "\x02\x95\xee\xa8\xfc\x79\xfa\x6f\x66\xf6\x47\xd6\x4f\x10\x95\x86"
     411$ECHO -ne "\x54\x0d\xa0\x22\x26\x01\xbe\x63\xc5\xf1\xac\x36\x4a\xe1\x0f\x6b"
     412$ECHO -ne "\xe7\xba\x4f\x20\x17\xc0\xf9\x02\x5d\xc4\xc0\xaf\xf0\x1f\x88\x54"
     413$ECHO -ne "\xe4\x6e\xc0\xa2\xbb\x59\x6f\x82\x21\xbb\x50\x9c\x4e\x92\x83\x24"
     414$ECHO -ne "\x23\xf8\x28\x4c\x45\x79\x88\x71\x3b\x05\x79\x98\x4f\xa1\x00\x2d"
     415$ECHO -ne "\x6e\x68\x08\x46\x3b\xfb\xf0\x5c\x22\xf3\x42\x40\x7d\x5e\x67\x3f"
     416$ECHO -ne "\xdf\xff\x2e\x73\x0d\x31\xb5\xc0\x78\x4c\x0f\x85\x0f\xdb\xe6\x2b"
     417$ECHO -ne "\x86\x0f\xb3\x8f\x9d\x1a\xe6\xe2\xdb\x32\x68\xfb\x5a\x79\x0a\xf4"
     418$ECHO -ne "\x25\x28\x01\x39\xd2\x7c\x05\x7b\x0b\x18\xbb\x9c\x68\x31\x8d\xb0"
     419$ECHO -ne "\xfc\x69\x2d\x17\x2c\x33\x62\xa6\x24\x6f\x0e\xcc\xdc\xff\x7b\xdf"
     420$ECHO -ne "\x78\xd3\x88\x5c\x4a\xbd\xeb\x14\xda\xe0\x0e\xd3\xf3\x5b\xd2\xaa"
     421$ECHO -ne "\xd1\x64\x82\x42\x0c\xfe\x54\x90\x40\xeb\x75\x13\x63\x68\xb5\x52"
     422$ECHO -ne "\x0a\xd9\x3b\xc5\xd0\x14\xe1\xd2\x35\xab\x2b\x8b\xed\x21\xf3\xe1"
     423$ECHO -ne "\xcb\xed\xbc\x3e\x64\x81\x63\x5f\xaa\xf3\xb8\x05\x10\x29\xe1\x67"
     424$ECHO -ne "\xae\x0a\x16\xbb\x71\x05\x02\x46\xba\xef\x30\xda\xe7\x3a\x18\x4b"
     425$ECHO -ne "\xcb\x0e\x97\xd1\xe9\xf5\x7a\x73\xc1\x60\x91\xaf\x63\x4a\xc8\x57"
     426$ECHO -ne "\xa6\xb0\x09\xb4\x95\x98\x87\xa9\xc4\x5e\x04\xe7\xef\xbf\xe5\x8c"
     427$ECHO -ne "\x39\x8e\xe2\xdd\x9a\xc0\xbf\x37\x9c\x38\xa3\xad\xc6\x14\x86\x3f"
     428$ECHO -ne "\x7d\xc1\x9d\xb5\xbb\x68\x58\x4c\x14\x03\xf1\x36\xd4\xf2\xce\xb6"
     429$ECHO -ne "\xbc\x9d\xb3\x31\x55\x68\x0c\x5f\xd0\x30\xe2\x05\xae\x68\x4e\x11"
     430$ECHO -ne "\x5a\x28\x15\x68\x8f\xac\xa3\x1b\x89\xad\x48\x89\x08\x08\xa3\x3b"
     431$ECHO -ne "\x26\x5e\x32\x1d\x6d\x73\x2b\x20\x90\x08\x4a\x12\xb0\x1f\xf1\xa3"
     432$ECHO -ne "\x37\xf8\xec\x30\x21\x06\xf3\xbb\x3b\x46\xf9\xaa\xeb\x1a\x31\x33"
     433$ECHO -ne "\x2b\xa5\x87\x4d\x4d\xbc\x13\xda\xa9\xa0\x4c\xca\x0b\x46\xa6\x09"
     434$ECHO -ne "\x41\x73\xbb\x3f\x71\x9f\x6a\x88\x41\x02\x20\x3f\x54\x6d\x42\xc8"
     435$ECHO -ne "\x70\x6e\x64\xd0\x50\x88\x83\xc4\x33\x78\x6d\x04\xb6\x43\xed\x5e"
     436$ECHO -ne "\x72\x71\x6b\xd5\x65\x80\xcf\x66\x46\x29\x10\xdb\x79\xd1\xa9\x95"
     437$ECHO -ne "\xb7\x9d\xf4\xa9\x93\xb4\x5a\x00\xc6\xb2\xad\xbf\x7e\xaa\xe6\x8d"
     438$ECHO -ne "\x8c\xc0\x6b\xf5\xc2\xad\x00\xfb\x08\x63\xe2\xb5\xb1\xe0\x76\xac"
     439$ECHO -ne "\x0a\xe4\x72\xb5\x72\xbc\x24\x6b\xef\x62\x0f\xaa\xb9\x28\xd2\x3c"
     440$ECHO -ne "\xf6\x3e\x26\x20\x8b\xcc\xd2\x61\xcd\xd4\xc7\xed\x39\xa8\x39\x4e"
     441$ECHO -ne "\x7e\x05\x97\xeb\x29\x24\x3a\xb2\xc9\xbd\xad\xcf\xf0\x22\xbc\xdd"
     442$ECHO -ne "\xb8\x8c\x2e\x6a\xbf\x4f\x67\x2f\xfc\x07\xd0\x53\x0c\x54\x30\x35"
     443$ECHO -ne "\xf8\xf1\x76\x45\x26\x5a\x86\x11\x1e\xeb\x58\xc0\x2d\x6c\x3d\x87"
     444$ECHO -ne "\xa6\xca\x8e\x89\x4f\x75\x88\xf9\xb9\x9a\x99\x8b\x68\x22\xe2\x52"
     445$ECHO -ne "\x4d\x46\x8d\x44\x31\x2b\xc1\xb0\x19\xa7\x90\xfb\x95\xda\x19\x2f"
     446$ECHO -ne "\x6e\x0d\xe2\xc1\x85\xd0\x1f\x9b\xd3\xae\x33\xe3\x55\xa4\x77\xf2"
     447$ECHO -ne "\xf1\xd7\xa8\xf0\x57\x30\xc4\x3b\xe6\x55\x97\xf9\xe3\x89\x82\xda"
     448$ECHO -ne "\xae\x02\x45\xb1\x86\x8c\x84\x4c\xb2\xcf\x82\xdb\x4e\x04\x45\xcc"
     449$ECHO -ne "\x19\x53\x9e\x2f\x95\xa9\xc7\xa8\x08\x17\x61\xc1\x8c\x26\x7f\x9b"
     450$ECHO -ne "\x07\x8c\xe7\x77\x2d\x12\xd2\xcd\xc6\x97\xcf\x29\x3a\x1e\xac\x2b"
     451$ECHO -ne "\x69\xb9\xb4\x61\xee\xeb\xb3\xae\x60\x18\xa0\x3a\xe5\xc0\xb9\x58"
     452$ECHO -ne "\x38\x4d\x32\x57\x81\x89\x99\x29\x73\xdd\x47\x43\x2f\x1e\x39\xc6"
     453$ECHO -ne "\x06\xbf\x7f\x64\x9e\x91\xc3\x9f\x18\x1b\xba\xf8\xb5\x29\x5d\xe3"
     454$ECHO -ne "\x46\x7e\xb5\x1a\xfd\x9b\xb0\x1b\x85\x06\xc3\xc5\x09\xdb\x82\xd0"
     455$ECHO -ne "\xd1\xff\xe1\x0f\xeb\x37\x1d\xce\x65\x6d\x26\x55\xe0\x20\x00\xc4"
     456$ECHO -ne "\x36\x2f\xba\x86\x26\xc6\x7b\xa4\xe9\xb1\x41\x20\x04\x11\xeb\x24"
     457$ECHO -ne "\x3c\x72\xbf\xd3\xc5\xb3\xbd\xce\x14\x45\x2d\x50\x01\x00\x26\x39"
     458$ECHO -ne "\x3c\x85\x17\x0e\x42\x66\x8a\x1c\x94\xa8\x90\x02\xc4\x42\xd8\xd1"
     459$ECHO -ne "\xcc\x94\x7a\x25\xad\xfd\x8d\xa4\x0e\xe0\xcb\x92\x5e\x6f\x14\x2b"
     460$ECHO -ne "\x29\xbd\xc0\x81\x20\x3f\x0b\x2c\x7a\x2c\xe7\xba\x6d\x99\x14\xbe"
     461$ECHO -ne "\xd5\x39\xc8\x6f\x2e\xbd\x79\x59\x19\x75\xb6\xf5\x4f\x12\xf6\x8e"
     462$ECHO -ne "\x40\xa0\x00\x8b\x12\xe8\xfb\xb7\x27\xaa\xd3\x36\x0c\xfc\xe1\x40"
     463$ECHO -ne "\x01\xff\x8b\xb9\x22\x9c\x28\x48\x5f\xa5\xca\xf3\x80"
     464}
     465
     466pbzip_4m_zeros() {
     467$ECHO -ne "\x42\x5a\x68\x31\x31\x41\x59\x26\x53\x59\x63\xe3\xec\xa2\x00\x06"
     468$ECHO -ne "\xe4\xc1\x00\xc0\x00\x02\x00\x00\x08\x20\x00\x30\xcc\x09\xaa\x69"
     469$ECHO -ne "\x94\xa1\x36\xa9\x28\x4f\x17\x72\x45\x38\x50\x90\x63\xe3\xec\xa2"
     470$ECHO -ne "\x42\x5a\x68\x31\x31\x41\x59\x26\x53\x59\x63\xe3\xec\xa2\x00\x06"
     471$ECHO -ne "\xe4\xc1\x00\xc0\x00\x02\x00\x00\x08\x20\x00\x30\xcc\x09\xaa\x69"
     472$ECHO -ne "\x94\xa1\x36\xa9\x28\x4f\x17\x72\x45\x38\x50\x90\x63\xe3\xec\xa2"
     473$ECHO -ne "\x42\x5a\x68\x31\x31\x41\x59\x26\x53\x59\x63\xe3\xec\xa2\x00\x06"
     474$ECHO -ne "\xe4\xc1\x00\xc0\x00\x02\x00\x00\x08\x20\x00\x30\xcc\x09\xaa\x69"
     475$ECHO -ne "\x94\xa1\x36\xa9\x28\x4f\x17\x72\x45\x38\x50\x90\x63\xe3\xec\xa2"
     476$ECHO -ne "\x42\x5a\x68\x31\x31\x41\x59\x26\x53\x59\x63\xe3\xec\xa2\x00\x06"
     477$ECHO -ne "\xe4\xc1\x00\xc0\x00\x02\x00\x00\x08\x20\x00\x30\xcc\x09\xaa\x69"
     478$ECHO -ne "\x94\xa1\x36\xa9\x28\x4f\x17\x72\x45\x38\x50\x90\x63\xe3\xec\xa2"
     479$ECHO -ne "\x42\x5a\x68\x31\x31\x41\x59\x26\x53\x59\xc9\xb5\x21\xef\x00\x04"
     480$ECHO -ne "\x8d\x40\x20\xc0\x00\x01\x00\x00\x08\x20\x00\x30\xcc\x05\x29\xa6"
     481$ECHO -ne "\x4a\x11\xb1\x4a\x11\xe2\xee\x48\xa7\x0a\x12\x19\x36\xa4\x3d\xe0"
    33482}
    34483
     
    41490check() {
    42491    eval $2 >t_actual 2>&1
    43     if echo -ne "$expected" | cmp - t_actual; then
    44     echo "$1: PASS"
     492    if $ECHO -ne "$expected" | cmp - t_actual; then
     493    echo "PASS: $1"
    45494    else
    46     echo "$1: FAIL"
     495    echo "FAIL: $1"
     496    FAILCOUNT=$((FAILCOUNT + 1))
    47497    fi
    48498}
     
    76526# From old testsuite
    77527expected="HELLO\n0\n"
    78 prep; check "$unpack: stream unpack" "cat t1.$ext | ${bb}$unpack; echo $?"
     528prep; check "$unpack: stream unpack" "cat t1.$ext | ${bb}$unpack; echo \$?"
    79529
    80530expected="ok\n"
     
    83533)
    84534rm -rf testdir
     535
     536# This test is only for bunzip2
     537if test "${0##*/}" = "bunzip2.tests"; then
     538    if test1_bz2 | ${bb}bunzip2 >/dev/null \
     539    && test "`test1_bz2 | ${bb}bunzip2 | md5sum`" = "61bbeee4be9c6f110a71447f584fda7b  -"
     540    then
     541    echo "PASS: $unpack: test_bz2 file"
     542    else
     543    echo "FAIL: $unpack: test_bz2 file"
     544    FAILCOUNT=$((FAILCOUNT + 1))
     545    fi
     546
     547    if pbzip_4m_zeros | ${bb}bunzip2 >/dev/null \
     548    && test "`pbzip_4m_zeros | ${bb}bunzip2 | md5sum`" = "b5cfa9d6c8febd618f91ac2843d50a1c  -"
     549    then
     550    echo "PASS: $unpack: pbzip_4m_zeros file"
     551    else
     552    echo "FAIL: $unpack: pbzip_4m_zeros file"
     553    FAILCOUNT=$((FAILCOUNT + 1))
     554    fi
     555fi
     556
     557exit $((FAILCOUNT <= 255 ? FAILCOUNT : 255))
  • branches/2.2.9/mindi-busybox/testsuite/busybox.tests

    r821 r2725  
    33# Tests for busybox applet itself.
    44# Copyright 2005 by Rob Landley <rob@landley.net>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    7 . testing.sh
     7. ./testing.sh
    88
    9 HELPDUMP=`busybox`
     9HELPDUMP=`true | busybox 2>&1 | cat`
    1010
    1111# We need to test under calling the binary under other names.
    1212
    13 
    14 testing "busybox --help busybox" "busybox --help busybox" "$HELPDUMP\n\n" "" ""
     13optional FEATURE_VERBOSE_USAGE
     14testing "busybox --help busybox" "true | busybox --help busybox 2>&1 | cat" "$HELPDUMP\n\n" "" ""
     15SKIP=
    1516
    1617ln -s `which busybox` busybox-suffix
     
    2728    testing "$i --help" "$i --help 2>&1" "$HELPDUMP\n\n" "" ""
    2829
    29     optional CAT
     30    optional FEATURE_VERBOSE_USAGE CAT
    3031    testing "" "$i cat" "moo" "" "moo"
    31     testing "$i --help cat" "$i --help cat 2>&1 | grep prints" \
    32         "Concatenates FILE(s) and prints them to stdout.\n" "" ""
    33     optional ""
     32    testing "$i --help cat" "$i --help cat 2>&1 | grep print" \
     33        "Concatenate FILEs and print them to stdout\n" "" ""
     34    SKIP=
    3435
    3536    testing "$i --help unknown" "$i --help unknown 2>&1" \
  • branches/2.2.9/mindi-busybox/testsuite/bzcat.tests

    r1765 r2725  
    11#!/bin/sh
     2
     3FAILCOUNT=0
    24
    35ext=bz2
     
    1315    # Gzipped "HELLO\n"
    1416    #_________________________ vvv vvv vvv vvv - mtime
    15     echo -ne "\x1f\x8b\x08\x00\x85\x1d\xef\x45\x02\x03\xf3\x70\xf5\xf1\xf1\xe7"
    16     echo -ne "\x02\x00\x6e\xd7\xac\xfd\x06\x00\x00\x00"
     17    $ECHO -ne "\x1f\x8b\x08\x00\x85\x1d\xef\x45\x02\x03\xf3\x70\xf5\xf1\xf1\xe7"
     18    $ECHO -ne "\x02\x00\x6e\xd7\xac\xfd\x06\x00\x00\x00"
    1719}
    1820
    1921hello_bz2() {
    2022    # Bzipped "HELLO\n"
    21     echo -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x5b\xb8\xe8\xa3\x00\x00"
    22     echo -ne "\x01\x44\x00\x00\x10\x02\x44\xa0\x00\x30\xcd\x00\xc3\x46\x29\x97"
    23     echo -ne "\x17\x72\x45\x38\x50\x90\x5b\xb8\xe8\xa3"
     23    $ECHO -ne "\x42\x5a\x68\x39\x31\x41\x59\x26\x53\x59\x5b\xb8\xe8\xa3\x00\x00"
     24    $ECHO -ne "\x01\x44\x00\x00\x10\x02\x44\xa0\x00\x30\xcd\x00\xc3\x46\x29\x97"
     25    $ECHO -ne "\x17\x72\x45\x38\x50\x90\x5b\xb8\xe8\xa3"
    2426}
    2527
     
    3234check() {
    3335    eval $2 >t_actual 2>&1
    34     if echo -ne "$expected" | cmp - t_actual; then
    35     echo "$1: PASS"
     36    if $ECHO -ne "$expected" | cmp - t_actual; then
     37    echo "PASS: $1"
    3638    else
    37     echo "$1: FAIL"
     39    echo "FAIL: $1"
     40    FAILCOUNT=$((FAILCOUNT + 1))
    3841    fi
    3942}
     
    4851)
    4952rm -rf testdir
     53
     54exit $((FAILCOUNT <= 255 ? FAILCOUNT : 255))
  • branches/2.2.9/mindi-busybox/testsuite/cp/cp-a-files-to-dir

    r821 r2725  
    33ln -s file2 link1
    44mkdir dir1
    5 touch --date='Sat Jan 29 21:24:08 PST 2000' dir1/file3
     5# why???
     6#TZ=UTC0 touch -d '2000-01-30 05:24:08' dir1/file3
    67mkdir there
    78busybox cp -a file1 file2 link1 dir1 there
  • branches/2.2.9/mindi-busybox/testsuite/cp/cp-does-not-copy-unreadable-file

    r821 r2725  
    22chmod a-r foo
    33set +e
    4 busybox cp foo bar
     4if test `id -u` = 0; then
     5    # run as user with nonzero uid
     6    setuidgid 1 busybox cp foo bar
     7else
     8    busybox cp foo bar
     9fi
    510set -e
    611test ! -f bar
  • branches/2.2.9/mindi-busybox/testsuite/cut/cut-cuts-a-field

    r821 r2725  
    1 test $(echo -e "f1\tf2\tf3" | busybox cut -f 2) = f2
     1test $($ECHO -e "f1\tf2\tf3" | busybox cut -f 2) = f2
  • branches/2.2.9/mindi-busybox/testsuite/date/date-R-works

    r821 r2725  
    1 test x"`date -R`" = x"`busybox date -R`"
     1dt1="`date -R`"
     2# Wait for the start of next second
     3dt="$dt1"
     4while test x"$dt" = x"$dt1"; do
     5    dt="`date -R`"
     6done
    27
     8test x"$dt" = x"`busybox date -R`"
  • branches/2.2.9/mindi-busybox/testsuite/date/date-format-works

    r821 r2725  
    1 test x"`date +%d/%m/%y`" = x"`busybox date +%d/%m/%y`"
     1# TODO: gnu date doesn't accept '2000.11.22-11:22:33' format,
     2# but accepts '2000-11-22 11:22:33'. We must follow.
     3test x"01/01/99" = x"`busybox date -d 1999.01.01-11:22:33 '+%d/%m/%y'`"
     4test x"22/11/00" = x"`busybox date -d 2000.11.22-11:22:33 '+%d/%m/%y'`"
  • branches/2.2.9/mindi-busybox/testsuite/date/date-u-works

    r821 r2725  
    1 test x"`date -u`" = x"`busybox date -u`"
    2 
     1test x"Sat Jan  1 11:22:33 UTC 2000" = x"`TZ=CET-1CEST-2 busybox date -u -d 2000.01.01-11:22:33`"
  • branches/2.2.9/mindi-busybox/testsuite/date/date-works

    r821 r2725  
    1 test x"`date`" = x"`busybox date`"
     1dt=`busybox date`
     2# Expected format: Fri Apr 25 03:47:55 CEST 2008
     3dt=`echo "$dt" | sed 's/^[^ ][^ ][^ ] [^ ][^ ][^ ] [ 0123][0-9] [012][0-9]:[0-5][0-9]:[0-6][0-9] [A-Z][A-Z]* [012][0-9][0-9][0-9]$/OK/'`
     4test x"$dt" = x"OK"
    25
     6dt=`busybox date -d 1:2`
     7dt=`echo "$dt" | cut -b12-19`
     8test x"$dt" = x"01:02:00"
     9
     10dt=`busybox date -d 1:2:3`
     11dt=`echo "$dt" | cut -b12-19`
     12test x"$dt" = x"01:02:03"
     13
     14dt=`busybox date -d 1.2-3:4`
     15dt=`echo "$dt" | cut -b5-19`
     16test x"$dt" = x"Jan  2 03:04:00"
     17
     18dt=`busybox date -d 1.2-3:4:5`
     19dt=`echo "$dt" | cut -b5-19`
     20test x"$dt" = x"Jan  2 03:04:05"
     21
     22dt=`busybox date -d 1999.1.2-3:4`
     23dt=`echo "$dt" | cut -b1-19`
     24test x"$dt" = x"Sat Jan  2 03:04:00"
     25
     26dt=`busybox date -d 1999.1.2-3:4:5`
     27dt=`echo "$dt" | cut -b1-19`
     28test x"$dt" = x"Sat Jan  2 03:04:05"
     29
     30dt=`busybox date -d '1999-1-2 3:4:5'`
     31dt=`echo "$dt" | cut -b1-19`
     32test x"$dt" = x"Sat Jan  2 03:04:05"
     33
     34dt=`busybox date -d 01231133`
     35dt=`echo "$dt" | cut -b5-19`
     36test x"$dt" = x"Jan 23 11:33:00"
     37
     38dt=`busybox date -d 200001231133`
     39dt=`echo "$dt" | cut -b1-19`
     40test x"$dt" = x"Sun Jan 23 11:33:00"
     41
     42dt=`busybox date -d 200001231133.30`
     43dt=`echo "$dt" | cut -b1-19`
     44test x"$dt" = x"Sun Jan 23 11:33:30"
  • branches/2.2.9/mindi-busybox/testsuite/dirname/dirname-works

    r821 r2725  
    11test x$(dirname $(pwd)) = x$(busybox dirname $(pwd))
    2 
  • branches/2.2.9/mindi-busybox/testsuite/du/du-h-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
    2 du -h "$d" > logfile.gnu
    3 busybox du -h "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     1# FEATURE: CONFIG_FEATURE_HUMAN_READABLE
     2
     3dd if=/dev/zero of=file bs=1M count=1 2>/dev/null
     4test x"`busybox du -h file`" = x"1.0M   file"
  • branches/2.2.9/mindi-busybox/testsuite/du/du-k-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
    2 du -k "$d" > logfile.gnu
    3 busybox du -k "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     1mkdir du.testdir
     2cd du.testdir
     3dd if=/dev/zero of=file1 bs=1k count=64 2>/dev/null
     4dd if=/dev/zero of=file2 bs=1k count=16 2>/dev/null
     5test x"`busybox du -k .`" = x"80    ." \
     6  -o x"`busybox du -k .`" = x"88    ."
  • branches/2.2.9/mindi-busybox/testsuite/du/du-l-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
    2 du -l "$d" > logfile.gnu
    3 busybox du -l "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     1# FEATURE: CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
     2
     3mkdir du.testdir
     4cd du.testdir
     5dd if=/dev/zero of=file1 bs=1k count=64 2>/dev/null
     6ln file1 file1.1
     7dd if=/dev/zero of=file2 bs=1k count=16 2>/dev/null
     8test x"`busybox du -l .`" = x"144   ." \
     9  -o x"`busybox du -l .`" = x"148   ." \
     10  -o x"`busybox du -l .`" = x"152   ." \
     11  -o x"`busybox du -l .`" = x"156   ."
  • branches/2.2.9/mindi-busybox/testsuite/du/du-m-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
    2 du -m "$d" > logfile.gnu
    3 busybox du -m "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     1# FEATURE: CONFIG_FEATURE_HUMAN_READABLE
     2
     3dd if=/dev/zero of=file bs=1M count=1 2>/dev/null
     4test x"`busybox du -m .`" = x"1 ."
  • branches/2.2.9/mindi-busybox/testsuite/du/du-s-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
     1# FEATURE: CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
     2
     3d=/bin
    24du -s "$d" > logfile.gnu
    35busybox du -s "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     6cmp logfile.gnu logfile.bb && exit 0
     7diff -u logfile.gnu logfile.bb
     8exit 1
  • branches/2.2.9/mindi-busybox/testsuite/du/du-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
     1# FEATURE: CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K
     2
     3d=/bin
    24du "$d" > logfile.gnu
    35busybox du "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     6cmp logfile.gnu logfile.bb && exit 0
     7diff -u logfile.gnu logfile.bb
     8exit 1
  • branches/2.2.9/mindi-busybox/testsuite/echo/echo-does-not-print-newline

    r821 r2725  
     1# FEATURE: CONFIG_FEATURE_FANCY_ECHO
     2
    13test `busybox echo -n word | wc -c` -eq 4
  • branches/2.2.9/mindi-busybox/testsuite/expand/expand-works-like-GNU

    r1765 r2725  
     1# FEATURE: CONFIG_UNEXPAND
     2
    13rm -f foo bar
    2 echo -e "\ty" | expand -t 3 ../../busybox > foo
    3 echo -e "\ty" | busybox unexpand -t 3 ../../busybox > bar
     4$ECHO -e "\ty" | expand -t 3 ../../busybox > foo
     5$ECHO -e "\ty" | busybox unexpand -t 3 ../../busybox > bar
    46set +e
    57test ! -f foo -a -f bar
     
    911fi
    1012rm -f foo bar
    11 echo -e "\ty\tx" | expand -it 3 ../../busybox > foo
    12 echo -e "\ty\tx" | busybox unexpand -it 3 ../../busybox > bar
     13$ECHO -e "\ty\tx" | expand -it 3 ../../busybox > foo
     14$ECHO -e "\ty\tx" | busybox unexpand -it 3 ../../busybox > bar
    1315set +e
    1416test ! -f foo -a -f bar
  • branches/2.2.9/mindi-busybox/testsuite/expr/expr-works

    r821 r2725  
    5757    exit 1;
    5858fi;
    59 
  • branches/2.2.9/mindi-busybox/testsuite/find/find-supports-minus-xdev

    r821 r2725  
     1# FEATURE: CONFIG_FEATURE_FIND_XDEV
     2
    13busybox find . -xdev >/dev/null 2>&1
  • branches/2.2.9/mindi-busybox/testsuite/grep.tests

    r1765 r2725  
    11#!/bin/sh
    22
    3 # grep tests.
    43# Copyright 2005 by Rob Landley <rob@landley.net>
    5 # Licensed under GPL v2, see file LICENSE for details.
     4# Licensed under GPLv2, see file LICENSE in this source tree.
    65
    76# AUDIT:
    87
    9 . testing.sh
     8. ./testing.sh
    109
    1110# testing "test name" "options" "expected result" "file input" "stdin"
     
    2827    "one\ntwo\nthree\nthree\nthree\n" ""
    2928
    30 testing "grep (no newline at EOL)" "grep bug" "bug" "bug" ""
     29# GNU grep 2.5.3 outputs a new line character after the located string
     30# even if there is no new line character in the input
     31testing "grep (no newline at EOL)" "grep bug input" "bug\n" "bug" ""
    3132
    32 # Note that this assumes actual is empty.
    33 testing "grep input actual (two files)" "grep two input actual 2> /dev/null" \
     33>empty
     34testing "grep two files" "grep two input empty 2>/dev/null" \
    3435    "input:two\n" "one\ntwo\nthree\nthree\nthree\n" ""
     36rm empty
    3537
    3638testing "grep - infile (specify stdin and file)" "grep two - input" \
     
    6163    "(standard input):domatch\n2\n" "" "nomatch\ndomatch\nend\n"
    6264
    63 # This doesn't match GNU behaviour (Binary file input matches)
    64 # acts like GNU grep -a
    65 testing "grep handles binary files" "grep foo input" "foo\n" "\0foo\n\n" ""
    66 # This doesn't match GNU behaviour (Binary file (standard input) matches)
    67 # acts like GNU grep -a
    68 testing "grep handles binary stdin" "grep foo" "foo\n" "" "\0foo\n\n"
     65optional EXTRA_COMPAT
     66testing "grep handles NUL in files" "grep -a foo input" "\0foo\n" "\0foo\n\n" ""
     67testing "grep handles NUL on stdin" "grep -a foo" "\0foo\n" "" "\0foo\n\n"
    6968
    7069testing "grep matches NUL" "grep . input > /dev/null 2>&1 ; echo \$?" \
    7170    "0\n" "\0\n" ""
     71SKIP=
    7272
    7373# -e regex
    7474testing "grep handles multiple regexps" "grep -e one -e two input ; echo \$?" \
    7575    "one\ntwo\n0\n" "one\ntwo\n" ""
     76testing "grep -F handles multiple expessions" "grep -F -e one -e two input ; echo \$?" \
     77    "one\ntwo\n0\n" "one\ntwo\n" ""
     78testing "grep -F handles -i" "grep -F -i foo input ; echo \$?" \
     79    "FOO\n0\n" "FOO\n" ""
     80
     81# -f file/-
     82testing "grep can read regexps from stdin" "grep -f - input ; echo \$?" \
     83    "two\nthree\n0\n" "tw\ntwo\nthree\n" "tw.\nthr\n"
    7684
    7785optional FEATURE_GREP_EGREP_ALIAS
     
    8189testing "egrep is not case insensitive" \
    8290    "egrep foo ; [ \$? -ne 0 ] && echo yes" "yes\n" "" "FOO\n"
     91testing "grep -E -o prints all matches" \
     92    "grep -E -o '([[:xdigit:]]{2}[:-]){5}[[:xdigit:]]{2}'" \
     93    "00:19:3E:00:AA:5E\n00:1D:60:3D:3A:FB\n00:22:43:49:FB:AA\n" \
     94    "" "00:19:3E:00:AA:5E 00:1D:60:3D:3A:FB 00:22:43:49:FB:AA\n"
     95SKIP=
     96
     97testing "grep -o does not loop forever" \
     98    'grep -o "[^/]*$"' \
     99    "test\n" \
     100    "" "/var/test\n"
     101testing "grep -o does not loop forever on zero-length match" \
     102    'grep -o "" | head -n1' \
     103    "" \
     104    "" "test\n"
    83105
    84106exit $FAILCOUNT
  • branches/2.2.9/mindi-busybox/testsuite/gunzip.tests

    r1765 r2725  
    11#!/bin/sh
    22
    3 . bunzip2.tests
     3. ./bunzip2.tests
  • branches/2.2.9/mindi-busybox/testsuite/hostid/hostid-works

    r821 r2725  
    1 test x$(hostid) = x$(busybox hostid)
    2 
     1h=x$(busybox hostid)
     2# Is $h a sequence of hex numbers?
     3x="${h//[0123456789abcdef]/x}"
     4x="${x//xxx/x}"
     5x="${x//xxx/x}"
     6x="${x//xxx/x}"
     7x="${x//xx/x}"
     8test x"$x" = x"x"
  • branches/2.2.9/mindi-busybox/testsuite/hostname/hostname-d-works

    r821 r2725  
    1 test x$(hostname -d) = x$(busybox hostname -d)
    2 
     1f=$(busybox hostname -f).
     2d=$(busybox hostname -d)
     3test x"${f#*.}" = x"$d${d:+.}"
  • branches/2.2.9/mindi-busybox/testsuite/hostname/hostname-i-works

    r821 r2725  
     1test x"$SKIP_KNOWN_BUGS" != x"" && exit
     2
     3# Observed bug:
     4# # ./busybox hostname -i
     5# 127.0.0.1
     6# # hostname -i
     7# 127.0.0.1 10.0.0.2 10.32.10.45
     8
    19test x$(hostname -i) = x$(busybox hostname -i)
    2 
  • branches/2.2.9/mindi-busybox/testsuite/ln/ln-preserves-soft-links

    r821 r2725  
    77fi
    88exit 1;
    9 
  • branches/2.2.9/mindi-busybox/testsuite/ls/ls-1-works

    r821 r2725  
     1# FEATURE: CONFIG_FEATURE_LS_SORTFILES
     2
    13[ -n "$d" ] || d=..
    2 ls -1 "$d" > logfile.gnu
    3 busybox ls -1 "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     4LC_ALL=C ls -1 "$d" > logfile.gnu
     5LC_ALL=C busybox ls -1 "$d" > logfile.bb
     6diff -ubw logfile.gnu logfile.bb
  • branches/2.2.9/mindi-busybox/testsuite/ls/ls-h-works

    r821 r2725  
     1# FEATURE: CONFIG_FEATURE_LS_SORTFILES CONFIG_FEATURE_HUMAN_READABLE
     2
    13[ -n "$d" ] || d=..
    2 ls -h "$d" > logfile.gnu
    3 busybox ls -h "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     4LC_ALL=C ls -h "$d" > logfile.gnu
     5LC_ALL=C busybox ls -h "$d" > logfile.bb
     6diff -ubw logfile.gnu logfile.bb
  • branches/2.2.9/mindi-busybox/testsuite/ls/ls-l-works

    r821 r2725  
     1test x"$SKIP_KNOWN_BUGS" != x"" && exit
     2
     3# busybox does not emit "total NNN" line
     4
    15[ -n "$d" ] || d=..
    26LC_ALL=C ls -l "$d" > logfile.gnu
    3 busybox ls -l "$d" > logfile.bb
    4 diff -w logfile.gnu logfile.bb
     7LC_ALL=C busybox ls -l "$d" > logfile.bb
     8diff -ubw logfile.gnu logfile.bb
  • branches/2.2.9/mindi-busybox/testsuite/ls/ls-s-works

    r821 r2725  
     1test x"$SKIP_KNOWN_BUGS" != x"" && exit
     2
     3# busybox does not emit "total NNN" line
     4
    15[ -n "$d" ] || d=..
    26LC_ALL=C ls -1s "$d" > logfile.gnu
    3 busybox ls -1s "$d" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     7LC_ALL=C busybox ls -1s "$d" > logfile.bb
     8diff -ubw logfile.gnu logfile.bb
  • branches/2.2.9/mindi-busybox/testsuite/md5sum/md5sum-verifies-non-binary-file

    r821 r2725  
     1# FEATURE: CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
     2
    13touch foo
    24md5sum foo > bar
  • branches/2.2.9/mindi-busybox/testsuite/mount.testroot

    r1765 r2725  
    33# SUSv3 compliant mount and umount tests.
    44# Copyright 2005 by Rob Landley <rob@landley.net>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    77if [ -z "$TESTDIR" ]
  • branches/2.2.9/mindi-busybox/testsuite/mv/mv-files-to-dir

    r821 r2725  
    33ln -s file2 link1
    44mkdir dir1
    5 touch --date='Sat Jan 29 21:24:08 PST 2000' dir1/file3
     5TZ=UTC0 touch -d '2000-01-30 05:24:08' dir1/file3
    66mkdir there
    77busybox mv file1 file2 link1 dir1 there
  • branches/2.2.9/mindi-busybox/testsuite/mv/mv-refuses-mv-dir-to-subdir

    r821 r2725  
    33ln -s file2 link1
    44mkdir dir1
    5 touch --date='Sat Jan 29 21:24:08 PST 2000' dir1/file3
     5TZ=UTC0 touch -d '2000-01-30 05:24:08' dir1/file3
    66mkdir there
    77busybox mv file1 file2 link1 dir1 there
  • branches/2.2.9/mindi-busybox/testsuite/pidof.tests

    r1765 r2725  
    22
    33# pidof tests.
    4 # Copyright 2005 by Bernhard Fischer
    5 # Licensed under GPL v2, see file LICENSE for details.
     4# Copyright 2005 by Bernhard Reutner-Fischer
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    77# AUDIT:
    88
    9 . testing.sh
     9. ./testing.sh
    1010
    1111# testing "test name" "options" "expected result" "file input" "stdin"
     
    2121optional FEATURE_PIDOF_SINGLE
    2222testing "pidof -s" "pidof -s init" "1\n" "" ""
     23SKIP=
    2324
    24 optional FEATURE_PIDOF_OMIT
    25 testing "pidof -o %PPID" "pidof -o %PPID pidof.tests | grep -o -w $$" "" "" ""
     25optional FEATURE_PIDOF_OMIT FEATURE_PIDOF_SINGLE
     26# This test fails now because process name matching logic has changed,
     27# but new logic is not "wrong" either... see find_pid_by_name.c comments
     28#testing "pidof -o %PPID" "pidof -o %PPID pidof.tests | grep -o -w $$" "" "" ""
    2629testing "pidof -o %PPID NOP" "pidof -o %PPID -s init" "1\n" "" ""
    2730testing "pidof -o init" "pidof -o 1 init | grep -o -w 1" "" "" ""
     31SKIP=
    2832
    2933exit $FAILCOUNT
  • branches/2.2.9/mindi-busybox/testsuite/readlink.tests

    r1765 r2725  
    33# Readlink tests.
    44# Copyright 2006 by Natanael Copa <n@tanael.org>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    7 . testing.sh
     7. ./testing.sh
    88
    99TESTDIR=readlink_testdir
     
    3131rm -r "$TESTLINK" "$TESTDIR"
    3232
     33exit $((FAILCOUNT <= 255 ? FAILCOUNT : 255))
  • branches/2.2.9/mindi-busybox/testsuite/runtest

    r1765 r2725  
    11#!/bin/sh
     2# Usage:
     3# runtest [applet1] [applet2...]
    24
    3 [ -n "$srcdir" ] || srcdir=$(pwd)
    4 [ -n "$bindir" ] || bindir=$(dirname $(pwd))
    5 PATH=$bindir:$PATH
     5. ./testing.sh
    66
    7 # Run old-style test.
     7total_failed=0
    88
     9# Run one old-style test.
     10# Tests are stored in applet/testcase shell scripts.
     11# They are run using "sh -x -e applet/testcase".
     12# Option -e will make testcase stop on the first failed command.
    913run_applet_testcase()
    1014{
    11     local applet=$1
    12     local testcase=$2
     15    local applet="$1"
     16    local testcase="$2"
    1317
    1418    local status=0
    15     local RES=
     19    local uc_applet=$(echo "$applet" | tr a-z A-Z)
     20    local testname="$testcase"
    1621
    17     local uc_applet=$(echo $applet | tr a-z A-Z)
    18     local testname=$(basename $testcase)
    19 
    20     if grep -q "^# CONFIG_${uc_applet} is not set$" $bindir/.config; then
    21         echo UNTESTED: $testname
     22    testname="${testname##*/}" # take basename
     23    if grep "^# CONFIG_$uc_applet is not set$" "$bindir/.config" >/dev/null; then
     24        echo "UNTESTED: $testname"
    2225        return 0
    2326    fi
    2427
    25     if grep -q "^# FEATURE: " $testcase; then
    26         local feature=`sed -ne 's/^# FEATURE: //p' $testcase`
     28    if grep "^# FEATURE: " "$testcase" >/dev/null; then
     29        local feature=$(sed -ne 's/^# FEATURE: //p' "$testcase")
    2730
    28         if grep -q "^# ${feature} is not set$" $bindir/.config; then
    29             echo UNTESTED: $testname
    30             return 0
    31         fi
     31        for f in $feature; do
     32            if grep "^# $f is not set$" "$bindir/.config" >/dev/null; then
     33                echo "UNTESTED: $testname"
     34                return 0
     35            fi
     36        done
    3237    fi
    3338
    34     rm -rf tmp
    35     mkdir -p tmp
    36     pushd tmp > /dev/null
     39    rm -rf ".tmpdir.$applet"
     40    mkdir -p ".tmpdir.$applet"
     41    cd ".tmpdir.$applet" || return 1
    3742
    38     d=$srcdir sh -x -e $testcase >.logfile.txt 2>&1 || status=$?
    39 
    40     if [ $status -ne 0 ] ; then
    41         echo FAIL: $testname
    42         if [ $verbose -gt 0 ]; then
    43             cat .logfile.txt
     43#   echo "Running testcase $testcase"
     44    d="$tsdir" \
     45        sh -x -e "$testcase" >"$testname.stdout.txt" 2>&1 || status=$?
     46    if [ $status -ne 0 ]; then
     47        echo "FAIL: $testname"
     48        if [ x"$VERBOSE" != x ]; then
     49            cat "$testname.stdout.txt"
    4450        fi
    45         status=$?
    4651    else
    47         echo PASS: $testname
    48         rm -f .logfile.txt
    49         status=$?
     52        echo "PASS: $testname"
    5053    fi
    5154
    52     popd > /dev/null
    53     rm -rf tmp
     55    cd ..
     56    rm -rf ".tmpdir.$applet"
    5457
    5558    return $status
    5659}
    5760
    58 run_applet_tests()
     61# Run all old-style tests for given applet
     62run_oldstyle_applet_tests()
    5963{
    60     local applet=$1
    61 
     64    local applet="$1"
    6265    local status=0
    6366
    64     for testcase in $srcdir/$applet/*; do
    65         if [ "$testcase" = "$srcdir/$applet/CVS" ]; then
    66             continue
    67         fi
    68 
    69         if run_applet_testcase $applet $testcase; then
    70             :
    71         else
    72             status=1
    73         fi
     67    for testcase in "$tsdir/$applet"/*; do
     68        # switch on basename of $testcase
     69        case "${testcase##*/}" in
     70            .*)     continue ;;    # .svn, .git etc
     71            *~)     continue ;;    # backup files
     72            "CVS")  continue ;;
     73            \#*)    continue ;;    # CVS merge residues
     74            *.mine) continue ;;    # svn-produced junk
     75            *.r[0-9]*) continue ;; # svn-produced junk
     76        esac
     77        run_applet_testcase "$applet" "$testcase" || status=1
     78        total_failed=$((total_failed + status))
    7479    done
    75 
    7680    return $status
    7781}
    7882
    7983
    80 status=0
    81 verbose=0
     84
     85lcwd=$(pwd)
     86[ x"$tsdir" != x"" ] || tsdir="$lcwd"
     87[ x"$bindir" != x"" ] || bindir="${lcwd%/*}" # one directory up from $lcwd
     88PATH="$bindir:$PATH"
     89export bindir   # some tests need to look at $bindir/.config
     90
     91if [ x"$VERBOSE" = x ]; then
     92    export VERBOSE=
     93fi
    8294
    8395if [ x"$1" = x"-v" ]; then
    84     verbose=1
    85     export VERBOSE=$verbose
     96    export VERBOSE=1
    8697    shift
    8798fi
    8899
     100implemented=$(
     101    printf "busybox " # always implemented
     102    "$bindir/busybox" 2>&1 |
     103    while read line; do
     104        if [ x"$line" = x"Currently defined functions:" ]; then
     105            xargs | sed 's/,//g'
     106            break
     107        fi
     108    done
     109    )
     110
     111applets="$implemented"
    89112if [ $# -ne 0 ]; then
    90     applets=$(cd $srcdir ; for i in $@; do ls ${i}* ; done)
    91 else
    92     applets=$(ls $srcdir)
     113    applets="$@"
    93114fi
    94115
     
    96117
    97118LINKSDIR="$bindir/runtest-tempdir-links"
    98 implemented=$($bindir/busybox 2>&1 |
    99     while read line
    100     do
    101         if test x"$line" = x"Currently defined functions:"
    102         then
    103             xargs | sed 's/,//g'
    104             break
    105         fi
    106     done
    107     )
     119
     120# Comment this line out if you have put a different binary in $LINKSDIR
     121# (say, a "standard" tool's binary) in order to run tests against it:
    108122rm -rf "$LINKSDIR" 2>/dev/null
    109 mkdir "$LINKSDIR"
    110 for i in $implemented
    111 do
    112     ln -s $bindir/busybox "$LINKSDIR"/$i
     123
     124mkdir "$LINKSDIR" 2>/dev/null
     125for i in $implemented; do
     126    # Note: if $LINKSDIR/applet exists, we do not overwrite it.
     127    # Useful if one wants to run tests against a standard utility,
     128    # not an applet.
     129    ln -s "$bindir/busybox" "$LINKSDIR/$i" 2>/dev/null
    113130done
    114131
    115132# Set up option flags so tests can be selective.
     133export OPTIONFLAGS=:$(
     134    sed -nr 's/^CONFIG_//p' "$bindir/.config" |
     135    sed 's/=.*//' | xargs | sed 's/ /:/g'
     136    ):
    116137
    117 configfile=${bindir:-../../}/.config
    118 export OPTIONFLAGS=:$(echo $(sed -nr 's/^CONFIG_(.*)=.*/\1/p' $configfile) | sed 's/ /:/g')
    119 
     138status=0
    120139for applet in $applets; do
    121     if [ "$applet" = "links" ]; then continue; fi
    122     if [ "$applet" != "CVS" -a -d "$srcdir/$applet" ]; then
    123         if run_applet_tests $applet; then
    124             :
    125         else
    126             status=1
    127         fi
     140    # Any old-style tests for this applet?
     141    if [ -d "$tsdir/$applet" ]; then
     142        run_oldstyle_applet_tests "$applet" || status=1
    128143    fi
    129144
    130145    # Is this a new-style test?
    131     applet=$(echo "$applet" | sed -n 's/\.tests$//p')
    132     if [ ${#applet} -ne 0 ]
    133     then
    134         if [ ! -h "$LINKSDIR/$applet" ] && [ "${applet:0:4}" != "all_" ]
    135         then
    136             echo "SKIPPED: $applet (not built)"
    137             continue
     146    if [ -f "$applet.tests" ]; then
     147        if [ ! -e "$LINKSDIR/$applet" ]; then
     148            # (avoiding bash'ism "${applet:0:4}")
     149            if ! echo "$applet" | grep "^all_" >/dev/null; then
     150                echo "SKIPPED: $applet (not built)"
     151                continue
     152            fi
    138153        fi
    139         if PATH="$LINKSDIR":$srcdir:$bindir:$PATH \
    140                 "${srcdir:-.}/$applet".tests
    141         then
    142             :
    143         else
    144             status=1
    145         fi
     154#       echo "Running test $tsdir/$applet.tests"
     155        PATH="$LINKSDIR:$tsdir:$bindir:$PATH" \
     156            "$tsdir/$applet.tests"
     157        rc=$?
     158        total_failed=$((total_failed + rc))
     159        test $rc -ne 0 && status=1
    146160    fi
     161done
    147162
    148 done
    149 rm -rf "$LINKSDIR"
     163# Leaving the dir makes it somewhat easier to run failed test by hand
     164#rm -rf "$LINKSDIR"
     165
     166if [ $status -ne 0 ] && [ x"$VERBOSE" = x ]; then
     167    echo "$total_failed failure(s) detected; running with -v (verbose) will give more info"
     168fi
    150169exit $status
  • branches/2.2.9/mindi-busybox/testsuite/sed.tests

    r1765 r2725  
    33# SUSv3 compliant sed tests.
    44# Copyright 2005 by Rob Landley <rob@landley.net>
    5 # Licensed under GPL v2, see file LICENSE for details.
    6 
    7 . testing.sh
     5# Licensed under GPLv2, see file LICENSE in this source tree.
     6
     7. ./testing.sh
    88
    99# testing "description" "arguments" "result" "infile" "stdin"
     
    5252    "" "foo\n"
    5353testing "sed -n s//p" "sed -ne s/abc/def/p" "def\n" "" "abc\n"
     54test x"$SKIP_KNOWN_BUGS" = x"" && {
    5455testing "sed s//g (exhaustive)" "sed -e 's/[[:space:]]*/,/g'" ",1,2,3,4,5,\n" \
    5556    "" "12345\n"
     57}
    5658testing "sed s arbitrary delimiter" "sed -e 's woo boing '" "boing\n" "" "woo\n"
    5759testing "sed s chains" "sed -e s/foo/bar/ -e s/bar/baz/" "baz\n" "" "foo\n"
    5860testing "sed s chains2" "sed -e s/foo/bar/ -e s/baz/nee/" "bar\n" "" "foo\n"
    5961testing "sed s [delimiter]" "sed -e 's@[@]@@'" "onetwo" "" "one@two"
     62testing "sed s with \\t (GNU ext)" "sed 's/\t/ /'" "one two" "" "one\ttwo"
    6063
    6164# branch
     
    7275    "1\n1\n1\nb\nb\nc\nc\n" "" "a\nb\nc\n"
    7376
     77test x"$SKIP_KNOWN_BUGS" = x"" && {
    7478# Normal sed end-of-script doesn't print "c" because n flushed the pattern
    7579# space.  If n hits EOF, pattern space is empty when script ends.
     
    7781testing "sed n (flushes pattern space, terminates early)" "sed -e 'n;p'" \
    7882    "a\nb\nb\nc\n" "" "a\nb\nc\n"
    79 # N does _not_ flush pattern space, therefore c is still in there @ script end.
    80 testing "sed N (doesn't flush pattern space when terminating)" "sed -e 'N;p'" \
     83}
     84# non-GNU sed: N does _not_ flush pattern space, therefore c is eaten @ script end
     85# GNU sed: N flushes pattern space, therefore c is printed too @ script end
     86testing "sed N (flushes pattern space (GNU behavior))" "sed -e 'N;p'" \
    8187    "a\nb\na\nb\nc\n" "" "a\nb\nc\n"
     88
     89testing "sed N test2" "sed ':a;N;s/\n/ /;ta'" \
     90    "a b c\n" "" "a\nb\nc\n"
     91
     92testing "sed N test3" "sed 'N;s/\n/ /'" \
     93    "a b\nc\n" "" "a\nb\nc\n"
     94
    8295testing "sed address match newline" 'sed "/b/N;/b\\nc/i woo"' \
    8396    "a\nwoo\nb\nc\nd\n" "" "a\nb\nc\nd\n"
     
    99112
    100113# Multiple files, with varying newlines and NUL bytes
     114test x"$SKIP_KNOWN_BUGS" = x"" && {
    101115testing "sed embedded NUL" "sed -e 's/woo/bang/'" "\0bang\0woo\0" "" \
    102116    "\0woo\0woo\0"
     117}
    103118testing "sed embedded NUL g" "sed -e 's/woo/bang/g'" "bang\0bang\0" "" \
    104119    "woo\0woo\0"
    105 echo -e "/woo/a he\0llo" > sed.commands
     120test x"$SKIP_KNOWN_BUGS" = x"" && {
     121$ECHO -e "/woo/a he\0llo" > sed.commands
    106122testing "sed NUL in command" "sed -f sed.commands" "woo\nhe\0llo\n" "" "woo"
    107123rm sed.commands
     124}
    108125
    109126# sed has funky behavior with newlines at the end of file.  Test lots of
     
    120137testing "sed cat plus empty file" "sed -e 's/nohit//' input -" "one\ntwo" \
    121138    "one\ntwo" ""
     139test x"$SKIP_KNOWN_BUGS" = x"" && {
    122140testing "sed append autoinserts newline" "sed -e '/woot/a woo' -" \
    123141    "woot\nwoo\n" "" "woot"
     142}
    124143testing "sed insert doesn't autoinsert newline" "sed -e '/woot/i woo' -" \
    125144    "woo\nwoot" "" "woot"
     
    137156    "sed -ne 's/woo/bang/p' input -" "a bang\nb bang" "a woo\nb woo" \
    138157    "c no\nd no"
     158test x"$SKIP_KNOWN_BUGS" = x"" && {
    139159testing "sed clusternewline" \
    140160    "sed -e '/one/a 111' -e '/two/i 222' -e p input -" \
    141161    "one\none\n111\n222\ntwo\ntwo" "one" "two"
     162}
    142163testing "sed subst+write" \
    143     "sed -e 's/i/z/' -e 'woutputw' input -; echo -n X; cat outputw" \
     164    "sed -e 's/i/z/' -e 'woutputw' input -; $ECHO -n X; cat outputw" \
    144165    "thzngy\nagaznXthzngy\nagazn" "thingy" "again"
    145166rm outputw
     
    163184#00000020  6f 75 72                                          |our|
    164185# which looks buggy to me.
    165 echo -ne "three\nfour" > input2
     186$ECHO -ne "three\nfour" > input2
    166187testing "sed match EOF inline" \
    167188    "sed -e '"'$i ook'"' -i input input2 && cat input input2" \
     
    175196
    176197# Jump to nonexistent label
    177 testing "sed nonexistent label" "sed -e 'b walrus' 2> /dev/null || echo yes" \
     198test x"$SKIP_KNOWN_BUGS" = x"" && {
     199# Incompatibility: illegal jump is not detected if input is ""
     200# (that is, no lines at all). GNU sed 4.1.5 complains even in this case
     201testing "sed nonexistent label" "sed -e 'b walrus' 2>/dev/null || echo yes" \
    178202    "yes\n" "" ""
     203}
    179204
    180205testing "sed backref from empty s uses range regex" \
     
    201226#   "" "12345"
    202227
     228# testing "description" "arguments" "result" "infile" "stdin"
     229
     230testing "sed n command must reset 'substituted' bit" \
     231    "sed 's/1/x/;T;n;: next;s/3/y/;t quit;n;b next;: quit;q'" \
     232    "0\nx\n2\ny\n" "" "0\n1\n2\n3\n"
     233
     234testing "sed d does not break n,m matching" \
     235    "sed -n '1d;1,3p'" \
     236    "second\nthird\n" "" "first\nsecond\nthird\nfourth\n"
     237
     238testing "sed d does not break n,regex matching" \
     239    "sed -n '1d;1,/hir/p'" \
     240    "second\nthird\n" "" "first\nsecond\nthird\nfourth\n"
     241
     242testing "sed d does not break n,regex matching #2" \
     243    "sed -n '1,5d;1,/hir/p'" \
     244    "second2\nthird2\n" "" \
     245    "first\nsecond\nthird\nfourth\n""first2\nsecond2\nthird2\nfourth2\n"
     246
     247testing "sed 2d;2,1p (gnu compat)" \
     248    "sed -n '2d;2,1p'" \
     249    "third\n" "" \
     250    "first\nsecond\nthird\nfourth\n"
     251
     252# Regex means: "match / at BOL or nothing, then one or more not-slashes".
     253# The bug was that second slash in /usr/lib was treated as "at BOL" too.
     254testing "sed beginning (^) matches only once" \
     255    "sed 's,\(^/\|\)[^/][^/]*,>\0<,g'" \
     256    ">/usr</>lib<\n" "" \
     257    "/usr/lib\n"
     258
     259testing "sed c" \
     260    "sed 'crepl'" \
     261    "repl\nrepl\n" "" \
     262    "first\nsecond\n"
     263
     264testing "sed nested {}s" \
     265    "sed '/asd/ { p; /s/ { s/s/c/ }; p; q }'" \
     266    "qwe\nasd\nacd\nacd\n" "" \
     267    "qwe\nasd\nzxc\n"
     268
     269testing "sed a cmd ended by double backslash" \
     270    "sed -e '/| one /a \\
     271    | three \\\\' -e '/| one-/a \\
     272    | three-* \\\\'" \
     273'   | one \\
     274    | three \\
     275    | two \\
     276' '' \
     277'   | one \\
     278    | two \\
     279'
     280
     281# first three lines are deleted; 4th line is matched and printed by "2,3" and by "4" ranges
     282testing "sed with N skipping lines past ranges on next cmds" \
     283    "sed -n '1{N;N;d};1p;2,3p;3p;4p'" \
     284    "4\n4\n" "" "1\n2\n3\n4\n"
     285
     286testing "sed -i with address modifies all files, not only first" \
     287    "cp input input2; sed -i -e '1s/foo/bar/' input input2 && cat input input2; rm input2" \
     288    "bar\nbar\n" "foo\n" ""
     289
     290
     291# testing "description" "arguments" "result" "infile" "stdin"
     292
    203293exit $FAILCOUNT
  • branches/2.2.9/mindi-busybox/testsuite/seq.tests

    r821 r2725  
    33# SUSv3 compliant seq tests.
    44# Copyright 2006 by Rob Landley <rob@landley.net>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    77# AUDIT: Full SUSv3 coverage (except internationalization).
    88
    9 . testing.sh
     9. ./testing.sh
    1010
    1111# testing "test name" "options" "expected result" "file input" "stdin"
     
    3030testing "seq count wrong way #1" "seq 4 -2 8" "" "" ""
    3131testing "seq count wrong way #2" "seq 8 2 4" "" "" ""
    32 testing "seq count by .3" "seq 3 .3 4" "3\n3.3\n3.6\n3.9\n" "" ""
    33 testing "seq count by -.9" "seq .7 -.9 -2.2" "0.7\n-0.2\n-1.1\n-2\n" "" ""
    34 testing "seq count by zero" "seq 4 0 8 | head -n 10" "" "" ""
     32testing "seq count by .3" "seq 3 .3 4" "3.0\n3.3\n3.6\n3.9\n" "" ""
     33testing "seq count by .30" "seq 3 .30 4" "3.00\n3.30\n3.60\n3.90\n" "" ""
     34testing "seq count by .30 to 4.000" "seq 3 .30 4.000" "3.00\n3.30\n3.60\n3.90\n" "" ""
     35testing "seq count by -.9" "seq .7 -.9 -2.2" "0.7\n-0.2\n-1.1\n-2.0\n" "" ""
     36testing "seq count by zero" "seq 4 0 8 | head -n 10" "4\n4\n4\n4\n4\n4\n4\n4\n4\n4\n" "" ""
     37
     38testing "seq one argument with padding" "seq -w 003" "001\n002\n003\n" "" ""
     39testing "seq two arguments with padding" "seq -w 005 7" "005\n006\n007\n" "" ""
     40testing "seq count down by 3 with padding" "seq -w 8 -3 04" "08\n05\n" "" ""
     41# Looks like a bug in coreutils 6.10: it uses width one less than needed
     42# These tests contain the expected "fixed" output
     43testing "seq count by .3 with padding 1" "seq -w 09 .3 11" "09.0\n09.3\n09.6\n09.9\n10.2\n10.5\n10.8\n" "" ""
     44testing "seq count by .3 with padding 2" "seq -w 03 .3 0004" "0003.0\n0003.3\n0003.6\n0003.9\n" "" ""
    3545
    3646exit $FAILCOUNT
  • branches/2.2.9/mindi-busybox/testsuite/sort.tests

    r1765 r2725  
    1 #!/bin/bash
     1#!/bin/sh
    22
    33# SUSv3 compliant sort tests.
    44# Copyright 2005 by Rob Landley <rob@landley.net>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    7 . testing.sh
     7. ./testing.sh
    88
    99# The basic tests.  These should work even with the small busybox.
     
    2828"
    2929
     30# testing "description" "command(s)" "result" "infile" "stdin"
     31
    3032# Sorting with keys
    3133
     
    4648" "$data" ""
    4749
    48 # Busybox is definitely doing this one wrong just now.  FIXME
    49 
     50test x"$SKIP_KNOWN_BUGS" = x"" && {
     51# Busybox is definitely doing these wrong.  FIXME
    5052testing "sort key range with numeric option and global reverse" \
    5153"sort -k2,3n -r input" \
     
    5759" "$data" ""
    5860
    59 #
    60 
    6161testing "sort key range with multiple options" "sort -k2,3rn input" \
    6262"7  3   42  soup
     
    6666egg 1   2   papyrus
    6767" "$data" ""
     68}
    6869
    6970testing "sort key range with two -k options" "sort -k 2,2n -k 1,1r input" "\
     
    108109" ""
    109110
     111testing "sort -z outputs NUL terminated lines" "sort -z input" "\
     112one\0three\0two\0\
     113" "\
     114one\0two\0three\0\
     115" ""
     116
    110117testing "sort key doesn't strip leading blanks, disables fallback global sort" \
    111118"sort -n -k2 -t ' '" " a \n 1 \n 2 \n" "" " 2 \n 1 \n a \n"
    112119
     120testing "sort file in place" \
     121"sort -o input input && cat input" "\
     122111
     123222
     124" "\
     125222
     126111
     127" ""
     128
     129# testing "description" "command(s)" "result" "infile" "stdin"
     130
    113131exit $FAILCOUNT
  • branches/2.2.9/mindi-busybox/testsuite/sum.tests

    r1765 r2725  
    22
    33# unit test for sum.
    4 # Copyright 2007 by Bernhard Fischer
    5 # Licensed under GPL v2 or later, see file LICENSE for details.
     4# Copyright 2007 by Bernhard Reutner-Fischer
     5# Licensed under GPLv2 or later, see file LICENSE in this source tree.
    66
    77# AUDIT: Unit tests for sum
    88
    9 . testing.sh
     9. ./testing.sh
    1010
    1111# testing "test name" "options" "expected result" "file input" "stdin"
  • branches/2.2.9/mindi-busybox/testsuite/tail/tail-n-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
    2 tail -n 2 "$d/README" > logfile.gnu
    3 busybox tail -n 2 "$d/README" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     1$ECHO -ne "abc\ndef\n123\n" >input
     2$ECHO -ne "def\n123\n" >logfile.ok
     3busybox tail -n 2 input > logfile.bb
     4cmp logfile.ok logfile.bb
  • branches/2.2.9/mindi-busybox/testsuite/tail/tail-works

    r821 r2725  
    1 [ -n "$d" ] || d=..
    2 tail -n 2 "$d/README" > logfile.gnu
    3 busybox tail -n 2 "$d/README" > logfile.bb
    4 cmp logfile.gnu logfile.bb
     1# FEATURE: CONFIG_INCLUDE_SUSv2
     2
     3$ECHO -ne "abc\ndef\n123\n" >input
     4$ECHO -ne "def\n123\n" >logfile.ok
     5busybox tail -2 input > logfile.bb
     6cmp logfile.ok logfile.bb
  • branches/2.2.9/mindi-busybox/testsuite/tar/tar-extracts-multiple-files

    r821 r2725  
    11touch foo bar
    2 busybox tar cf foo.tar foo bar
     2tar cf foo.tar foo bar
    33rm foo bar
    44busybox tar -xf foo.tar
  • branches/2.2.9/mindi-busybox/testsuite/tar/tar-handles-cz-options

    r821 r2725  
    11# FEATURE: CONFIG_FEATURE_TAR_CREATE
    2 # FEATURE: CONFIG_FEATURE_TAR_GZIP
     2# FEATURE: CONFIG_FEATURE_SEAMLESS_GZ
    33touch foo
    44busybox tar czf foo.tar.gz foo
  • branches/2.2.9/mindi-busybox/testsuite/taskset.tests

    r1765 r2725  
    11#!/bin/sh
     2# Copyright 2006 Bernhard Reutner-Fischer
     3# Licensed under GPLv2 or later, see file LICENSE in this source tree.
    24
    3 # Copyright 2006 Bernhard Fischer
    4 # Licensed under GPL v2 or later, see file LICENSE for details.
    5 
    6 . testing.sh
     5. ./testing.sh
    76a="taskset"
    87
    98# testing "test name"              "opts" "expected result" "file inp" "stdin"
    10 testing "taskset (get from pid 1)" "$a -p1 >/dev/null;echo \$?" "0\n" "" ""
    11 testing "taskset (invalid pid)"    "$a -p0 >/dev/null 2>&1;echo \$?" "1\n" "" ""
     9testing "taskset (get from pid 1)" "$a -p 1 >/dev/null;echo \$?" "0\n" "" ""
     10testing "taskset (invalid pid)"    "$a -p 0 >/dev/null 2>&1;echo \$?" "1\n" "" ""
    1211testing "taskset (set_aff, needs CAP_SYS_NICE)" \
    13                                    "$a 0x1 $SHELL -c $a\ -p\ \$$\|grep\ \"current\ affinity\ mask:\ 1\" >/dev/null;echo \$?" \
    14                                                 "0\n" "" ""
     12    "$a 0x1 $SHELL -c '$a -p \$\$ | grep \"current affinity mask: 1\" >/dev/null'; echo \$?" \
     13    "0\n" "" ""
    1514
    1615unset a
  • branches/2.2.9/mindi-busybox/testsuite/testing.sh

    r1765 r2725  
    1 # Simple test harness infrastructurei for BusyBox
     1# Simple test harness infrastructure for BusyBox
    22#
    33# Copyright 2005 by Rob Landley
     
    55# License is GPLv2, see LICENSE in the busybox tarball for full license text.
    66
    7 # This file defines two functions, "testing" and "optionflag"
     7# This file defines two functions, "testing" and "optional"
     8# and a couple more...
    89
    910# The following environment variables may be set to enable optional behavior
     
    1112#    VERBOSE - Print the diff -u of each failed test case.
    1213#    DEBUG - Enable command tracing.
    13 #    SKIP - do not perform this test (this is set by "optionflag")
     14#    SKIP - do not perform this test (this is set by "optional")
    1415#
    1516# The "testing" function takes five arguments:
    16 #   $1) Description to display when running command
    17 #   $2) Command line arguments to command
    18 #   $3) Expected result (on stdout)
    19 #   $4) Data written to file "input"
    20 #   $5) Data written to stdin
     17#   $1) Test description
     18#   $2) Command(s) to run. May have pipes, redirects, etc
     19#   $3) Expected result on stdout
     20#   $4) Data to be written to file "input"
     21#   $5) Data to be written to stdin
    2122#
    22 # The exit value of testing is the exit value of the command it ran.
     23# The exit value of testing is the exit value of $2 it ran.
    2324#
    2425# The environment variable "FAILCOUNT" contains a cumulative total of the
     
    2627
    2728# The "optional" function is used to skip certain tests, ala:
    28 #   optionflag CONFIG_FEATURE_THINGY
     29#   optional FEATURE_THINGY
    2930#
    3031# The "optional" function checks the environment variable "OPTIONFLAGS",
     
    3637export SKIP=
    3738
     39# Helper for helpers. Oh my...
     40
     41test x"$ECHO" != x"" || {
     42    ECHO="echo"
     43    test x"`echo -ne`" = x"" || {
     44        # Compile and use a replacement 'echo' which understands -e -n
     45        ECHO="$PWD/echo-ne"
     46        test -x "$ECHO" || {
     47            gcc -Os -o "$ECHO" ../scripts/echo.c || exit 1
     48        }
     49    }
     50    export ECHO
     51}
     52
    3853# Helper functions
    3954
    4055optional()
    4156{
    42   option=`echo "$OPTIONFLAGS" | egrep "(^|:)$1(:|\$)"`
    43   # Not set?
    44   if [ -z "$1" ] || [ -z "$OPTIONFLAGS" ] || [ ${#option} -ne 0 ]
    45   then
    46     SKIP=""
    47     return
    48   fi
    49   SKIP=1
     57    SKIP=
     58    while test "$1"; do
     59        if test x"${OPTIONFLAGS/*:$1:*/y}" != x"y"; then
     60            SKIP=1
     61            return
     62        fi
     63        shift
     64    done
    5065}
    5166
     
    5570{
    5671  NAME="$1"
    57   [ -z "$1" ] && NAME=$2
     72  [ -n "$1" ] || NAME="$2"
    5873
    5974  if [ $# -ne 5 ]
    6075  then
    61     echo "Test $NAME has the wrong number of arguments ($# $*)" >&2
    62     exit
     76    echo "Test $NAME has wrong number of arguments: $# (must be 5)" >&2
     77    exit 1
    6378  fi
    6479
    65   [ -n "$DEBUG" ] && set -x
     80  [ -z "$DEBUG" ] || set -x
    6681
    6782  if [ -n "$SKIP" ]
     
    7186  fi
    7287
    73   echo -ne "$3" > expected
    74   echo -ne "$4" > input
    75   [ -z "$VERBOSE" ] || echo "echo '$5' | $2"
    76   echo -ne "$5" | eval "$2" > actual
     88  $ECHO -ne "$3" > expected
     89  $ECHO -ne "$4" > input
     90  [ -z "$VERBOSE" ] || echo "echo -ne '$4' >input"
     91  [ -z "$VERBOSE" ] || echo "echo -ne '$5' | $2"
     92  $ECHO -ne "$5" | eval "$2" > actual
    7793  RETVAL=$?
    7894
    79   cmp expected actual >/dev/null 2>/dev/null
    80   if [ $? -ne 0 ]
     95  if cmp expected actual >/dev/null 2>/dev/null
    8196  then
    82     FAILCOUNT=$[$FAILCOUNT+1]
     97    echo "PASS: $NAME"
     98  else
     99    FAILCOUNT=$(($FAILCOUNT + 1))
    83100    echo "FAIL: $NAME"
    84     [ -n "$VERBOSE" ] && diff -u expected actual
    85   else
    86     echo "PASS: $NAME"
     101    [ -z "$VERBOSE" ] || diff -u expected actual
    87102  fi
    88103  rm -f input expected actual
    89104
    90   [ -n "$DEBUG" ] && set +x
     105  [ -z "$DEBUG" ] || set +x
    91106
    92107  return $RETVAL
     
    102117  [ $# -lt 2 ] && return
    103118
    104   echo -n .
     119  $ECHO -n .
    105120
    106121  dest=$1
     
    108123  for i in "$@"
    109124  do
    110     [ "${i:0:1}" == "/" ] || i=$(which $i)
     125    #bashism: [ "${i:0:1}" == "/" ] || i=$(which $i)
     126    i=$(which $i) # no-op for /bin/prog
    111127    [ -f "$dest/$i" ] && continue
    112128    if [ -e "$i" ]
     
    136152  # Copy utilities from command line arguments
    137153
    138   echo -n "Setup chroot"
     154  $ECHO -n "Setup chroot"
    139155  mkchroot tmpdir4chroot $*
    140156  echo
     
    152168  rmdir tmpdir4chroot
    153169}
    154 
  • branches/2.2.9/mindi-busybox/testsuite/tr/tr-d-alnum-works

    r1765 r2725  
     1# FEATURE: CONFIG_FEATURE_TR_CLASSES
     2
    13echo testing | tr -d '[[:alnum:]]' > logfile.gnu
    24echo testing | busybox tr -d '[[:alnum:]]' > logfile.bb
  • branches/2.2.9/mindi-busybox/testsuite/tr/tr-rejects-wrong-class

    r1765 r2725  
     1# FEATURE: CONFIG_FEATURE_TR_CLASSES
     2
    13echo t12esting | tr -d '[[:alpha:]]' > logfile.gnu
    24echo t12esting | tr -d '[:alpha:]'  >> logfile.gnu
  • branches/2.2.9/mindi-busybox/testsuite/tr/tr-works

    r1765 r2725  
     1# FEATURE: CONFIG_FEATURE_TR_CLASSES
     2
    13run_tr ()
    24{
    3     echo -n "echo '$1' | tr '$2' '$3': "
     5    $ECHO -n "echo '$1' | tr '$2' '$3': "
    46    echo "$1" | $bb tr "$2" "$3"
    57    echo
  • branches/2.2.9/mindi-busybox/testsuite/uniq.tests

    r1765 r2725  
    33# SUSv3 compliant uniq tests.
    44# Copyright 2005 by Rob Landley <rob@landley.net>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    77# AUDIT: Full SUSv3 coverage (except internationalization).
    88
    9 . testing.sh
     9. ./testing.sh
    1010
    1111# testing "test name" "options" "expected result" "file input" "stdin"
     
    4242#-d dups only
    4343#-u
     44#-w max chars
    4445
    4546# Test various command line options
     
    5051    "1 one\n2 two\n3 three\n" "" \
    5152    "one\ntwo\ntwo\nthree\nthree\nthree\n"
    52 testing "uniq -d (dups only) " "uniq -d" "two\nthree\n" "" \
     53testing "uniq -d (dups only)" "uniq -d" "two\nthree\n" "" \
    5354    "one\ntwo\ntwo\nthree\nthree\nthree\n"
    5455
     
    6162aa  bb  cc9
    6263"
     64testing "uniq -w (compare max characters)" "uniq -w 2" \
     65"cc1
     66" "" \
     67"cc1
     68cc2
     69cc3
     70"
     71
     72testing "uniq -s -w (skip fields and compare max chars)" \
     73"uniq -s 2 -w 2" \
     74"aaccaa
     75" "" \
     76"aaccaa
     77aaccbb
     78bbccaa
     79"
    6380
    6481# -d is "Suppress the writing fo lines that are not repeated in the input."
  • branches/2.2.9/mindi-busybox/testsuite/unzip.tests

    r821 r2725  
    33# Tests for unzip.
    44# Copyright 2006 Rob Landley <rob@landley.net>
    5 # Copyright 2006 Glenn McGrath <bug1@ihug.co.nz>
    6 # Licensed under GPL v2, see file LICENSE for details.
     5# Copyright 2006 Glenn McGrath
     6# Licensed under GPLv2, see file LICENSE in this source tree.
    77
    8 . testing.sh
     8. ./testing.sh
    99
    1010# testing "test name" "options" "expected result" "file input" "stdin"
  • branches/2.2.9/mindi-busybox/testsuite/uptime/uptime-works

    r821 r2725  
    11busybox uptime
    2 
  • branches/2.2.9/mindi-busybox/testsuite/uuencode.tests

    r1765 r2725  
    33# unit test for uuencode to test functionality.
    44# Copyright 2006 by Erik Hovland <erik@hovland.org>
    5 # Licensed under GPL v2, see file LICENSE for details.
     5# Licensed under GPLv2, see file LICENSE in this source tree.
    66
    77# AUDIT: Unit tests for uuencode
    88
    9 . testing.sh
     9. ./testing.sh
    1010
    1111# testing "test name" "options" "expected result" "file input" "stdin"
     
    1414
    1515# Test setup of standard input
    16 saved_umask=$(umask)
    1716umask 0
    1817testing "uuencode sets standard input mode correctly" \
    1918        "uuencode foo </dev/null | head -n 1 | grep -q 666 && echo yes" "yes\n" "" ""
    20 umask $saved_umask
     19umask 022
    2120
    2221testing "uuencode correct encoding" "uuencode bb_uuenc_test.out" \
  • branches/2.2.9/mindi-busybox/testsuite/wget/wget--O-overrides--P

    r821 r2725  
     1test x"$SKIP_INTERNET_TESTS" != x"" && exit
     2
    13mkdir foo
    24busybox wget -q -O index.html -P foo http://www.google.com/
  • branches/2.2.9/mindi-busybox/testsuite/wget/wget-handles-empty-path

    r821 r2725  
     1test x"$SKIP_INTERNET_TESTS" != x"" && exit
     2
    13busybox wget http://www.google.com
  • branches/2.2.9/mindi-busybox/testsuite/wget/wget-retrieves-google-index

    r821 r2725  
     1test x"$SKIP_INTERNET_TESTS" != x"" && exit
     2
    13busybox wget -q -O foo http://www.google.com/
    24test -s foo
  • branches/2.2.9/mindi-busybox/testsuite/wget/wget-supports--P

    r821 r2725  
     1test x"$SKIP_INTERNET_TESTS" != x"" && exit
     2
    13mkdir foo
    24busybox wget -q -P foo http://www.google.com/
Note: See TracChangeset for help on using the changeset viewer.