diff options
Diffstat (limited to 'ext/sqlite3/tests/sqlite3_15_open_error-win.phpt')
-rw-r--r-- | ext/sqlite3/tests/sqlite3_15_open_error-win.phpt | 37 |
1 files changed, 37 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 0000000..6289fac --- /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 |