Annotation of embedaddon/php/ext/standard/tests/file/popen_pclose_basic.phpt, revision 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>