Annotation of embedaddon/php/ext/standard/tests/file/file.inc, revision 1.1.1.1

1.1       misho       1: <?php
                      2: /* Header file for common file test functions 
                      3:      Following functions are provided :
                      4:        create_files() : create files with specified contents 
                      5:        delete_files() : delete files
                      6:        create_links() : crate links of different types
                      7:        delete_links() : delete links 
                      8:        fill_files()   : fill file with specified contents 
                      9:        change_file_perms() : Change permission of files 
                     10:        fill_buffer()  : fills buffer with specified contents
                     11:        compare_self_stat() : compares the first 13 elements of the 
                     12:                             stat with the corresponding named key values of
                     13:                             the same stat.
                     14:        compare_stats() : Compares two stat values
                     15: 
                     16: */ 
                     17: 
                     18: define('file_not_found', 2, 1);
                     19: 
                     20: /* 
                     21:  Function: bool create_file(string $filename, string $mode = "w");
                     22:  Description: creates a new file using fopen() call 
                     23:    $filename = Name of the file 
                     24:    $mode = Mode as specified in fopen call, read documentation of fopen() call for more info
                     25: 
                     26:  Returns: 
                     27:    true on success, false otherwise
                     28: */
                     29: function create_file($filename, $mode = "w") {
                     30:   $file_handle = fopen ($filename, $mode);
                     31:   if ( $file_handle == false )
                     32:     return false;
                     33:   fclose($file_handle);
                     34:   return true;
                     35: }
                     36: 
                     37: /*
                     38:  Function : bool fill_buffer(string &$buffer, string $fill_type, int $fill_size);
                     39:  Description: Fills the $buffer with data as specified with requested size.
                     40:    $buffer = buffer to be filled
                     41:    $fill_type:
                     42:        "text" = fills with string of size $file_size
                     43:        "numeric" = fills with numeric value of size $file_size
                     44:        "text_with_new_line" = similar to "text" fill type but writes with new line
                     45:        "alphanumeric" = fills with alphnumeric values
                     46:  Returns: true on success, false on invalid fill type
                     47: */
                     48: function fill_buffer(&$buffer, $fill_type, $fill_size) {
                     49: 
                     50:   if ( $fill_type == "text" ) {
                     51:     $data = "text ";
                     52:     $size_divider = strlen($data);
                     53:     $add_value = strlen($data);
                     54:   } else if ( $fill_type == "text_with_new_line" ) {
                     55:     $data = "line\nline of text\n";
                     56:     $size_divider = strlen($data);
                     57:     $add_value = strlen($data);
                     58:   } else if ( $fill_type == "alphanumeric" ) {
                     59:     $data = "ab12 ";
                     60:     $size_divider = strlen($data);
                     61:     $add_value = strlen($data);
                     62:   } else if ( $fill_type == "numeric" ) {
                     63:     $data = 2;
                     64:     $size_divider = 1;
                     65:     $add_value = 0;
                     66:   } else {
                     67:     // invalid fill type;
                     68:     return false;
                     69:   }
                     70: 
                     71:   $tmp_buff = str_repeat($data, ($fill_size/$size_divider) + $add_value );
                     72: 
                     73:   if ( strlen($tmp_buff) > $fill_size ) {
                     74:     $buffer = substr($tmp_buff, 0, $fill_size);
                     75:   } else {
                     76:     $buffer = $tmp_buff;
                     77:   }
                     78: 
                     79:   return true;
                     80: }
                     81: 
                     82: /*
                     83:  Function : bool fill_file(resource $file_handle, string $fill_type, string $file_size);
                     84:  Description: Fills the file with data as specified with requested size.
                     85:    $file_handle = file handle, opened with write options,
                     86:    $fill_type: 
                     87:        "text" = fills with string of size $file_size
                     88:        "numeric" = fills with numeric value of size $file_size
                     89:        "empty" = no fill operation performed, returns true
                     90:        "text_with_new_line" = similar to "text" fill type but writes with new line
                     91:        "alphanumeric" = fills with alphnumeric values 
                     92:  Returns: true on success, false on failure & invalid fill type
                     93: */
                     94: 
                     95: function fill_file($file_handle, $fill_type, $file_size) {
                     96:    
                     97:   if ( $fill_type == "empty" ) {
                     98:     // no fill required, return true
                     99:     return true;
                    100:   } if ( $fill_type == "text" ) {
                    101:     $data = "text ";
                    102:     $size_divider = strlen($data); 
                    103:     $add_value = strlen($data);
                    104:   } else if ( $fill_type == "text_with_new_line" ) {
                    105:     $data = "line\nline of text\n";
                    106:     $size_divider = strlen($data);
                    107:     $add_value = strlen($data);
                    108:   } else if ( $fill_type == "alphanumeric" ) {
                    109:     $data = "ab12 ";
                    110:     $size_divider = strlen($data);
                    111:     $add_value = strlen($data);
                    112:   } else if ( $fill_type == "numeric" ) {
                    113:     $data = 2;
                    114:     $size_divider = 1;
                    115:     $add_value = 0;
                    116:   } else { 
                    117:     // invalid fill type;
                    118:     return false;
                    119:   }
                    120: 
                    121:   // write in terms of a chunk of 1 K to avoid memory size overflow
                    122:   $size = $file_size;
                    123:   $chunk_size = 1024;
                    124:   if ( $size > $chunk_size ) {
                    125:     $loop_count = 1;
                    126:     do {
                    127:       $loop_count ++; 
                    128:       if ( $size <= $chunk_size ) {
                    129:         $chunk_size = $size;
                    130:       }
                    131:       $num_values = str_repeat($data, ($chunk_size/$size_divider) + $add_value );
                    132:       $bytes_written = fwrite($file_handle, $num_values, $chunk_size);
                    133:       if ( $bytes_written != $chunk_size ) {
                    134:             return false;
                    135:       }
                    136:       $size -= $chunk_size;
                    137:     } while ( $size > 0 );
                    138:   } else {
                    139:     $num_values = str_repeat($data, ($chunk_size/$size_divider) + $add_value );
                    140:     $bytes_written = fwrite($file_handle, $num_values, $file_size);
                    141:     if ( $bytes_written != $file_size ) {
                    142:       return false;
                    143:     }
                    144:   }
                    145:   
                    146:   // successful, return true
                    147:   return true;
                    148: }
                    149: 
                    150: /*
                    151:  Function: int change_file_perms(string $file_path, int $count = 1, int $perms = 0755, 
                    152:                                  string $name_prefix = "file", 
                    153:                                  string $name_suffix = 1, $file_extension = ".tmp");
                    154:  Description: changes file permission for given file(s).
                    155:    $file_path = dir path where file exists
                    156:    $count = no. of files, default is 1
                    157:    $perms = new permission of the file, similar to $mode args of chmod() call
                    158:    $name_prefix = common name prefix, default is "file"
                    159:    $name_suffix = suffix to end the common name given in name_prefix to create
                    160:       a unique name. default is 1. 
                    161:    $file_extension = default is .tmp
                    162:  Returns:
                    163:    Integer, Count of total files permission changed.
                    164: */
                    165: function change_file_perms($file_path,
                    166:                            $count = 1, 
                    167:                            $perms = 0755, 
                    168:                            $name_prefix = "file", 
                    169:                            $name_suffix = 1, 
                    170:                            $file_extension = ".tmp" ) 
                    171: {
                    172:   $changed = 0;
                    173: 
                    174:   if( $count <= 0 ) 
                    175:     return $changed;
                    176: 
                    177:   if ( $name_suffix <= 0)
                    178:     $name_suffix = 1;
                    179: 
                    180:   for($loop_counter = 1; $loop_counter <= $count; $loop_counter++) {
                    181:     $filename = $file_path."/".$name_prefix.$name_suffix.$file_extension;
                    182:     if( chmod($filename, $perms) )
                    183:       $changed++;
                    184:     $name_suffix++;
                    185:   } 
                    186:   return $changed;
                    187: }
                    188: 
                    189: /* 
                    190:  Function: array create_files( string $file_path,
                    191:                                int $count = 1,
                    192:                                string $content_type = "numeric", 
                    193:                                int $permission = 0755, 
                    194:                                int $size = 1,
                    195:                                string $mode = "w", 
                    196:                                string $name_prefix = "file", 
                    197:                                int $name_suffix = 1,
                    198:                                string $flag = "kilobytes"
                    199:                                string $file_extension = ".tmp"
                    200:                              );
                    201:  Description: Creates given number of files with specified mode and 
                    202:    permissions. File is filled with content of size specified.
                    203:    $file_path = dir where files will be created
                    204:    $name_prefix = prefix to be used for names, name is suffix with a 
                    205:      unqiue numeric value to make the file name unique, default = file
                    206:    $name_suffix = suffix to be used for the name, default = 1
                    207:    $count = total no. of files to be created, default = 1
                    208:    $mode = file open mode as specified in fopen() call. Do not use 
                    209:      modes used for only reading the file. Default = "w"
                    210:    $permission = An octal number, This should be similar to $mode 
                    211:      specified in chmod() call. 
                    212:    $content_type = Specify type of the content to fill in the file. 
                    213:      "numeric" = fill file with numeric vlaues
                    214:      "text" = fill file with regular text
                    215:      "empty" = empty file
                    216:      "text_with_new_line" = similar to text fill type, but writes with new line char
                    217:      "alphanumeric" = fill file with alpha numeric text
                    218:      If imporper $content type is specified, file is created as empty
                    219:    $size = size of the fill in terms of kilobyte, i.e size of the file.
                    220:            if $flag is specified as "byte", then then given size is taken in bytes
                    221:    $flag = specifiy if size has to be treated as no of total bytes or 
                    222:            multiple of KB.
                    223:      "kilobytes" = take size in terms of multiple of KB
                    224:      "byte" = take size in terms of bytes 
                    225:    $file_extension = default is .tmp
                    226: 
                    227:  Returns:
                    228:    An array with following key value pair:
                    229:      created => total file created
                    230:      filled => total files filled 
                    231:      perms_changed => total files permission changed
                    232: */
                    233: function create_files( $file_path,
                    234:                        $count = 1,
                    235:                        $content_type = "numeric",
                    236:                        $permission = 0755,
                    237:                        $size = 1,
                    238:                        $mode = "w",
                    239:                        $name_prefix = "file",
                    240:                        $name_suffix = 1,
                    241:                        $flag = "kilobytes",
                    242:                        $file_extension = ".tmp"
                    243:                      )
                    244: {
                    245:   $return_value = array('created' => 0, 'filled' => 0, 'perms_changed' => 0);
                    246: 
                    247:   //ensure that suffix is a +ve integer
                    248:   if ($name_suffix <= 0) {
                    249:     $name_suffix = 1;
                    250:   }
                    251: 
                    252:   // check for proper size
                    253:   if ( $size == 0 )
                    254:     return $return_value;
                    255: 
                    256:   // prepare the size based on flag 
                    257:   $file_size = $size;
                    258:   if ( $flag == "kilobytes" ) {
                    259:     $file_size = $file_size * 1024;
                    260:   }
                    261: 
                    262:   $tmp_name_suffix = $name_suffix;
                    263:   // create the files with specified mode and permission
                    264:   for($file_created_count = 1; $file_created_count <= $count; $file_created_count ++) {
                    265:     $filename = $file_path."/".$name_prefix.$tmp_name_suffix.$file_extension;
                    266: 
                    267:     $status = create_file($filename, $mode);
                    268: 
                    269:     $tmp_name_suffix++;
                    270: 
                    271:     if ($status == true) {
                    272:       $return_value['created']++;
                    273:     }
                    274:     else {
                    275:       return $return_value;
                    276:     }
                    277:   }
                    278: 
                    279:   if ( $content_type == "empty" ) {
                    280:     $return_value['filled'] = $count;
                    281:   } else {
                    282:     // fill the file with specifiec type of data and size
                    283:     $tmp_name_suffix = $name_suffix;
                    284:     for($loop_counter = 1; $loop_counter <= $count; $loop_counter ++) {
                    285:       $filename = $file_path."/".$name_prefix.$tmp_name_suffix.$file_extension;
                    286:       $file_handle = fopen($filename, $mode);
                    287:       if($file_handle == false) {
                    288:         fclose($file_handle);
                    289:         return $return_value;
                    290:       } // end of if
                    291:  
                    292:       // call fill_file() to fill the file 
                    293:       if( fill_file($file_handle, $content_type, $file_size) )
                    294:         $return_value['filled']++;
                    295:     
                    296:       fclose($file_handle);
                    297: 
                    298:       $tmp_name_suffix++;
                    299:     } // end of for
                    300:   }
                    301: 
                    302:   // change all file's permissions
                    303:   $return_value['perms_changed'] = change_file_perms($file_path, $count, $permission, $name_prefix, 
                    304:                                                      $name_suffix, $file_extension);
                    305:   
                    306:   return $return_value;
                    307: }
                    308: 
                    309: 
                    310: /*
                    311:  Function: function create_links( $file_path,
                    312:                       $filename,
                    313:                        $link_count = 1,
                    314:                        $link_type = "soft",
                    315:                        $link_size = 1024,
                    316:                        $link_name_prefix = "link",
                    317:                        $link_name_suffix = 1,
                    318:                        $link_file_content = "text",
                    319:                        $link_perms = 0755,
                    320:                        $link_file_extension = ".tmp"
                    321:                      );
                    322: 
                    323:  Description: Creates given number of links with specified mode and
                    324:    permissions.Link is filled with content of size specified.
                    325:    $file_path = location of the file and where links need to be created
                    326:    $link_name_prefix = prefix to be used for names, name is suffix with a
                    327:      unique numeric value to make the file name unique, default = link
                    328:    $link_name_suffix = suffix to be used for the name, default = 1
                    329:    $link_count = total no. of links to be created to given file, default = 1
                    330:    $link_perms = An octal number, This should be similar to $mode
                    331:      specified in chmod() call.
                    332:    $link_file_content = Type of the content to fill in the file.
                    333:      numeric = fill file with numeric vlaues
                    334:      text = fill file with regular text
                    335:      text_with_new_line = same as text but new lines are written
                    336:      alphanumeric = fill with alphanumeric text
                    337:      If imporper $content type is specified, file is created as empty
                    338:    $size = size of the fill in terms of kilobyte, i.e size of the file.
                    339:    $link_type = type of the link to be created 
                    340:       "soft" = soft link 
                    341:       "hard" = hard link
                    342:    $filename = file used to create a link on
                    343: 
                    344:  Returns:
                    345:    An array with following key value pair:
                    346:      created => total file created
                    347:      filled => total files filled, always returned as 1
                    348:      perms_changed => total files permission changed
                    349: */
                    350: function create_links($file_path,
                    351:                       $filename,
                    352:                       $link_count = 1,
                    353:                       $link_type = "soft",
                    354:                       $link_size = 1024,
                    355:                       $link_name_prefix = "link",
                    356:                       $link_name_suffix = 1,
                    357:                       $link_file_content = "text",
                    358:                       $link_perms = 0755,
                    359:                       $link_file_extension = ".tmp"
                    360:                      )
                    361: {
                    362:   $return_value = array('created' => 0, 'filled' => 0, 'perms_changed' => 0);
                    363:   $tmp_name_suffix = $link_name_suffix;
                    364:   $src_filename = $file_path."/".$filename;
                    365:   switch( $link_type ) {
                    366:     default :
                    367:     case "soft" :  // create a soft link
                    368:       for($link_created_count = 1; $link_created_count <= $link_count; $link_created_count++) {
                    369:         $linkname = $file_path."/".$link_name_prefix.$tmp_name_suffix.$link_file_extension;
                    370:         $status = symlink( $src_filename, $linkname);
                    371:         $tmp_name_suffix++;
                    372:         if ($status) {
                    373:           $return_value['created']++;
                    374:         }
                    375:         else {
                    376:           $return_value;
                    377:         }
                    378:       }
                    379:       break;
                    380: 
                    381:     case "hard" :  // create a hard link
                    382:       for($link_created_count = 1; $link_created_count <= $link_count; $link_created_count++) {
                    383:         $linkname = $file_path."/".$link_name_prefix.$tmp_name_suffix.$link_file_extension;
                    384:         $status = link($src_filename, $linkname);
                    385:         $tmp_name_suffix++;
                    386:         if ($status) {
                    387:           $return_value['created']++;
                    388:         }
                    389:         else {
                    390:           $return_value;
                    391:         }
                    392:       }
                    393:       break;
                    394:   }
                    395:   
                    396:   if ( $link_file_content == "empty" ) {
                    397:     $return_value['filled'] = 1;
                    398:     return $return_value;
                    399:   }
                    400:   
                    401:   // fill the file with specific type of data and size
                    402:   $tmp_name_suffix = $link_name_suffix;
                    403:   $linkname = $file_path."/".$link_name_prefix.$tmp_name_suffix.$link_file_extension;
                    404:   $file_handle = fopen($linkname, "w");
                    405:   if($file_handle == false) {
                    406:     return $return_value;
                    407:   } // end of if
                    408:  
                    409:   // call fill_file() to fill the file 
                    410:   if( fill_file($file_handle, $link_file_content, $link_size) )
                    411:     $return_value['filled']++;
                    412: 
                    413:   // close the link
                    414:   fclose($file_handle);
                    415: 
                    416:   // change the permission of the link file, only if hard link.
                    417:   // this is not applicable to soft links
                    418:   if( $link_type == "hard" ) { 
                    419:     $return_value['perms_changed'] = change_file_perms($file_path, 
                    420:                                                         $link_count, 
                    421:                                                         $link_perms, 
                    422:                                                         $link_name_prefix, 
                    423:                                                         $link_name_suffix,
                    424:                                                         $link_file_extension );
                    425:   }
                    426: 
                    427:   return $return_value;
                    428: }
                    429: 
                    430: /* 
                    431:  Function: bool delete_file(string $filename);
                    432:  Description: delete a given file if exists 
                    433:  Returns: true on success  
                    434:           false on failure
                    435:           file_not_found if file doesn't exist
                    436: */
                    437: function delete_file($filename) {
                    438:   // check if file exists
                    439:   if ( file_exists($filename) ) {
                    440:     if ( unlink($filename) )
                    441:       return true;
                    442:     else
                    443:       return false;
                    444:   }
                    445:   return file_not_found;
                    446: }
                    447: 
                    448: /*
                    449:  Function: array delete_files(string $file_path, int $count = 1, string $name_prefix = "file", 
                    450:                               int name_suffix = 1, $file_extension = ".tmp" );
                    451:  Description: Deletes given number of files if exists.
                    452:    $file_path = location of the files
                    453:    $name_prefix = prefix for the filename, rest of the name is incremental(increment by 1 only)
                    454:      numeric starting from suffix upto count
                    455:    $count = number of files to be deleted
                    456:    $name_suffix = first numeric suffix in the name
                    457:  Returns: An array with following key/value pair
                    458:    deleted = Number of files deleted.
                    459:    notfound = Count of non existing file
                    460:    failed = Count of failed to delete
                    461: */
                    462: function delete_files($file_path,
                    463:                       $count = 1, 
                    464:                       $name_prefix = "file", 
                    465:                       $name_suffix = 1, 
                    466:                       $file_extension = ".tmp") 
                    467: {
                    468:   $return_value = array ('deleted' => 0, 'notfound' => 0, 'failed' => 0);
                    469: 
                    470:   if ( $name_suffix < 1 )
                    471:     $name_suffix = 1; 
                    472:   for($loop_counter = 1; $loop_counter <= $count; $loop_counter++) {
                    473:     $filename = $file_path."/".$name_prefix.$name_suffix.$file_extension;
                    474:     $name_suffix++;
                    475:     $status = delete_file($filename);
                    476:     if($status == true) {
                    477:       $return_value['deleted']++;
                    478:     } else if($status == file_not_found) {
                    479:       $return_value['notfound']++;
                    480:     } else {
                    481:       $return_value['failed']++;
                    482:     }
                    483:     
                    484:   } // end of for
                    485:   return $return_value;
                    486: }
                    487: 
                    488: /*
                    489:  Function: array delete_links( $file_path, 
                    490:                                $link_file_count, 
                    491:                                $link_name_prefix, 
                    492:                                $link_name_suffix, 
                    493:                                $link_file_extension );
                    494:  Description: Deletes given number of links if exists. Uses delete_files() function
                    495:    $file_path = location of link files 
                    496:    $link_file_count = Number of link files 
                    497:    $link_name_prefix = prefix for the linkname, rest of the name is incremental(increment by 1 only)
                    498:      numeric starting from $link_name_suffix upto count
                    499:    $link_name_suffix = first numeric suffix in the name
                    500: 
                    501:  Returns: An array with following key/value pair
                    502:    deleted = Number of links deleted.
                    503:    notfound = Count of non existing link
                    504:    failed = Count of failed to delete
                    505: */
                    506: function delete_links($file_path,
                    507:                       $link_file_count = 1, 
                    508:                       $link_name_prefix = "link", 
                    509:                       $link_name_suffix = 1, 
                    510:                       $link_file_extension = ".tmp") 
                    511: {
                    512:    // call the delete files to delete links 
                    513:    $return_value = delete_files( $file_path, 
                    514:                                  $link_file_count, 
                    515:                                  $link_name_prefix, 
                    516:                                  $link_name_suffix, 
                    517:                                  $link_file_extension );
                    518:    return $return_value;
                    519: }
                    520: 
                    521: 
                    522: 
                    523: /*
                    524:  Prototype:
                    525:   function compare_self_stat( array $stat );
                    526:  Description:
                    527:   Compares the each of the first 13 values of the stat array with the 
                    528:   corresponding next 13 values of the same stat for equality
                    529:   $stat = stat array
                    530: 
                    531:  Retuns: true when all of them match, false otherwise
                    532: */
                    533: function compare_self_stat( array $stat )
                    534: {
                    535:   //return value
                    536:   $return_value = true;
                    537: 
                    538:   // named keys present in a stat
                    539:   $string_keys = array("dev", "ino", "mode", "nlink", "uid", "gid", 
                    540:                        "rdev", "size", "atime", "mtime", "ctime",
                    541:                        "blksize", "blocks");
                    542: 
                    543:   // first numeric key
                    544:   $key = 0;
                    545: 
                    546:   // compare the values in the stat, which are accessed using numeric key with
                    547:   // values accessed using string keys
                    548:   foreach($string_keys as $str_key)
                    549:   {
                    550:     if($stat[$key] != $stat[$str_key]) {
                    551:       echo "Error: stat[$key] doesn't match with stat[$str_key]\n";
                    552:       $flag = false;
                    553:       $key++;
                    554:     }
                    555:     else {
                    556:       $key++;
                    557:     }
                    558:   } // end of foreach
                    559: 
                    560:   // if the $return_value is false, i.e all the element do not match then 
                    561:   // dump the stat array so that its easy to figure out the error
                    562:   if ($return_value == false ) {
                    563:     echo "\n Dumping stat array ...\n";
                    564:     var_dump($stat);
                    565:   }
                    566: 
                    567:   return $return_value;
                    568: }// end of compare_self_stat
                    569: 
                    570: /*
                    571: Prototype:
                    572:   function compare_stats( array $stat1, array $stat2, array $fields, 
                    573:                           [string $op = "==", [ bool $flag = false] ]);
                    574: Description:
                    575:   Compares two stat values, stat value should be obtained by stat/lstat
                    576:   $stat1 = first stat array
                    577:   $stat2 = second stat array
                    578:   $op = type of the comparision to be perform between elements of stat1 and stat2
                    579:     "!=" compare for not equal
                    580:     "==" compare for equality
                    581:     ">"  if each element of stat1 is > than stat2
                    582:     "<"  if each element of stat1 is < than stat2
                    583:   $fields = contains the key of the elements that needs to be compared. 
                    584:             type of the comparision is based on $op argument value
                    585:   $flag = specify true to dump the stat1 and stat2 
                    586: */
                    587: 
                    588: $all_stat_keys = array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
                    589:                        "dev", "ino", "mode", "nlink", "uid", "gid",
                    590:                        "rdev", "size", "atime", "mtime", "ctime",
                    591:                        "blksize", "blocks");
                    592: 
                    593: function compare_stats($stat1, $stat2, $fields, $op = "==", $flag = false ) {
                    594:   // dump the stat if requested
                    595:   if ( $flag == true ) {
                    596:     var_dump($stat1);
                    597:     var_dump($stat2);
                    598:   }
                    599: 
                    600:   $result = true;
                    601: 
                    602:   // compare values of given key from each stat array 
                    603:   for($index = 0; $index < count($fields); $index++) 
                    604:   {
                    605:     switch( $op )
                    606:     {
                    607:        case "==":
                    608:          if ( $stat1[ $fields[$index] ] != $stat2[ $fields[$index] ] ) {
                    609:            $result = false;
                    610:            echo "Error: stat1 do not match with stat2 at key value: $fields[$index]\n";
                    611:          }
                    612:          break;
                    613: 
                    614:        case "!=":
                    615:          if ( $stat1[ $fields[$index] ] != $stat2[ $fields[$index] ] ) {
                    616:            // do nothing as its not equal, else will take care of if equal
                    617:          } else {
                    618:            $result = false;
                    619:            echo "Error: stat1 equals stat2 at key value: $fields[$index]\n";
                    620:          }
                    621:          break;
                    622: 
                    623:        case ">":
                    624:          if ( $stat1[ $fields[$index] ] <= $stat2[ $fields[$index] ] ) {
                    625:            $result = false;
                    626:            echo "Error: stat1 is not greater than stat2 at key value: $fields[$index]\n";
                    627:          }
                    628:          break;
                    629: 
                    630:        case "<":
                    631:          if ( $stat1[ $fields[$index] ] >= $stat2[ $fields[$index] ] ) {
                    632:            $result = false;
                    633:            echo "Error: stat1 is not lesser than stat2 at key value: $fields[$index]\n";
                    634:          }
                    635:          break;
                    636:     }
                    637:   }
                    638:   // if the result is false(i.e values are not as expected), 
                    639:   // dump the stat array so that easy to figure out the error
                    640:   if ( $result == false ) {
                    641:     echo "\n Dumping stat array 1...\n";
                    642:     var_dump($stat1);
                    643:     echo "\n Dumping stat array 2...\n";
                    644:     var_dump($stat2);
                    645:   }
                    646: 
                    647:   return $result;
                    648: }
                    649: 
                    650: ?>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>