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

1.1       misho       1: --TEST--
                      2: Test popen() and pclose function: basic functionality 
                      3: --SKIPIF--
                      4: <?php
                      5: if(substr(PHP_OS, 0, 3) == 'WIN' )
                      6:   die("skip Not Valid for Windows");
                      7: ?>
                      8: 
                      9: --FILE--
                     10: <?php
                     11: /*
                     12:  *  Prototype: resource popen ( string command, string mode )
                     13:  *  Description: Opens process file pointer.
                     14:  *
                     15:  *  Prototype: int pclose ( resource handle );
                     16:  *  Description: Closes process file pointer.
                     17:  */
                     18: 
                     19: $file_path = dirname(__FILE__);
                     20: require($file_path."/file.inc");
                     21: 
                     22: echo "*** Testing popen() and pclose() with different processes ***\n";
                     23: 
                     24: echo "-- Testing popen(): reading from the pipe --\n";
                     25: $dirpath = $file_path."/popen_basic";
                     26: mkdir($dirpath);
                     27: touch($dirpath."/popen_basic.tmp");
                     28: define('CMD', "ls $dirpath");
                     29: $file_handle = popen(CMD, 'r');
                     30: fpassthru($file_handle);
                     31: pclose($file_handle);
                     32: 
                     33: echo "-- Testing popen(): reading from a file using 'cat' command --\n";
                     34: create_files($dirpath, 1, "text_with_new_line", 0755, 100, "w", "popen_basic", 1, "bytes");
                     35: $filename = $dirpath."/popen_basic1.tmp";
                     36: $command = "cat $filename";
                     37: $file_handle = popen($command, "r");
                     38: $return_value =  fpassthru($file_handle);
                     39: echo "\n";
                     40: var_dump($return_value);
                     41: pclose($file_handle);
                     42: delete_files($dirpath, 1);
                     43: 
                     44: echo "*** Testing popen(): writing to the pipe ***\n";
                     45: $arr = array("ggg", "ddd", "aaa", "sss");
                     46: $file_handle = popen("sort", "w");
                     47: $counter = 0;
                     48: $newline = "\n";
                     49: foreach($arr as $str) {
                     50:   fwrite($file_handle, (binary)$str);
                     51:   fwrite($file_handle, (binary)$newline);
                     52: }
                     53: pclose($file_handle);
                     54: 
                     55: 
                     56: echo "*** Testing for return type of popen() and pclose() functions ***\n";
                     57: $string = "Test String";
                     58: $return_value_popen = popen("echo $string", "r");
                     59: var_dump( is_resource($return_value_popen) );
                     60: fpassthru($return_value_popen);
                     61: $return_value_pclose = pclose($return_value_popen);
                     62: var_dump( is_int($return_value_pclose) );
                     63: 
                     64: echo "\n--- Done ---";
                     65: ?>
                     66: --CLEAN--
                     67: <?php
                     68: $file_path = dirname(__FILE__);
                     69: $dirpath = $file_path."/popen_basic";
                     70: unlink($dirpath."/popen_basic.tmp");
                     71: unlink($dirpath."/popen_basic1.tmp");
                     72: rmdir($dirpath);
                     73: ?>
                     74: 
                     75: --EXPECTF--
                     76: *** Testing popen() and pclose() with different processes ***
                     77: -- Testing popen(): reading from the pipe --
                     78: popen_basic.tmp
                     79: -- Testing popen(): reading from a file using 'cat' command --
                     80: line
                     81: line of text
                     82: line
                     83: line of text
                     84: line
                     85: line of text
                     86: line
                     87: line of text
                     88: line
                     89: line of text
                     90: line
                     91: line 
                     92: int(100)
                     93: *** Testing popen(): writing to the pipe ***
                     94: aaa
                     95: ddd
                     96: ggg
                     97: sss
                     98: *** Testing for return type of popen() and pclose() functions ***
                     99: bool(true)
                    100: Test String
                    101: bool(true)
                    102: 
                    103: --- Done ---

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