You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.6 KiB
Python
33 lines
1.6 KiB
Python
#!/usr/bin/env python3
|
|
|
|
from mosq_test_helper import *
|
|
|
|
def do_test(file, stderr, rc_expected):
|
|
|
|
cmd = [mosq_test.get_build_root()+'/apps/db_dump/mosquitto_db_dump',
|
|
f'db_dump/{file}'
|
|
]
|
|
|
|
res = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=1, encoding='utf-8')
|
|
if res.stderr != stderr:
|
|
print(res.stderr)
|
|
raise mosq_test.TestError
|
|
if res.returncode != rc_expected:
|
|
print(file)
|
|
print(res.returncode)
|
|
raise mosq_test.TestError
|
|
|
|
do_test('missing.test-db', "Error: Unable to open db_dump/missing.test-db\n", 0)
|
|
do_test('bad-magic.test-db', "Error: Unrecognised file format.\n", 1)
|
|
do_test('short.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('bad-dbid-size.test-db', "Error: Incompatible database configuration (dbid size is 5 bytes, expected 8)", 1)
|
|
do_test('bad-chunk.test-db', 'Warning: Unsupported chunk "2816" of length 65696 in persistent database file at position 29. Ignoring.\n', 0)
|
|
do_test('v3-corrupt.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('v4-corrupt.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('v5-corrupt.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('v6-corrupt.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('v6-corrupt-client.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('v6-corrupt-cmsg.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('v6-corrupt-retain.test-db', "Error: Corrupt persistent database.\n", 1)
|
|
do_test('v6-corrupt-sub.test-db', "Error: Corrupt persistent database.\n", 1)
|