--- /dev/null
+++ b/expected/message_1.out
@@ -0,0 +1,44 @@
+\set VERBOSITY terse
+-- predictability
+SET synchronous_commit = on;
+SELECT 'init' FROM pg_create_logical_replication_slot('regression_slot', 'wal2json');
+ ?column? 
+----------
+ init
+(1 row)
+
+SELECT 'msg1' FROM pg_logical_emit_message(true, 'wal2json', 'this is a\ message');
+ERROR:  function pg_logical_emit_message(boolean, unknown, unknown) does not exist at character 20
+SELECT 'msg2' FROM pg_logical_emit_message(false, 'wal2json', 'this is "another" message');
+ERROR:  function pg_logical_emit_message(boolean, unknown, unknown) does not exist at character 20
+SELECT 'msg3' FROM pg_logical_emit_message(false, 'wal2json', E'\\x546170697275732074657272657374726973'::bytea);
+ERROR:  function pg_logical_emit_message(boolean, unknown, bytea) does not exist at character 20
+SELECT 'msg4' FROM pg_logical_emit_message(false, 'wal2json', E'\\x5072696f646f6e746573206d6178696d7573'::bytea);
+ERROR:  function pg_logical_emit_message(boolean, unknown, bytea) does not exist at character 20
+SELECT 'msg5' FROM pg_logical_emit_message(false, 'wal2json', E'\\x436172796f6361722062726173696c69656e7365'::bytea);
+ERROR:  function pg_logical_emit_message(boolean, unknown, bytea) does not exist at character 20
+BEGIN;
+SELECT 'msg6' FROM pg_logical_emit_message(true, 'wal2json', 'this message will not be printed');
+ERROR:  function pg_logical_emit_message(boolean, unknown, unknown) does not exist at character 20
+SELECT 'msg7' FROM pg_logical_emit_message(false, 'wal2json', 'this message will be printed even if the transaction is rollbacked');
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+ROLLBACK;
+BEGIN;
+SELECT 'msg8' FROM pg_logical_emit_message(true, 'wal2json', 'this is message #1');
+ERROR:  function pg_logical_emit_message(boolean, unknown, unknown) does not exist at character 20
+SELECT 'msg9' FROM pg_logical_emit_message(false, 'wal2json', 'this message will be printed before message #1');
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+SELECT 'msg10' FROM pg_logical_emit_message(true, 'wal2json', 'this is message #2');
+ERROR:  current transaction is aborted, commands ignored until end of transaction block
+COMMIT;
+SELECT data FROM pg_logical_slot_get_changes('regression_slot', NULL, NULL, 'pretty-print', '1');
+ data 
+------
+(0 rows)
+
+SELECT 'stop' FROM pg_drop_replication_slot('regression_slot');
+ ?column? 
+----------
+ stop
+(1 row)
+
