rts.tests
changeset 0 eeadadee24f6
equal deleted inserted replaced
-1:000000000000 0:eeadadee24f6
       
     1 # Requirements:
       
     2 # You have softlimit in your path.
       
     3 # XFSZ is signal 25.
       
     4 #
       
     5 # Some features not tested here:
       
     6 # cdbmake traps 4GB overflows.
       
     7 
       
     8 
       
     9 umask 022
       
    10 
       
    11 rm -rf rts-tmp
       
    12 mkdir rts-tmp
       
    13 cd rts-tmp
       
    14 
       
    15 
       
    16 echo '--- cdbmake handles simple example'
       
    17 echo '+3,5:one->Hello
       
    18 +3,7:two->Goodbye
       
    19 ' | cdbmake test.cdb test.tmp
       
    20 echo $?
       
    21 
       
    22 echo '--- cdbmake-12 handles simple example'
       
    23 echo '
       
    24   one  Hello
       
    25 # comment line
       
    26   two  Goodbye
       
    27 ' | cdbmake-12 12.cdb 12.tmp
       
    28 echo $?
       
    29 
       
    30 echo '--- cdbmake-sv handles simple example'
       
    31 echo '
       
    32 # Network services, Internet style
       
    33 echo              7/tcp
       
    34 echo              7/udp
       
    35 discard           9/tcp    sink null
       
    36 discard           9/udp    sink null
       
    37 systat           11/tcp    users        #Active Users
       
    38 systat           11/udp    users        #Active Users
       
    39 ' | cdbmake-sv sv.cdb sv.tmp
       
    40 echo $?
       
    41 
       
    42 echo '--- cdbdump handles simple examples'
       
    43 cdbdump < test.cdb
       
    44 echo $?
       
    45 cdbdump < 12.cdb
       
    46 echo $?
       
    47 cdbdump < sv.cdb
       
    48 echo $?
       
    49 
       
    50 echo '--- cdbtest handles simple examples'
       
    51 cdbtest < test.cdb
       
    52 echo $?
       
    53 cdbtest < 12.cdb
       
    54 echo $?
       
    55 cdbtest < sv.cdb
       
    56 echo $?
       
    57 
       
    58 echo '--- cdbstats handles simple examples'
       
    59 cdbstats < test.cdb
       
    60 echo $?
       
    61 cdbstats < 12.cdb
       
    62 echo $?
       
    63 cdbstats < sv.cdb
       
    64 echo $?
       
    65 
       
    66 echo '--- cdbget retrieves data successfully'
       
    67 cdbget one < test.cdb
       
    68 echo '
       
    69 '$?
       
    70 cdbget two < test.cdb
       
    71 echo '
       
    72 '$?
       
    73 for i in @7 echo @9 discard sink null @11 systat users
       
    74 do
       
    75   cdbget $i/tcp < sv.cdb
       
    76   echo '
       
    77 '$?
       
    78   cdbget $i/udp < sv.cdb
       
    79   echo '
       
    80 '$?
       
    81 done
       
    82 
       
    83 echo '--- cdbget exits 100 on nonexistent data'
       
    84 cdbget three < test.cdb
       
    85 echo $?
       
    86 cdbget '#Active' < sv.cdb
       
    87 echo $?
       
    88 
       
    89 
       
    90 echo '--- cdbmake handles repeated keys'
       
    91 echo '+3,5:one->Hello
       
    92 +3,7:one->Goodbye
       
    93 +3,7:one->Another
       
    94 ' | cdbmake rep.cdb rep.tmp
       
    95 echo $?
       
    96 cdbdump < rep.cdb
       
    97 echo $?
       
    98 
       
    99 echo '--- cdbget handles repeated keys'
       
   100 cdbget one < rep.cdb
       
   101 echo '
       
   102 '$?
       
   103 cdbget one 0 < rep.cdb
       
   104 echo '
       
   105 '$?
       
   106 cdbget one 1 < rep.cdb
       
   107 echo '
       
   108 '$?
       
   109 cdbget one 2 < rep.cdb
       
   110 echo '
       
   111 '$?
       
   112 cdbget one 3 < rep.cdb
       
   113 echo '
       
   114 '$?
       
   115 cdbget one 4 < rep.cdb
       
   116 echo '
       
   117 '$?
       
   118 
       
   119 echo '--- cdbmake handles long keys and data'
       
   120 echo '+320,320:ba483b3442e75cace82def4b5df25bfca887b41687537c21dc4b82cb4c36315e2f6a0661d1af2e05e686c4c595c16561d8c1b3fbee8a6b99c54b3d10d61948445298e97e971f85a600c88164d6b0b09
       
   121 b5169a54910232db0a56938de61256721667bddc1c0a2b14f5d063ab586a87a957e87f704acb7246c5e8c25becef713a365efef79bb1f406fecee88f3261f68e239c5903e3145961eb0fbc538ff506a
       
   122 ->152e113d5deec3638ead782b93e1b9666d265feb5aebc840e79aa69e2cfc1a2ce4b3254b79fa73c338d22a75e67cfed4cd17b92c405e204a48f21c31cdcf7da46312dc80debfbdaf6dc39d74694a711
       
   123 6d170c5fde1a81806847cf71732c7f3217a38c6234235951af7b7c1d32e62d480d7c82a63a9d94291d92767ed97dd6a6809d1eb856ce23eda20268cb53fda31c016a19fc20e80aec3bd594a3eb82a5a
       
   124 
       
   125 ' | cdbmake test.cdb test.tmp
       
   126 echo $?
       
   127 
       
   128 echo '--- cdbdump handles long keys and data'
       
   129 cdbdump < test.cdb
       
   130 echo $?
       
   131 
       
   132 echo '--- cdbtest handles long keys and data'
       
   133 cdbtest < test.cdb
       
   134 echo $?
       
   135 
       
   136 echo '--- cdbstats handles long keys and data'
       
   137 cdbstats < test.cdb
       
   138 echo $?
       
   139 
       
   140 echo '--- cdbget handles long keys and data'
       
   141 cdbget 'ba483b3442e75cace82def4b5df25bfca887b41687537c21dc4b82cb4c36315e2f6a0661d1af2e05e686c4c595c16561d8c1b3fbee8a6b99c54b3d10d61948445298e97e971f85a600c88164d6b0b09
       
   142 b5169a54910232db0a56938de61256721667bddc1c0a2b14f5d063ab586a87a957e87f704acb7246c5e8c25becef713a365efef79bb1f406fecee88f3261f68e239c5903e3145961eb0fbc538ff506a
       
   143 ' < test.cdb
       
   144 echo '
       
   145 '$?
       
   146 
       
   147 echo '--- cdbmake handles unwritable tmp'
       
   148 ln -s loop loop
       
   149 echo '' | cdbmake test.cdb loop
       
   150 echo $?
       
   151 
       
   152 echo '--- cdbmake handles unmovable cdb'
       
   153 echo '' | cdbmake loop/test.cdb test.tmp
       
   154 echo $?
       
   155 
       
   156 echo '--- cdbmake handles nomem'
       
   157 csh -cf 'repeat 5000 echo "+3,5:one->Hello"' \
       
   158 | softlimit -d 50000 cdbmake test.cdb test.tmp
       
   159 echo $?
       
   160 
       
   161 echo '--- cdbmake handles full disk'
       
   162 (
       
   163   trap '' 25
       
   164   echo '' | softlimit -f 2047 cdbmake test.cdb test.tmp
       
   165   echo $?
       
   166 )
       
   167 
       
   168 echo '--- cdbmake handles absurd klen'
       
   169 echo '+4294967210' | cdbmake test.cdb test.tmp
       
   170 echo $?
       
   171 
       
   172 echo '--- cdbget handles empty file'
       
   173 cdbget foo </dev/null
       
   174 echo $?
       
   175 
       
   176 
       
   177 echo '--- cdbdump and cdbmake handle random.cdb'
       
   178 cdbdump < ../random.cdb | cdbmake test.cdb test.tmp
       
   179 echo $?
       
   180 cmp ../random.cdb test.cdb
       
   181 
       
   182 echo '--- cdbtest handles random.cdb'
       
   183 cdbtest < ../random.cdb
       
   184 echo $?
       
   185 
       
   186 echo '--- cdbstats handles random.cdb'
       
   187 cdbstats < ../random.cdb
       
   188 echo $?
       
   189 
       
   190 
       
   191 echo '--- testzero works'
       
   192 testzero 5 > test.cdb
       
   193 echo $?
       
   194 cdbtest < test.cdb
       
   195 echo $?
       
   196 
       
   197 echo '--- testzero can build a database very close to 4GB'
       
   198 testzero 65507 > /dev/null
       
   199 echo $?
       
   200 
       
   201 echo '--- testzero complains if hash table passes 4GB'
       
   202 testzero 65508 > /dev/null
       
   203 echo $?
       
   204 
       
   205 echo '--- testzero complains if records pass 4GB'
       
   206 testzero 66000 > /dev/null
       
   207 echo $?
       
   208 
       
   209 
       
   210 exit 0