for the ".prompt" command of the CLI. FossilOrigin-Name: bfe9df1bf4660ce6bdfd11a4f06d32694c93750c7bc0a6432459d9f1089eace4
141 lines
3.0 KiB
PL/PgSQL
141 lines
3.0 KiB
PL/PgSQL
#!sqlite3
|
|
#
|
|
# 2026-04-11
|
|
#
|
|
# The author disclaims copyright to this source code. In place of
|
|
# a legal notice, here is a blessing:
|
|
#
|
|
# May you do good and not evil.
|
|
# May you find forgiveness for yourself and forgive others.
|
|
# May you share freely, never taking more than you give.
|
|
#
|
|
#***********************************************************************
|
|
#
|
|
# Tests for the .prompt command and prompt rendering.
|
|
#
|
|
# ./sqlite3 test/shell-prompt.sql
|
|
#
|
|
|
|
.testcase setup
|
|
.open -new test.db
|
|
.mode list -quote off -escape ascii
|
|
.prompt --hard-reset
|
|
.check ''
|
|
|
|
.testcase 100
|
|
.prompt
|
|
.check ''
|
|
|
|
.testcase 110
|
|
.prompt --show
|
|
.check <<END
|
|
Main prompt: 'SQLite /f> '
|
|
Continuation: '/B.../H> '
|
|
END
|
|
.testcase 111
|
|
.prompt 'abc> ' '123> ' -show
|
|
.check <<END
|
|
Main prompt: 'abc> '
|
|
Continuation: '123> '
|
|
END
|
|
.testcase 112
|
|
.prompt -- --first --second
|
|
.prompt --show
|
|
.check <<END
|
|
Main prompt: '--first'
|
|
Continuation: '--second'
|
|
END
|
|
.testcase 113
|
|
.prompt --reset --show
|
|
.check <<END
|
|
Main prompt: 'SQLite /f> '
|
|
Continuation: '/B.../H> '
|
|
END
|
|
|
|
.testcase 120 --error-prefix ERROR:
|
|
.prompt show
|
|
.check <<END
|
|
ERROR: .prompt show
|
|
ERROR: ^--- use quotes around the prompt string
|
|
END
|
|
|
|
.testcase 121
|
|
.prompt 'show'
|
|
.check ''
|
|
.testcase 122
|
|
.prompt --show
|
|
.check <<END
|
|
Main prompt: 'show'
|
|
Continuation: '/B.../H> '
|
|
END
|
|
|
|
.testcase 130
|
|
.prompt --reset
|
|
.help prompt
|
|
.check <<END
|
|
.prompt MAIN CONTINUE Replace the standard prompts
|
|
--hard-reset Unset SQLITE_PS1/2 and then --reset
|
|
--reset Revert to default prompts
|
|
--show Show the current prompt strings
|
|
-- No more options. Subsequent args are prompts
|
|
END
|
|
|
|
.testcase 140 --error-prefix ERROR:
|
|
.prompt --xyz
|
|
.check <<END
|
|
ERROR: .prompt --xyz
|
|
ERROR: ^--- unknown option
|
|
END
|
|
|
|
|
|
.testcase 1000
|
|
SELECT shell_prompt_test(NULL);
|
|
.check 'SQLite test.db> ';
|
|
.testcase 1001
|
|
SELECT shell_prompt_test(NULL,'SELECT');
|
|
.check ' ...;> ';
|
|
.testcase 1002
|
|
SELECT shell_prompt_test(NULL,'SELECT ((("');
|
|
.check ' ...")));> ';
|
|
.testcase 1003
|
|
SELECT shell_prompt_test(NULL,'SELECT ((()[');
|
|
.check ' ...]));> ';
|
|
.testcase 1004
|
|
SELECT shell_prompt_test(NULL,'SELECT ''');
|
|
.check " ...';> ";
|
|
.testcase 1005
|
|
SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN');
|
|
.check " ...;END;> ";
|
|
.testcase 1006
|
|
SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN SELECT ((([');
|
|
.check " ...])));END;> ";
|
|
.testcase 1007
|
|
SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN SELECT ((/*a(((''bc');
|
|
.check " ...*/));END;> ";
|
|
.testcase 1008
|
|
SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN SELECT 1;');
|
|
.check " ...END;> ";
|
|
|
|
.testcase 2000
|
|
.prompt 'SQLite/x-txn$/:>/; '
|
|
SELECT shell_prompt_test(NULL);
|
|
.check 'SQLite> ';
|
|
.testcase 2001
|
|
BEGIN;
|
|
SELECT shell_prompt_test(NULL);
|
|
.check 'SQLite-txn$ ';
|
|
.testcase 2002
|
|
ROLLBACK;
|
|
SELECT shell_prompt_test(NULL);
|
|
.check 'SQLite> ';
|
|
.testcase 2003
|
|
.prompt -- '--show '
|
|
SELECT shell_prompt_test(NULL);
|
|
.check '--show ';
|
|
.testcase 2004
|
|
.prompt --reset
|
|
SELECT shell_prompt_test(NULL);
|
|
.check 'SQLite test.db> ';
|
|
|
|
.testcase
|