#!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 --glob < ' Continuation: '/B*/C*-> ' END .testcase 111 .prompt 'abc> ' '123> ' -show .check < ' Continuation: '123> ' END .testcase 112 .prompt -- --first --second .prompt --show .check < ' Continuation: '/B*/C*> ' END .testcase 120 --error-prefix ERROR: .prompt show .check < ' END .testcase 130 .prompt --reset .help prompt .check < '; .testcase 1001 SELECT shell_prompt_test(NULL,'SELECT'); .check --glob ' *;*-> '; .testcase 1002 SELECT shell_prompt_test(NULL,'SELECT ((("'); .check --glob ' *[ m]")));*-> '; .testcase 1003 SELECT shell_prompt_test(NULL,'SELECT ((()['); .check --glob ' *[ m]]));*-> '; .testcase 1004 SELECT shell_prompt_test(NULL,'SELECT '''); .check --glob " *[ m]';*-> "; .testcase 1005 SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN'); .check --glob " *[ m];END;*-> "; .testcase 1006 SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN SELECT (((['); .check --glob " *[ m]])));END;*-> "; .testcase 1007 SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN SELECT ((/*a(((''bc'); .check --glob " *[ m][*]/));END;*-> "; .testcase 1008 SELECT shell_prompt_test(NULL,'CREATE TRIGGER t1 BEGIN SELECT 1;'); .check --glob " *[ m]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 --glob '*SQLite-3.# *test.db*-> '; .testcase 3000 SELECT shell_prompt_test('(/A-/V)'); .check --glob '(SQLite-3.#.#)' .testcase 3001 SELECT shell_prompt_test('(/A-/v)'); .check --glob '(SQLite-3.#)' .testcase 3002 SELECT shell_prompt_test('(/A-/D%Y-%m-%dT%H:%M:%S/D)'); .check --glob '(SQLite-20#-#-#T#:#:#)'