66 lines
2.1 KiB
Python
66 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
# coding=UTF-8
|
|
|
|
from os import walk
|
|
|
|
import mozunit
|
|
import pytest
|
|
from conftest import fspath
|
|
|
|
|
|
def test_no_dump_files(check_for_crashes):
|
|
"""Test that check_for_crashes returns 0 if no dumps are present."""
|
|
assert 0 == check_for_crashes()
|
|
|
|
|
|
@pytest.mark.parametrize("minidump_files", [3], indirect=True)
|
|
def test_dump_count(check_for_crashes, minidump_files):
|
|
"""Test that check_for_crashes returns the number of crash dumps."""
|
|
assert 3 == check_for_crashes()
|
|
|
|
|
|
def test_dump_directory_unicode(request, check_for_crashes, tmpdir, capsys):
|
|
"""Test that check_for_crashes can handle unicode in dump_directory."""
|
|
from conftest import minidump_files
|
|
|
|
tmpdir = tmpdir.ensure("🍪", dir=1)
|
|
minidump_files = minidump_files(request, tmpdir)
|
|
|
|
assert 1 == check_for_crashes(dump_directory=fspath(tmpdir), quiet=False)
|
|
|
|
out, _ = capsys.readouterr()
|
|
assert fspath(minidump_files[0]["dmp"]) in out
|
|
assert "🍪" in out
|
|
|
|
|
|
def test_test_name_unicode(check_for_crashes, minidump_files, capsys):
|
|
"""Test that check_for_crashes can handle unicode in dump_directory."""
|
|
assert 1 == check_for_crashes(test_name="🍪", quiet=False)
|
|
|
|
out, err = capsys.readouterr()
|
|
assert "| 🍪" in out
|
|
|
|
|
|
@pytest.mark.parametrize("keep", [True, False, None])
|
|
def test_minidump_files_are_cleaned_up_or_preserved_in_original_location(
|
|
request, check_for_crashes, tmpdir, keep
|
|
):
|
|
from conftest import minidump_files
|
|
|
|
tmpdir = tmpdir.ensure("test", dir=1)
|
|
minidump_files = minidump_files(request, tmpdir)
|
|
|
|
# Make sure that minidump files are present in the temporary location.
|
|
minidump_files_in_dir = next(walk(tmpdir), (None, None, []))[2]
|
|
assert len(minidump_files_in_dir) == 2
|
|
|
|
check_for_crashes(dump_directory=fspath(tmpdir), quiet=False, keep=keep)
|
|
|
|
# Make sure that minidump files are preserved if keep=True or
|
|
# removed otherwise.
|
|
minidump_files_in_dir = next(walk(tmpdir), (None, None, []))[2]
|
|
assert len(minidump_files_in_dir) == (2 if keep is True else 0)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
mozunit.main()
|