зеркало из https://github.com/mozilla/treeherder.git
84 строки
2.7 KiB
Python
84 строки
2.7 KiB
Python
import json
|
|
from datadiff import diff
|
|
|
|
from treeherder.log_parser.artifactbuildercollection import ArtifactBuilderCollection
|
|
from treeherder.log_parser.artifactbuilders import BuildbotJobArtifactBuilder
|
|
from ..sampledata import SampleData
|
|
from tests import test_utils
|
|
|
|
|
|
def do_test(log):
|
|
"""
|
|
Test a single log with the ``JobArtifactBuilder``.
|
|
|
|
``log`` - the url prefix of the log to test. Also searches for the
|
|
result file with the same prefix.
|
|
"""
|
|
|
|
url = "file://{0}".format(
|
|
SampleData().get_log_path("{0}.txt.gz".format(log)))
|
|
exp = test_utils.load_exp("{0}.jobartifact.json".format(log))
|
|
|
|
builder = BuildbotJobArtifactBuilder(url)
|
|
lpc = ArtifactBuilderCollection(url, builders=builder)
|
|
lpc.parse()
|
|
act = lpc.artifacts[builder.name]
|
|
# we can't compare the "logurl" field, because it's a fully qualified url,
|
|
# so it will be different depending on the config it's run in.
|
|
assert "logurl" in act
|
|
del(act["logurl"])
|
|
# leaving the logurl in the exp files so they are a good example of the
|
|
# expected structure.
|
|
del(exp["logurl"])
|
|
assert act == exp, diff(exp, act)
|
|
|
|
# if you want to gather results for a new test, use this
|
|
# assert act == exp, json.dumps(act, indent=4)
|
|
|
|
|
|
def test_crashtest_passing(jm, initial_data):
|
|
"""Process a job with a single log reference."""
|
|
|
|
do_test("mozilla-central_fedora-b2g_test-crashtest-1-bm54-tests1-linux-build50")
|
|
|
|
|
|
def test_opt_test_failing(jm, initial_data):
|
|
"""Process log with printlines and errors"""
|
|
do_test("mozilla-central_mountainlion_test-mochitest-2-bm80-tests1-macosx-build138")
|
|
|
|
|
|
def test_build_failing(jm, initial_data):
|
|
"""Process a job with a single log reference."""
|
|
|
|
do_test("mozilla-central-macosx64-debug-bm65-build1-build15")
|
|
|
|
|
|
def test_mochitest_debug_passing(jm, initial_data):
|
|
"""Process a job with a single log reference."""
|
|
|
|
do_test("mozilla-central_mountainlion-debug_test-mochitest-2-bm80-tests1-macosx-build93")
|
|
|
|
|
|
def test_mochitest_pass(jm, initial_data):
|
|
"""Process a job with a single log reference."""
|
|
|
|
do_test("mozilla-central_mountainlion_test-mochitest-2-bm77-tests1-macosx-build141")
|
|
|
|
|
|
def test_mochitest_fail(jm, initial_data):
|
|
"""Process a job with a single log reference."""
|
|
|
|
do_test("mozilla-esr17_xp_test_pgo-mochitest-browser-chrome-bm74-tests1-windows-build12")
|
|
|
|
|
|
def test_mochitest_process_crash(jm, initial_data):
|
|
"""Test a mochitest log that has PROCESS-CRASH """
|
|
|
|
do_test("mozilla-inbound_ubuntu64_vm-debug_test-mochitest-other-bm53-tests1-linux-build122")
|
|
|
|
|
|
def test_jetpack_fail(jm, initial_data):
|
|
"""Process a job with a single log reference."""
|
|
|
|
do_test("ux_ubuntu32_vm_test-jetpack-bm67-tests1-linux-build16")
|