extauth_03.phpt 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. --TEST--
  2. Test External Authentication errors with oci_pconnect
  3. --EXTENSIONS--
  4. oci8
  5. --SKIPIF--
  6. <?php
  7. if (substr(PHP_OS, 0, 3) == 'WIN') die("skip feature not available on Windows platforms");
  8. die("skip random CI timeouts caused by Oracle Instant Client, see https://github.com/php/php-src/pull/9524#issuecomment-1244409815");
  9. ?>
  10. --INI--
  11. oci8.privileged_connect=1
  12. --FILE--
  13. <?php
  14. error_reporting(E_ALL ^ E_DEPRECATED);
  15. // Run Test
  16. echo "Test 1\n";
  17. $c = oci_pconnect('/', 'notemtpy', 'anything', null, OCI_CRED_EXT);
  18. if (!$c) {
  19. $m = oci_error();
  20. var_dump($m);
  21. }
  22. var_dump($c);
  23. echo "Test 2\n";
  24. $c = oci_pconnect('notemtpy', 'notemtpy', 'anything', null, OCI_CRED_EXT);
  25. if (!$c) {
  26. $m = oci_error();
  27. var_dump($m);
  28. }
  29. var_dump($c);
  30. echo "Test 3\n";
  31. $c = oci_pconnect('notemtpy', '', 'anything', null, OCI_CRED_EXT);
  32. if (!$c) {
  33. $m = oci_error();
  34. var_dump($m);
  35. }
  36. var_dump($c);
  37. echo "Test 4\n";
  38. $c = oci_pconnect('a', 'b', 'c', null, OCI_SYSDBA+OCI_SYSOPER);
  39. if (!$c) {
  40. $m = oci_error();
  41. var_dump($m);
  42. }
  43. var_dump($c);
  44. echo "Test 5\n";
  45. $c = oci_pconnect('a', 'b', 'c', null, OCI_SYSDBA+OCI_SYSOPER+OCI_CRED_EXT);
  46. if (!$c) {
  47. $m = oci_error();
  48. var_dump($m);
  49. }
  50. var_dump($c);
  51. echo "Test 6\n";
  52. $c = oci_pconnect('', '', 'anything', null, OCI_CRED_EXT);
  53. if (!$c) {
  54. $m = oci_error();
  55. var_dump($m);
  56. }
  57. var_dump($c);
  58. echo "Test 7\n";
  59. $c = oci_pconnect('/', '', 'anything', null, OCI_CRED_EXT);
  60. if (!$c) {
  61. $m = oci_error();
  62. var_dump($m);
  63. }
  64. var_dump($c);
  65. echo "Test 8\n";
  66. $c = oci_pconnect('/', null, 'anything', null, OCI_CRED_EXT);
  67. if (!$c) {
  68. $m = oci_error();
  69. var_dump($m);
  70. }
  71. var_dump($c);
  72. echo "Test 9\n";
  73. $c = oci_pconnect('/', '', 'd', null, OCI_SYSDBA+OCI_CRED_EXT);
  74. if (!$c) {
  75. $m = oci_error();
  76. var_dump($m);
  77. }
  78. var_dump($c);
  79. echo "Test 10\n";
  80. $c = oci_pconnect('/', '', 'd', null, OCI_SYSOPER+OCI_CRED_EXT);
  81. if (!$c) {
  82. $m = oci_error();
  83. var_dump($m);
  84. }
  85. var_dump($c);
  86. ?>
  87. --EXPECTF--
  88. Test 1
  89. Warning: oci_pconnect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
  90. bool(false)
  91. bool(false)
  92. Test 2
  93. Warning: oci_pconnect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
  94. bool(false)
  95. bool(false)
  96. Test 3
  97. Warning: oci_pconnect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
  98. bool(false)
  99. bool(false)
  100. Test 4
  101. Warning: oci_pconnect(): OCI_SYSDBA and OCI_SYSOPER cannot be used together in %s on line %d
  102. bool(false)
  103. bool(false)
  104. Test 5
  105. Warning: oci_pconnect(): OCI_SYSDBA and OCI_SYSOPER cannot be used together in %s on line %d
  106. bool(false)
  107. bool(false)
  108. Test 6
  109. Warning: oci_pconnect(): OCI_CRED_EXT can only be used with a username of "/" and a NULL password in %s on line %d
  110. bool(false)
  111. bool(false)
  112. Test 7
  113. Warning: oci_pconnect(): ORA-12154: %s in %s on line %d
  114. array(4) {
  115. ["code"]=>
  116. int(12154)
  117. ["message"]=>
  118. string(%d) "ORA-12154: %s"
  119. ["offset"]=>
  120. int(0)
  121. ["sqltext"]=>
  122. string(0) ""
  123. }
  124. bool(false)
  125. Test 8
  126. Warning: oci_pconnect(): ORA-12154: %s in %s on line %d
  127. array(4) {
  128. ["code"]=>
  129. int(12154)
  130. ["message"]=>
  131. string(%d) "ORA-12154: %s"
  132. ["offset"]=>
  133. int(0)
  134. ["sqltext"]=>
  135. string(0) ""
  136. }
  137. bool(false)
  138. Test 9
  139. Warning: oci_pconnect(): ORA-%d: TNS:%s in %s on line %d
  140. array(4) {
  141. ["code"]=>
  142. int(%d)
  143. ["message"]=>
  144. string(%d) "ORA-%d: %s"
  145. ["offset"]=>
  146. int(0)
  147. ["sqltext"]=>
  148. string(0) ""
  149. }
  150. bool(false)
  151. Test 10
  152. Warning: oci_pconnect(): ORA-%d: TNS:%s in %s on line %d
  153. array(4) {
  154. ["code"]=>
  155. int(%d)
  156. ["message"]=>
  157. string(%d) "ORA-%d: %s"
  158. ["offset"]=>
  159. int(0)
  160. ["sqltext"]=>
  161. string(0) ""
  162. }
  163. bool(false)