diff options
-rw-r--r-- | ext/sqlite3/tests/sqlite3_15_open_error-win.phpt | 37 | ||||
-rw-r--r-- | ext/sqlite3/tests/sqlite3_15_open_error.phpt | 3 |
2 files changed, 40 insertions, 0 deletions
diff --git a/ext/sqlite3/tests/sqlite3_15_open_error-win.phpt b/ext/sqlite3/tests/sqlite3_15_open_error-win.phpt new file mode 100644 index 0000000000..6289fac849 --- /dev/null +++ b/ext/sqlite3/tests/sqlite3_15_open_error-win.phpt @@ -0,0 +1,37 @@ +--TEST-- +SQLite3::open error test +--SKIPIF-- +<?php +if(substr(PHP_OS, 0, 3) != 'WIN' ) { + die('skip windows only test'); +} +require_once(__DIR__ . '/skipif.inc'); +?> +--FILE-- +<?php +$sysroot = exec('echo %systemroot%'); +$icacls = "$sysroot\\System32\\icacls.exe"; +$user = get_current_user(); +$unreadable = __DIR__ . '/unreadable.db'; + +touch($unreadable); +$cmd = $icacls . ' ' . $unreadable . ' /inheritance:r /deny ' . $user . ':(F,M,R,RX,W)'; +exec($cmd); + +try { + $db = new SQLite3($unreadable); +} catch (Exception $e) { + echo $e . "\n"; +} +echo "Done\n"; + +$cmd = $icacls . ' ' . $unreadable . ' /grant ' . $user . ':(F,M,R,RX,W)'; +exec($cmd); +unlink($unreadable); +?> +--EXPECTF-- +exception 'Exception' with message 'Unable to open database: %s' in %ssqlite3_15_open_error-win.php:%d +Stack trace: +#0 %ssqlite3_15_open_error-win.php(%d): SQLite3->__construct('%s') +#1 {main} +Done diff --git a/ext/sqlite3/tests/sqlite3_15_open_error.phpt b/ext/sqlite3/tests/sqlite3_15_open_error.phpt index f296f82778..9b0496f889 100644 --- a/ext/sqlite3/tests/sqlite3_15_open_error.phpt +++ b/ext/sqlite3/tests/sqlite3_15_open_error.phpt @@ -2,6 +2,9 @@ SQLite3::open error test --SKIPIF-- <?php +if(substr(PHP_OS, 0, 3) == 'WIN' ) { + die('skip non windows test'); +} require_once(dirname(__FILE__) . '/skipif.inc'); if (posix_geteuid() == 0) { die('SKIP Cannot run test as root.'); |