squad 1.93__tar.gz → 1.93.1__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {squad-1.93 → squad-1.93.1}/CHANGELOG.md +5 -0
- {squad-1.93/squad.egg-info → squad-1.93.1}/PKG-INFO +1 -1
- {squad-1.93 → squad-1.93.1}/doc/intro.rst +3 -1
- {squad-1.93 → squad-1.93.1}/squad/ci/models.py +1 -3
- {squad-1.93 → squad-1.93.1}/squad/core/models.py +6 -0
- {squad-1.93 → squad-1.93.1}/squad/core/tasks/__init__.py +2 -0
- {squad-1.93 → squad-1.93.1}/squad/plugins/lib/base_log_parser.py +20 -5
- {squad-1.93 → squad-1.93.1}/squad/plugins/linux_log_parser_build.py +4 -2
- squad-1.93.1/squad/version.py +1 -0
- {squad-1.93 → squad-1.93.1/squad.egg-info}/PKG-INFO +1 -1
- {squad-1.93 → squad-1.93.1}/squad.egg-info/SOURCES.txt +2 -0
- {squad-1.93 → squad-1.93.1}/test/ci/test_models.py +2 -2
- {squad-1.93 → squad-1.93.1}/test/core/test_tasks.py +22 -1
- squad-1.93.1/test/plugins/linux_log_parser/different-numbers-in-function-name-oops.log +53 -0
- squad-1.93.1/test/plugins/linux_log_parser/duplicated-oops.log +53 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/test_linux_log_parser.py +25 -12
- {squad-1.93 → squad-1.93.1}/test/plugins/test_log_parser_base.py +40 -7
- squad-1.93/squad/version.py +0 -1
- {squad-1.93 → squad-1.93.1}/.ackrc +0 -0
- {squad-1.93 → squad-1.93.1}/.coveragerc +0 -0
- {squad-1.93 → squad-1.93.1}/.ctags +0 -0
- {squad-1.93 → squad-1.93.1}/.dockerignore +0 -0
- {squad-1.93 → squad-1.93.1}/.gitignore +0 -0
- {squad-1.93 → squad-1.93.1}/.mailmap +0 -0
- {squad-1.93 → squad-1.93.1}/.readthedocs.yml +0 -0
- {squad-1.93 → squad-1.93.1}/.reuse/dep5 +0 -0
- {squad-1.93 → squad-1.93.1}/COPYING +0 -0
- {squad-1.93 → squad-1.93.1}/COPYRIGHTS +0 -0
- {squad-1.93 → squad-1.93.1}/Dockerfile +0 -0
- {squad-1.93 → squad-1.93.1}/LICENSES/GPL-3.0-or-later.txt +0 -0
- {squad-1.93 → squad-1.93.1}/LICENSES/MIT.txt +0 -0
- {squad-1.93 → squad-1.93.1}/LICENSES/OFL-1.1.txt +0 -0
- {squad-1.93 → squad-1.93.1}/MANIFEST.in +0 -0
- {squad-1.93 → squad-1.93.1}/Procfile +0 -0
- {squad-1.93 → squad-1.93.1}/README.rst +0 -0
- {squad-1.93 → squad-1.93.1}/babel.cfg +0 -0
- {squad-1.93 → squad-1.93.1}/dev-docker +0 -0
- {squad-1.93 → squad-1.93.1}/doc/.gitignore +0 -0
- {squad-1.93 → squad-1.93.1}/doc/Makefile +0 -0
- {squad-1.93 → squad-1.93.1}/doc/api.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/ci.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/conf.py +0 -0
- {squad-1.93 → squad-1.93.1}/doc/hacking.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/index.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/install.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/lava_usecase.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/plugins.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/quickstart.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/translating.rst +0 -0
- {squad-1.93 → squad-1.93.1}/doc/tuxsuite_usecase.rst +0 -0
- {squad-1.93 → squad-1.93.1}/docker/db-dumped +0 -0
- {squad-1.93 → squad-1.93.1}/docker/db-to-be-restored +0 -0
- {squad-1.93 → squad-1.93.1}/docker/docker-compose.yml +0 -0
- {squad-1.93 → squad-1.93.1}/docker/extra_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/docker/init-db.sh +0 -0
- {squad-1.93 → squad-1.93.1}/docker/rabbitmq.config +0 -0
- {squad-1.93 → squad-1.93.1}/docker/squad-apache.conf +0 -0
- {squad-1.93 → squad-1.93.1}/docker-compose.yaml +0 -0
- {squad-1.93 → squad-1.93.1}/manage.py +0 -0
- {squad-1.93 → squad-1.93.1}/package-lock.json +0 -0
- {squad-1.93 → squad-1.93.1}/package.json +0 -0
- {squad-1.93 → squad-1.93.1}/pytest.ini +0 -0
- {squad-1.93 → squad-1.93.1}/requirements-dev.txt +0 -0
- {squad-1.93 → squad-1.93.1}/requirements.txt +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/build +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/check-ci +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/check-ignore +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/community_connector/main.js +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/community_connector/manifest.json +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/dogfood +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/get-metrics +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/get-tests +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/git-build +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/pytest +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/rabbitmq-server +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/release +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/release-docker +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/squad-config +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/test-ci +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/test-docker +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-ci-jobs +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-metrics +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-test-data +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/testdata/gen-tests +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/testdata/setup-dev +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/testdata/submit-ci-jobs +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/testdata/submit-test-data +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/translate +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/travis-lava +0 -0
- {squad-1.93 → squad-1.93.1}/scripts/update-translation-files +0 -0
- {squad-1.93 → squad-1.93.1}/setup.cfg +0 -0
- {squad-1.93 → squad-1.93.1}/setup.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/admin.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/apps.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/ci.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/filters.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/prometheus.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/rest.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/urls.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/utils.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/api/views.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/celery.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/admin.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/apps.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/backend/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/backend/fake.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/backend/lava.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/backend/null.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/backend/tuxsuite.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/exceptions.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/management/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/create_tuxsuite_boot_tests.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/listen.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/management/commands/testfetch.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0001_initial.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0002_auto_20170406_1252.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0003_backend_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0004_testjob_failure.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0005_remove_listener_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0006_simplify_backend_loading.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0007_auto_20170517_1736.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0008_testjob_testrun.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0009_slug_pattern.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0010_testjob_can_resubmit.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0011_testjob_resubmitted_count.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0012_testjob_build.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0013_testjob_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0014_testjob_target_build.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0015_testjob_populate_target_build.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0016_backend_max_fetch_attempts.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0017_testjob_fetch_attempts.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0018_testjob_dates.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0019_add_fake_backend.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0020_backend_settings_field.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0021_testjob_parent_job.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0022_backend_poll_enabled.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0023_remove_testjob_build.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0024_fix_testjob_environment_validation.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0025_backend_listen_enabled.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0026_job_start_end_time.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0027_add_tuxsuite_implementation_type.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0028_create_testjob_indexes.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0029_create_testjob_results_input.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/0030_testjob_subtasks_count.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/migrations/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/tasks.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/templates/squad/ci/testjob_resubmit.html.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/templates/squad/ci/testjob_resubmit.txt.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/templatetags/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/templatetags/filter_jobs.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/ci/utils.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/compat.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/container_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/admin.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/apps.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/callback.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/comparison.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/failures.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/history.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/locale/django.pot +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/locale/es_MX/LC_MESSAGES/django.po +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/locale/pl/LC_MESSAGES/django.po +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/locale/pt/LC_MESSAGES/django.po +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/locale/pt_BR/LC_MESSAGES/django.po +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/compute_build_summaries.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/compute_project_statuses.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/fill_test_metadata.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/fix_squadplugin_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/import_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/import_data.rst +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/migrate_test_runs.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/populate_metric_build_and_environment.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/populate_test_build_and_environment.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/prepdump.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/run_log_parser.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/send-email.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/update_project_statuses.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/management/commands/users.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0001_initial.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0002_auto_20160525_1403.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0003_testrun_log_file.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0004_group_user_groups.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0005_token.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0006_auto_20160826_2242.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0007_testrun_data_processed.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0008_status.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0009_testrun_status_recorded.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0010_testrun_datetime.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0011_testrun_metadata_fields.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0012_build_datetime.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0013_testrun_resubmit_url.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0014_testrun_metadata_file.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0015_attachment.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0016_project_is_public.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0017_slug_validator.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0018_build_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0019_build_version.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0020_build_ordering.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0021_global_tokens.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0022_projectstatus.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0023_subscription.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0024_project_build_completion_threshold.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0025_unique_testrun_job_id.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0026_testrun_result_accept_null.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0027_project_notification_strategy.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0028_suite_and_test_name_length.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0029_subscription_email_formats.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0030_remove_project_build_completion_threshold.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0031_environment_expected_test_runs.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0032_testrun_completed.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0033_drop_debversion.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0034_prepare_to_remove_build_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0035_remove_build_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0036_status_tests_skip.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0037_project_status_test_summary_fields.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0038_populate_project_status_cache.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0039_orderings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0040_remove_subscription_html.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0041_projectstatus_notified.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0042_set_projectstatus_notified.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0043_project_status_build.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0044_project_html_mail.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0045_adminsubscription.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0046_projectstatus_last_updated.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0047_populate_projectstatus_last_updated.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0048_moderate_notifications.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0049_projectstatus_plural.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0050_projectstatus_finished.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0051_build_status.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0052_recreate_projectstatus_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0053_remove_projectstatus_previous.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0054_custom_email_template.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0055_emailtemplate_subject.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0056_project_description.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0057_projectstatus_has_metrics.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0058_populate_projectstatus_has_metrics.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0059_project_important_metadata_keys.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0060_test_log.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0061_project_enabled_plugins_list.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0062_project_allow_empty_enabled_plugin_list.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0063_project_wait_before_notification.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0064_project_notification_timeout.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0065_projectstatus_notified_on_timeout.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0066_environment_description.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0067_accept_blank_suite_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0068_suite_version.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0069_suite_metadata.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0070_create_suite_test_and_metric_metadata.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0071_migrate_old_tokens.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0072_group_description.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0073_auto_20180420_1643.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0074_add_indexes.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0075_update_project_enabled_plugin_list.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0076_patch_builds.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0077_knownissue.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0078_cache_test_run_counts.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0079_init_cache_test_run_counts.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0080_auto_20180810_0047.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0081_status_has_metrics.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0082_populate_status_has_metrics.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0083_rename_knownissue_environments.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0084_projectstatus_regressions_fixes.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0085_projectstatus_defaults.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0086_xfail.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0087_test_known_issues.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0088_user_subscriptions.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0089_test_has_known_issues.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0090_populate_test_has_known_issues.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0091_notification_delivery_remove_unique_status.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0092_annotation.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0093_historicalemailtemplate.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0094_populatehistoricalemailtemplate.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0095_project_data_retention_days.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0096_build_keep_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0097_build_placeholder.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0098_blank_annotation.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0099_metricthreshold.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0100_metric_is_outlier.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0101_project_project_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0102_projectstatus_null_metric_summary.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0103_populate_project_status.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0104_delayedreport.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0105_delayed_report_error_message.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0106_delayedreport_output_subject.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0107_move_notification_strategy.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0108_add_email_template_validator.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0109_group_member.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0110_move_users_from_django_groups_to_squad_groups.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0111_remove_group_user_groups.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0112_user_namespaces.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0113_group_project_blank_name_and_description.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0114_project_enabled_plugin_list_can_be_blank.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0115_fix_slug_validation.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0116_make_group_membership_unique.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0117_drop_obsolete_token_model.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0118_project_is_archived.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0119_i18n.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0120_buildsummary.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0121_add_password_patchsource.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0122_fix_patchsource_url_and_token.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0123_django_upgrade_missing_migrations.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0124_set_default_expected_test_runs_to_zero.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0125_fix_missing_status_has_metrics_for_testruns.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0126_metricthreshold_environment.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0127_metric_thresholds_migrate_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0128_metric_thresholds_remove_proj_col.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0129_projectstatus_nullable_notified_on_timeout.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0130_project_status_baseline_next.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0131_create_squad_auth_group_and_add_users.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0132_attachment_mimetype.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0133_append_project_permissions_to_squad_auth_group.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0134_longer_metric_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0135_add_privileged_access_level.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0136_migrate_submitters_to_privileged.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0137_patchsource_token_null.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0138_metric_unit.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0139_nullable_test_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0140_increase_gerrit_password_length.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0141_remove_test_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0142_add_testrun_file_storage.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0143_attachment_storage.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0144_attachment_data_null.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0145_pluginscratch.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0146_deprecate_testrun_and_attachment_data_fields.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0147_add_build_and_environment_to_test.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0148_remove_legacy_storage_fields.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0149_build_patch_url.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0150_add_new_notification_strategy.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0151_callback.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0152_add_build_patch_notified.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0153_callback_make_response_content_blob.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0154_project_add_force_finishing_builds_field.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0155_add_build_and_environment_to_metric.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0156_nullable_metric_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0157_remove_metric_name.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0158_add_metric_comparison_to_projectstatus.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0159_nullable_metricthreshold_value.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0160_add_project_to_metricthreshold.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0161_add_metricthreshold_perm_to_squad_group.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0162_project_add_build_confidence_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0163_hirtoricalemailtemplate_update.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0164_django_update.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0165_buildsummary_uniqueness.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0166_build_is_release.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0167_add_project_datetime.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0168_add_group_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/0169_userpreferences.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/migrations/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/notification.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/plugins.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/queries.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/statistics.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/tasks/exceptions.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/tasks/notification.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/base.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/diff.html.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/diff.txt.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/failed_test_jobs.html.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/failed_test_jobs.txt.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/moderation.html.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templates/squad/notification/moderation.txt.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templatetags/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/templatetags/squad_notification.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/core/utils.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/__main__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/admin.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/apps.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/badges.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/build_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/ci.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/comparison.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/extract.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/forms.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/group_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/locale/django.pot +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/locale/pl/LC_MESSAGES/django.po +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/locale/pt/LC_MESSAGES/django.po +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/locale/pt_BR/LC_MESSAGES/django.po +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/management/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/management/commands/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/management/commands/get_token.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/metrics.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/project_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/queries.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/setup.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/compare.css +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/download +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/download.conf +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/favicon.ico +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/main.css +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/attach_select2.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/build.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/build_compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/build_list.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/charts.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/common.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/config.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/annotation.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/build_compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/build_list_compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/build_release.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/cancel.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/charts.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/fetch.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/filter.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/metricThreshold.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/project_compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/resubmit.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/controllers/testjobs_progress.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/metric.threshold.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/project_compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/showHide.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad/table.js +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/static/squad_sign.svg +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/401.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/404.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/django/rest_framework/api.html +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/django/squad/_user_menu.html +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_builds_table.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_env_suite_data.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_metadata.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_pagination.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_permissions.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_project_list.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_regressions_and_fixes.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_results_table.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_results_transitions_filter.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_subscribe.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_envbox.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_suitebox.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_summary.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_results_table.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_run_metric.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_test_run_test.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_unfinished_build.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/_user_menu.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/base.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build-nav.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_callbacks.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_metadata.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_metrics.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/build_settings.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/builds.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/compare.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/compare_builds.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/compare_projects.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group-nav.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/advanced.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/base.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/delete.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/index.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/members.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/new_group.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/group_settings/new_project.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/index.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/knownissues.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/login.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/metrics.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project-nav.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/_threshold_table.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/advanced.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/base.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/build_confidence.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/delete.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/environments.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/index.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/project_settings/thresholds.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_history.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run_suite_metrics.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run_suite_test_details.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/test_run_suite_tests.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/testjob.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/testjobs.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/testjobs_progress.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/tests-details-nav.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/tests.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/api_token.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/base.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/profile.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/projects.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/subscriptions.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templates/squad/user_settings/user_preferences.jinja2 +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templatetags/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/templatetags/squad.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/tests.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/urls.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/user_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/utils.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/frontend/views.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/http.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/jinja2.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/mail.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/manage.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/plugins/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/plugins/example.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/plugins/gerrit.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/plugins/github.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/plugins/lib/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/plugins/linux_log_parser.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/run/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/run/__main__.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/run/listener.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/run/scheduler.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/run/worker.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/socialaccount.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/urls.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad/wsgi.py +0 -0
- {squad-1.93 → squad-1.93.1}/squad.egg-info/dependency_links.txt +0 -0
- {squad-1.93 → squad-1.93.1}/squad.egg-info/entry_points.txt +0 -0
- {squad-1.93 → squad-1.93.1}/squad.egg-info/requires.txt +0 -0
- {squad-1.93 → squad-1.93.1}/squad.egg-info/top_level.txt +0 -0
- {squad-1.93 → squad-1.93.1}/squad.svg +0 -0
- {squad-1.93 → squad-1.93.1}/test/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/benchmarks.csv +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/benchmarks.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/definition.yaml +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/metadata.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/test_ci.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/test_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/test_rest.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/test_run.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/tests.csv +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/tests.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/tests.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/tests_log.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/tests_two.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/api/twoline_definition.yaml +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/example-broken-log.yaml +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/example-lava-log.yaml +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/lava.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/test_fake.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/test_lava.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/test_real_lava.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/test_tuxsuite.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/tuxsuite_test_failed_result_sample.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/backend/tuxsuite_test_result_sample.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/test_listen.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/ci/test_tasks.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_attachment.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_build.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_build_summary.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_callback.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_emailtemplate.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_failures.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_group.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_historical_emailtemplate.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_history.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/1/default/1/metadata.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/1/default/1/metrics.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/metadata.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/metrics.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/screenshot.png +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data_input/2/default/2/tests.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_import_data_missing_metadata/1/1/tests.json +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_known_issues.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_metric.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_metric_comparison.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_metric_threshold.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_metrics_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_metrics_summary.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_notification.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_notification_delivery.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_patch_source.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_project.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_project_status.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_statistics.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_tasks_notification.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_test.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_test_comparison.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_test_data.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_test_run.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_test_summary.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_update_project_statuses.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_user_namespace.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/core/test_utils.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_basics.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_comparison.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_get_token_command.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_group_settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_history.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_template_tags.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_test_job.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_tests.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/frontend/test_utils.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/integration/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/integration/plugins/test_tradefed.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/integration/plugins/tradefed-output-20220608105250.tar.xz +0 -0
- {squad-1.93 → squad-1.93.1}/test/integration/test_build_notification_from_ci.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/javascript.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/karma.conf.js +0 -0
- {squad-1.93 → squad-1.93.1}/test/mock.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/performance.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/__init__.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/internal-error-oops.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kasan.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kcsan_full_log.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kcsan_simple.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernel_bug_and_invalid_opcode.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelexceptiontrace.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelexceptiontrace_without_squarebraces.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelpanic-multiline.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kernelpanic-single-and-multiline.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/kfence.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/multiple_issues_dmesg.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/oops.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser/rcu_warning.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_arm64_25103120.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_arm_24958120.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_arm_26001178.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_i386_25043392.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_i386_25431539.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_riscv_24688299.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_x86_64_25086964.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/clang_x86_64_26103794.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm64_24934206.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm_24951924.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm_25044425.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_arm_25078650.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_i386_25044475.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_riscv_24715191.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_s390_26103313.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_sh_26103296.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_x86_64_24932905.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/linux_log_parser_build/gcc_x86_64_26103833.log +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/test_gerrit.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/test_github.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/test_linux_log_parser_build.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/plugins/test_plugin.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/settings.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/test_architecture.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/test_code_quality.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/test_cors.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/test_i18n.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/test_mail.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/test_pending_migrations.py +0 -0
- {squad-1.93 → squad-1.93.1}/test/unit/test_annotation.js +0 -0
- {squad-1.93 → squad-1.93.1}/test/unit/test_cancel.js +0 -0
- {squad-1.93 → squad-1.93.1}/test/unit/test_charts.js +0 -0
- {squad-1.93 → squad-1.93.1}/test/unit/test_compare.js +0 -0
- {squad-1.93 → squad-1.93.1}/test/unit/test_filter.js +0 -0
- {squad-1.93 → squad-1.93.1}/test/unit/test_resubmit.js +0 -0
@@ -1,3 +1,8 @@
|
|
1
|
+
# 1.93.1
|
2
|
+
|
3
|
+
This 1.93.1 release has minor bug fixes on log parser plugin and it silences a warning
|
4
|
+
when receiving a job that already exist within a build.
|
5
|
+
|
1
6
|
# 1.93
|
2
7
|
|
3
8
|
This 1.93 release adds support for a build log parser as well as some other minor bug fixes and improvements.
|
@@ -232,7 +232,9 @@ strings. The following fields are recognized:
|
|
232
232
|
test run
|
233
233
|
* ``datetime``: timestamp of the test run, as a ISO-8601 date
|
234
234
|
representation, with seconds. This is the representation that ``date
|
235
|
-
--iso-8601=seconds`` gives you.
|
235
|
+
--iso-8601=seconds`` gives you. If datetime is not supplied in the
|
236
|
+
metadata, the datetime of a test run will be set to the current
|
237
|
+
timestamp during creation.
|
236
238
|
* ``job_id``: identifier for the test run. Must be unique for the
|
237
239
|
project. **This field is mandatory**
|
238
240
|
* ``job_status``: string identifying the status of the project. SQUAD
|
@@ -138,10 +138,8 @@ class Backend(models.Model):
|
|
138
138
|
completed=completed,
|
139
139
|
)
|
140
140
|
test_job.testrun = testrun
|
141
|
-
except InvalidMetadata as exception:
|
141
|
+
except (DuplicatedTestJob, InvalidMetadata) as exception:
|
142
142
|
test_job.failure = str(exception)
|
143
|
-
except DuplicatedTestJob as exception:
|
144
|
-
logger.error('Failed to fetch test_job(%d): "%s"' % (test_job.id, str(exception)))
|
145
143
|
|
146
144
|
if test_job.needs_postprocessing():
|
147
145
|
# Offload postprocessing plugins to a new task
|
@@ -493,6 +493,9 @@ class Build(models.Model):
|
|
493
493
|
ordering = ['datetime']
|
494
494
|
|
495
495
|
def save(self, *args, **kwargs):
|
496
|
+
# Initialize this to timezone.now(), then if a testrun is seen with an
|
497
|
+
# earlier datetime, keep this value up to date with the earliest
|
498
|
+
# testrun.datetime (handled in ReceiveTestRun.__call__).
|
496
499
|
if not self.datetime:
|
497
500
|
self.datetime = timezone.now()
|
498
501
|
with transaction.atomic():
|
@@ -806,6 +809,9 @@ class TestRun(models.Model):
|
|
806
809
|
unique_together = ('build', 'job_id')
|
807
810
|
|
808
811
|
def save(self, *args, **kwargs):
|
812
|
+
# testrun.datetime will take datetime from the metadata if it exists
|
813
|
+
# (during ReceiveTestRun.__call__). If datetime is not in the metadata,
|
814
|
+
# set it to timezone.now()
|
809
815
|
if not self.datetime:
|
810
816
|
self.datetime = timezone.now()
|
811
817
|
if self.__metadata__:
|
@@ -178,6 +178,8 @@ class ReceiveTestRun(object):
|
|
178
178
|
|
179
179
|
testrun.refresh_from_db()
|
180
180
|
|
181
|
+
# This keeps the datetime of the build in line with the earliest
|
182
|
+
# observed testrun.datetime.
|
181
183
|
if not build.datetime or testrun.datetime < build.datetime:
|
182
184
|
build.datetime = testrun.datetime
|
183
185
|
build.save()
|
@@ -28,14 +28,29 @@ class BaseLogParser:
|
|
28
28
|
return re.compile(combined, re.S | re.M)
|
29
29
|
|
30
30
|
def remove_numbers_and_time(self, snippet):
|
31
|
-
# [
|
32
|
-
#
|
33
|
-
|
31
|
+
# [ 92.236941] CPU: 1 PID: 191 Comm: kunit_try_catch Tainted: G W 5.15.75-rc1 #1
|
32
|
+
# <4>[ 87.925462] CPU: 0 PID: 135 Comm: (crub_all) Not tainted 6.7.0-next-20240111 #14
|
33
|
+
# Remove '(Not t|T)ainted', to the end of the line.
|
34
|
+
without_tainted = re.sub(r"(Not t|T)ainted.*", "", snippet)
|
35
|
+
|
36
|
+
# x23: ffff9b7275bc6f90 x22: ffff9b7275bcfb50 x21: fff00000cc80ef88
|
37
|
+
# x20: 1ffff00010668fb8 x19: ffff8000800879f0 x18: 00000000805c0b5c
|
38
|
+
# Remove words with hex numbers.
|
39
|
+
# <3>[ 2.491276][ T1] BUG: KCSAN: data-race in console_emit_next_record / console_trylock_spinning
|
40
|
+
# -> <>[ .][ T1] BUG: KCSAN: data-race in console_emit_next_record / console_trylock_spinning
|
41
|
+
without_hex = re.sub(r"\b(?:0x)?[a-fA-F0-9]+\b", "", without_tainted)
|
42
|
+
|
43
|
+
# <>[ 1067.461794][ T132] BUG: KCSAN: data-race in do_page_fault spectre_v4_enable_task_mitigation
|
44
|
+
# -> <>[ .][ T132] BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
|
45
|
+
# But should not remove numbers from functions.
|
46
|
+
without_numbers = re.sub(
|
47
|
+
r"(0x[a-f0-9]+|[<\[][0-9a-f]+?[>\]]|\b\d+\b(?!\s*\())", "", without_hex
|
48
|
+
)
|
34
49
|
|
35
|
-
# [ .][
|
50
|
+
# <>[ .][ T132] BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
|
36
51
|
# -> BUG: KCSAN: data-race in do_page_fault spectre_v_enable_task_mitigation
|
37
52
|
without_time = re.sub(
|
38
|
-
f"
|
53
|
+
f"^<?>?{square_brackets_and_contents}({square_brackets_and_contents})?",
|
39
54
|
"",
|
40
55
|
without_numbers,
|
41
56
|
) # noqa
|
@@ -200,9 +200,11 @@ class Plugin(BasePlugin, BaseLogParser):
|
|
200
200
|
# there is a match
|
201
201
|
return None
|
202
202
|
snippet = matches[0]
|
203
|
-
|
203
|
+
without_numbers = re.sub(
|
204
|
+
r"(0x[a-f0-9]+|[<\[][0-9a-f]+?[>\]]|\b\d+\b(?!\s*\())", "", snippet
|
205
|
+
)
|
204
206
|
|
205
|
-
name = slugify(self.post_process_test_name(
|
207
|
+
name = slugify(self.post_process_test_name(without_numbers))
|
206
208
|
|
207
209
|
return name
|
208
210
|
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = '1.93.1'
|
@@ -621,6 +621,8 @@ test/plugins/test_linux_log_parser.py
|
|
621
621
|
test/plugins/test_linux_log_parser_build.py
|
622
622
|
test/plugins/test_log_parser_base.py
|
623
623
|
test/plugins/test_plugin.py
|
624
|
+
test/plugins/linux_log_parser/different-numbers-in-function-name-oops.log
|
625
|
+
test/plugins/linux_log_parser/duplicated-oops.log
|
624
626
|
test/plugins/linux_log_parser/internal-error-oops.log
|
625
627
|
test/plugins/linux_log_parser/kasan.log
|
626
628
|
test/plugins/linux_log_parser/kcsan_full_log.log
|
@@ -168,7 +168,7 @@ class BackendFetchTest(BackendTestBase):
|
|
168
168
|
|
169
169
|
@patch('django.utils.timezone.now', return_value=NOW)
|
170
170
|
@patch('squad.ci.models.Backend.get_implementation')
|
171
|
-
def
|
171
|
+
def test_fetch_sets_fetched_on_duplicated_job(self, get_implementation, __now__):
|
172
172
|
metadata = {"foo": "bar"}
|
173
173
|
tests = {"foo": "pass"}
|
174
174
|
metrics = {"bar": {"value": 1, "unit": "nuggets"}}
|
@@ -198,7 +198,7 @@ class BackendFetchTest(BackendTestBase):
|
|
198
198
|
|
199
199
|
test_job.refresh_from_db()
|
200
200
|
self.assertTrue(test_job.fetched)
|
201
|
-
self.
|
201
|
+
self.assertEqual('There is already a test run with job_id 999', test_job.failure)
|
202
202
|
|
203
203
|
@patch('django.utils.timezone.now', return_value=NOW)
|
204
204
|
@patch('squad.ci.models.Backend.get_implementation')
|
@@ -7,7 +7,7 @@ import yaml
|
|
7
7
|
from dateutil.relativedelta import relativedelta
|
8
8
|
from django.test import TestCase
|
9
9
|
from django.utils import timezone
|
10
|
-
from unittest.mock import patch
|
10
|
+
from unittest.mock import Mock, patch
|
11
11
|
|
12
12
|
|
13
13
|
from squad.core.models import Group, TestRun, Status, Build, ProjectStatus, SuiteVersion, PatchSource, KnownIssue, EmailTemplate, Callback
|
@@ -581,6 +581,27 @@ class ReceiveTestRunTest(TestCase):
|
|
581
581
|
|
582
582
|
self.assertEqual(yesterday, build.datetime)
|
583
583
|
|
584
|
+
def test_build_datetime_not_in_metadata(self):
|
585
|
+
# In the case where datetime is not in metadata, check it is set to
|
586
|
+
# timezone.now()
|
587
|
+
|
588
|
+
# Mock datetime so we can check it at the end
|
589
|
+
now_mocked = timezone.now()
|
590
|
+
with patch('django.utils.timezone.now', Mock(return_value=now_mocked)):
|
591
|
+
receive = ReceiveTestRun(self.project)
|
592
|
+
|
593
|
+
metadata = {
|
594
|
+
"job_id": '999',
|
595
|
+
"job_status": 'pass',
|
596
|
+
"job_url": 'https://example.com/jobs/999',
|
597
|
+
"build_url": 'https://example/com/builds/777',
|
598
|
+
}
|
599
|
+
|
600
|
+
receive('199', 'myenv', metadata_file=json.dumps(metadata))
|
601
|
+
build = Build.objects.get(version='199')
|
602
|
+
|
603
|
+
self.assertEqual(now_mocked, build.datetime)
|
604
|
+
|
584
605
|
@patch('squad.core.tasks.ValidateTestRun.__call__')
|
585
606
|
def test_should_validate_test_run(self, validator_mock):
|
586
607
|
validator_mock.side_effect = RuntimeError('crashed')
|
@@ -0,0 +1,53 @@
|
|
1
|
+
[ 140.297674] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
|
2
|
+
[ 140.298941] Modules linked in:
|
3
|
+
[ 140.299833] CPU: 1 UID: 0 PID: 620 Comm: kunit_try_catch_32k Tainted: G B N 6.13.0-rc7 #1
|
4
|
+
[ 140.300812] Tainted: [B]=BAD_PAGE, [N]=TEST
|
5
|
+
[ 140.301340] Hardware name: linux,dummy-virt (DT)
|
6
|
+
[ 140.302131] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
|
7
|
+
[ 140.303752] pc : kunit_test_null_dereference+0x70/0x170
|
8
|
+
[ 140.304314] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
|
9
|
+
[ 140.305223] sp : ffff800083347dc0
|
10
|
+
[ 140.305778] x29: ffff800083347e20 x28: 0000000000000000 x27: 0000000000000000
|
11
|
+
[ 140.307079] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000cc80ef80
|
12
|
+
[ 140.308158] x23: ffff9b7275bc6f90 x22: ffff9b7275bcfb50 x21: fff00000cc80ef88
|
13
|
+
[ 140.309193] x20: 1ffff00010668fb8 x19: ffff8000800879f0 x18: 00000000805c0b5c
|
14
|
+
[ 140.310184] x17: 0000000000000001 x16: fff00000da505ca0 x15: 00000000007e992b
|
15
|
+
[ 140.311172] x14: 00000000ca2562db x13: 1ffe00001815cb24 x12: fffd800018da43a2
|
16
|
+
[ 140.312208] x11: 1ffe000018da43a1 x10: fffd800018da43a1 x9 : ffff9b7275bc7018
|
17
|
+
[ 140.313293] x8 : ffff800083347cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
|
18
|
+
[ 140.314333] x5 : ffff700010668fb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
|
19
|
+
[ 140.315379] x2 : dfff800000000000 x1 : fff00000c6d21440 x0 : ffff8000800879f0
|
20
|
+
[ 140.316474] Call trace:
|
21
|
+
[ 140.316927] kunit_test_null_dereference+0x70/0x170 (P)
|
22
|
+
[ 140.317646] kunit_generic_run_threadfn_adapter+0x88/0x100
|
23
|
+
[ 140.318315] kthread+0x24c/0x2d0
|
24
|
+
[ 140.318860] ret_from_fork+0x10/0x20
|
25
|
+
[ 140.320008] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
|
26
|
+
[ 140.321163] ---[ end trace 0000000000000000 ]---
|
27
|
+
|
28
|
+
[ 112.633643] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
|
29
|
+
[ 112.635528] Modules linked in:
|
30
|
+
[ 112.636558] CPU: 0 UID: 0 PID: 621 Comm: kunit_try_catch_64k Tainted: G B N 6.13.0-rc7 #1
|
31
|
+
[ 112.637505] Tainted: [B]=BAD_PAGE, [N]=TEST
|
32
|
+
[ 112.638145] Hardware name: linux,dummy-virt (DT)
|
33
|
+
[ 112.638662] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
|
34
|
+
[ 112.639813] pc : kunit_test_null_dereference+0x70/0x170
|
35
|
+
[ 112.640694] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
|
36
|
+
[ 112.641563] sp : ffff800083177dc0
|
37
|
+
[ 112.641998] x29: ffff800083177e20 x28: 0000000000000000 x27: 0000000000000000
|
38
|
+
[ 112.643470] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000c9daff00
|
39
|
+
[ 112.644889] x23: ffff9b153cfc6f90 x22: ffff9b153cfcfb50 x21: fff00000c9daff08
|
40
|
+
[ 112.645963] x20: 1ffff0001062efb8 x19: ffff8000800879f0 x18: 00000000a76e9934
|
41
|
+
[ 112.646909] x17: 000000008055b2b1 x16: 0000000000000100 x15: 0000000000000000
|
42
|
+
[ 112.648068] x14: 1ffe00001b49c778 x13: fff00000da4e3c98 x12: fffd8000191643a2
|
43
|
+
[ 112.649116] x11: 1ffe0000191643a1 x10: fffd8000191643a1 x9 : ffff9b153cfc7018
|
44
|
+
[ 112.650156] x8 : ffff800083177cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
|
45
|
+
[ 112.651201] x5 : ffff70001062efb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
|
46
|
+
[ 112.652392] x2 : dfff800000000000 x1 : fff00000c8b21440 x0 : ffff8000800879f0
|
47
|
+
[ 112.653691] Call trace:
|
48
|
+
[ 112.654100] kunit_test_null_dereference+0x70/0x170 (P)
|
49
|
+
[ 112.654712] kunit_generic_run_threadfn_adapter+0x88/0x100
|
50
|
+
[ 112.655400] kthread+0x24c/0x2d0
|
51
|
+
[ 112.655931] ret_from_fork+0x10/0x20
|
52
|
+
[ 112.657443] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
|
53
|
+
[ 112.658772] ---[ end trace 0000000000000000 ]---
|
@@ -0,0 +1,53 @@
|
|
1
|
+
[ 140.297674] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
|
2
|
+
[ 140.298941] Modules linked in:
|
3
|
+
[ 140.299833] CPU: 1 UID: 0 PID: 620 Comm: kunit_try_catch Tainted: G B N 6.13.0-rc7 #1
|
4
|
+
[ 140.300812] Tainted: [B]=BAD_PAGE, [N]=TEST
|
5
|
+
[ 140.301340] Hardware name: linux,dummy-virt (DT)
|
6
|
+
[ 140.302131] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
|
7
|
+
[ 140.303752] pc : kunit_test_null_dereference+0x70/0x170
|
8
|
+
[ 140.304314] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
|
9
|
+
[ 140.305223] sp : ffff800083347dc0
|
10
|
+
[ 140.305778] x29: ffff800083347e20 x28: 0000000000000000 x27: 0000000000000000
|
11
|
+
[ 140.307079] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000cc80ef80
|
12
|
+
[ 140.308158] x23: ffff9b7275bc6f90 x22: ffff9b7275bcfb50 x21: fff00000cc80ef88
|
13
|
+
[ 140.309193] x20: 1ffff00010668fb8 x19: ffff8000800879f0 x18: 00000000805c0b5c
|
14
|
+
[ 140.310184] x17: 0000000000000001 x16: fff00000da505ca0 x15: 00000000007e992b
|
15
|
+
[ 140.311172] x14: 00000000ca2562db x13: 1ffe00001815cb24 x12: fffd800018da43a2
|
16
|
+
[ 140.312208] x11: 1ffe000018da43a1 x10: fffd800018da43a1 x9 : ffff9b7275bc7018
|
17
|
+
[ 140.313293] x8 : ffff800083347cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
|
18
|
+
[ 140.314333] x5 : ffff700010668fb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
|
19
|
+
[ 140.315379] x2 : dfff800000000000 x1 : fff00000c6d21440 x0 : ffff8000800879f0
|
20
|
+
[ 140.316474] Call trace:
|
21
|
+
[ 140.316927] kunit_test_null_dereference+0x70/0x170 (P)
|
22
|
+
[ 140.317646] kunit_generic_run_threadfn_adapter+0x88/0x100
|
23
|
+
[ 140.318315] kthread+0x24c/0x2d0
|
24
|
+
[ 140.318860] ret_from_fork+0x10/0x20
|
25
|
+
[ 140.320008] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
|
26
|
+
[ 140.321163] ---[ end trace 0000000000000000 ]---
|
27
|
+
|
28
|
+
[ 112.633643] Internal error: Oops: 0000000096000005 [#1] PREEMPT SMP
|
29
|
+
[ 112.635528] Modules linked in:
|
30
|
+
[ 112.636558] CPU: 0 UID: 0 PID: 621 Comm: kunit_try_catch Tainted: G B N 6.13.0-rc7 #1
|
31
|
+
[ 112.637505] Tainted: [B]=BAD_PAGE, [N]=TEST
|
32
|
+
[ 112.638145] Hardware name: linux,dummy-virt (DT)
|
33
|
+
[ 112.638662] pstate: 12402009 (nzcV daif +PAN -UAO +TCO -DIT -SSBS BTYPE=--)
|
34
|
+
[ 112.639813] pc : kunit_test_null_dereference+0x70/0x170
|
35
|
+
[ 112.640694] lr : kunit_generic_run_threadfn_adapter+0x88/0x100
|
36
|
+
[ 112.641563] sp : ffff800083177dc0
|
37
|
+
[ 112.641998] x29: ffff800083177e20 x28: 0000000000000000 x27: 0000000000000000
|
38
|
+
[ 112.643470] x26: 0000000000000000 x25: 0000000000000000 x24: fff00000c9daff00
|
39
|
+
[ 112.644889] x23: ffff9b153cfc6f90 x22: ffff9b153cfcfb50 x21: fff00000c9daff08
|
40
|
+
[ 112.645963] x20: 1ffff0001062efb8 x19: ffff8000800879f0 x18: 00000000a76e9934
|
41
|
+
[ 112.646909] x17: 000000008055b2b1 x16: 0000000000000100 x15: 0000000000000000
|
42
|
+
[ 112.648068] x14: 1ffe00001b49c778 x13: fff00000da4e3c98 x12: fffd8000191643a2
|
43
|
+
[ 112.649116] x11: 1ffe0000191643a1 x10: fffd8000191643a1 x9 : ffff9b153cfc7018
|
44
|
+
[ 112.650156] x8 : ffff800083177cb8 x7 : 0000000000000001 x6 : 0000000041b58ab3
|
45
|
+
[ 112.651201] x5 : ffff70001062efb8 x4 : 00000000f1f1f1f1 x3 : 0000000000000003
|
46
|
+
[ 112.652392] x2 : dfff800000000000 x1 : fff00000c8b21440 x0 : ffff8000800879f0
|
47
|
+
[ 112.653691] Call trace:
|
48
|
+
[ 112.654100] kunit_test_null_dereference+0x70/0x170 (P)
|
49
|
+
[ 112.654712] kunit_generic_run_threadfn_adapter+0x88/0x100
|
50
|
+
[ 112.655400] kthread+0x24c/0x2d0
|
51
|
+
[ 112.655931] ret_from_fork+0x10/0x20
|
52
|
+
[ 112.657443] Code: b90004a3 d5384101 52800063 aa0003f3 (39c00042)
|
53
|
+
[ 112.658772] ---[ end trace 0000000000000000 ]---
|
@@ -64,7 +64,7 @@ class TestLinuxLogParser(TestCase):
|
|
64
64
|
testrun = self.new_testrun('kernelexceptiontrace.log')
|
65
65
|
self.plugin.postprocess_testrun(testrun)
|
66
66
|
|
67
|
-
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-
|
67
|
+
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-kernelsmp-smp_call_function_many_cond')
|
68
68
|
self.assertFalse(test.result)
|
69
69
|
self.assertIsNotNone(test.log)
|
70
70
|
self.assertNotIn('Booting Linux', test.log)
|
@@ -76,7 +76,7 @@ class TestLinuxLogParser(TestCase):
|
|
76
76
|
testrun = self.new_testrun('kernelexceptiontrace_without_squarebraces.log')
|
77
77
|
self.plugin.postprocess_testrun(testrun)
|
78
78
|
|
79
|
-
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-
|
79
|
+
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-kernelsmp-smp_call_function_many_cond')
|
80
80
|
self.assertFalse(test.result)
|
81
81
|
self.assertIsNotNone(test.log)
|
82
82
|
self.assertNotIn('Booting Linux', test.log)
|
@@ -101,7 +101,7 @@ class TestLinuxLogParser(TestCase):
|
|
101
101
|
testrun = self.new_testrun('kcsan_simple.log')
|
102
102
|
self.plugin.postprocess_testrun(testrun)
|
103
103
|
|
104
|
-
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='kcsan-bug-kcsan-data-race-in-do_page_fault-
|
104
|
+
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='kcsan-bug-kcsan-data-race-in-do_page_fault-spectre_v4_enable_task_mitigation')
|
105
105
|
|
106
106
|
self.assertFalse(test.result)
|
107
107
|
self.assertIsNotNone(test.log)
|
@@ -175,8 +175,7 @@ class TestLinuxLogParser(TestCase):
|
|
175
175
|
|
176
176
|
testrun = self.new_testrun('kernel_bug_and_invalid_opcode.log', job_id='1000')
|
177
177
|
self.plugin.postprocess_testrun(testrun)
|
178
|
-
|
179
|
-
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-kernel-bug-at-usrsrckernelarchxkvmmmummuc')
|
178
|
+
test = testrun.tests.get(suite__slug='log-parser-test', metadata__name='exception-kernel-bug-at-usrsrckernelarchx86kvmmmummu')
|
180
179
|
self.assertFalse(test.result)
|
181
180
|
self.assertIsNotNone(test.log)
|
182
181
|
self.assertNotIn('Booting Linux', test.log)
|
@@ -201,9 +200,9 @@ class TestLinuxLogParser(TestCase):
|
|
201
200
|
self.plugin.postprocess_testrun(testrun)
|
202
201
|
|
203
202
|
tests = testrun.tests
|
204
|
-
test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in
|
205
|
-
test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-
|
206
|
-
test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-
|
203
|
+
test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in')
|
204
|
+
test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-driversgpudrmradeonradeon_object-radeon_ttm_bo_destroy')
|
205
|
+
test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-driversregulatorcore-_regulator_putpart')
|
207
206
|
test_oops = tests.get(suite__slug='log-parser-test', metadata__name='oops-oops-preempt-smp')
|
208
207
|
test_fault = tests.get(suite__slug='log-parser-test', metadata__name='fault-unhandled-fault-external-abort-on-non-linefetch-at')
|
209
208
|
|
@@ -298,7 +297,7 @@ class TestLinuxLogParser(TestCase):
|
|
298
297
|
self.assertNotIn('Kernel panic', test.log)
|
299
298
|
|
300
299
|
# Now check if a test with sha digest in the name
|
301
|
-
test = testrun.tests.get(suite__slug='log-parser-boot', metadata__name='internal-error-oops-oops-bug-preempt-smp-
|
300
|
+
test = testrun.tests.get(suite__slug='log-parser-boot', metadata__name='internal-error-oops-oops-bug-preempt-smp-5c448a8183918455f8d9381bb4b6ee8a593b25c4aeaa85d376fa0fd9cbd5840c')
|
302
301
|
self.assertFalse(test.result)
|
303
302
|
self.assertIsNotNone(test.log)
|
304
303
|
self.assertIn('Internal error: Oops - BUG: 0 [#0] PREEMPT SMP', test.log)
|
@@ -310,9 +309,9 @@ class TestLinuxLogParser(TestCase):
|
|
310
309
|
|
311
310
|
tests = testrun.tests
|
312
311
|
|
313
|
-
test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in-
|
314
|
-
test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-
|
315
|
-
test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-
|
312
|
+
test_panic = tests.get(suite__slug='log-parser-test', metadata__name='panic-multiline-kernel-panic-not-syncing-stack-protector-kernel-stack-is-corrupted-in-630e6949dbf4d18f6ab71c0864524cf3e60da1380fe7fd5acbb99d8f5d01ab21')
|
313
|
+
test_exception = tests.get(suite__slug='log-parser-test', metadata__name='exception-warning-cpu-pid-at-driversgpudrmradeonradeon_object-radeon_ttm_bo_destroy-51fc34b6c857dfc70f7ee985b21731cc1745e97a216193a258a1ad90a6cbb9c8')
|
314
|
+
test_warning = tests.get(suite__slug='log-parser-test', metadata__name='warning-warning-cpu-pid-at-driversgpudrmradeonradeon_object-radeon_ttm_bo_destroy-dc992cca96cada94f4930abe87d60c6de25d404f11313bd64f2217d9408e15ef')
|
316
315
|
test_oops = tests.get(suite__slug='log-parser-test', metadata__name='oops-oops-preempt-smp-4e1ddddb2c142178a8977e7d973c2a13db2bb978aa471c0049ee39fe3fe4d74c')
|
317
316
|
test_fault = tests.get(suite__slug='log-parser-test', metadata__name='fault-unhandled-fault-external-abort-on-non-linefetch-at-6f9e3ab8f97e35c1e9167fed1e01c6149986819c54451064322b7d4208528e07')
|
318
317
|
|
@@ -347,3 +346,17 @@ class TestLinuxLogParser(TestCase):
|
|
347
346
|
self.assertNotIn('WARNING: CPU', test_fault.log)
|
348
347
|
self.assertNotIn('Oops', test_fault.log)
|
349
348
|
self.assertIn('Unhandled fault:', test_fault.log)
|
349
|
+
|
350
|
+
def test_same_sha(self):
|
351
|
+
testrun = self.new_testrun('duplicated-oops.log')
|
352
|
+
self.plugin.postprocess_testrun(testrun)
|
353
|
+
|
354
|
+
tests = testrun.tests.all()
|
355
|
+
self.assertEqual(2, tests.count())
|
356
|
+
|
357
|
+
def test_numbers_in_function_name(self):
|
358
|
+
testrun = self.new_testrun('different-numbers-in-function-name-oops.log')
|
359
|
+
self.plugin.postprocess_testrun(testrun)
|
360
|
+
|
361
|
+
tests = testrun.tests.all()
|
362
|
+
self.assertEqual(3, tests.count())
|
@@ -94,9 +94,40 @@ class TestBaseLogParser(TestCase):
|
|
94
94
|
sha_sum, "1e8e593de88f4856fc03d46c4156cf0772898309f8a796595f549bcabfc1cb9f"
|
95
95
|
)
|
96
96
|
|
97
|
-
def
|
97
|
+
def test_create_name_log_dict_exclude_numbers(self):
|
98
98
|
"""
|
99
|
-
Test creating the dict containing the "name" and "log lines" pairs
|
99
|
+
Test creating the dict containing the "name" and "log lines" pairs -
|
100
|
+
case where we want to exclude the numbers before doing the SHA
|
101
|
+
"""
|
102
|
+
tests_without_shas_to_create, tests_with_shas_to_create = (
|
103
|
+
self.log_parser.create_name_log_dict(
|
104
|
+
"test_name", ["log lines 1", "log lines 2"]
|
105
|
+
)
|
106
|
+
)
|
107
|
+
expected_tests_without_shas_to_create = defaultdict(
|
108
|
+
set, {"test_name": {"log lines 1", "log lines 2"}}
|
109
|
+
)
|
110
|
+
expected_tests_with_shas_to_create = defaultdict(
|
111
|
+
set,
|
112
|
+
{
|
113
|
+
"test_name-1677bef240c981a91c7f0c4321668491ff18f224ee5f4191feaa1940b09ccdaa": {
|
114
|
+
"log lines 1",
|
115
|
+
"log lines 2",
|
116
|
+
}
|
117
|
+
},
|
118
|
+
)
|
119
|
+
|
120
|
+
self.assertDictEqual(
|
121
|
+
tests_without_shas_to_create, expected_tests_without_shas_to_create
|
122
|
+
)
|
123
|
+
self.assertDictEqual(
|
124
|
+
tests_with_shas_to_create, expected_tests_with_shas_to_create
|
125
|
+
)
|
126
|
+
|
127
|
+
def test_create_name_log_dict_keep_numbers(self):
|
128
|
+
"""
|
129
|
+
Test creating the dict containing the "name" and "log lines" pairs -
|
130
|
+
case where we want to keep the numbers before doing the SHA
|
100
131
|
"""
|
101
132
|
tests_without_shas_to_create, tests_with_shas_to_create = (
|
102
133
|
self.log_parser.create_name_log_dict(
|
@@ -109,8 +140,10 @@ class TestBaseLogParser(TestCase):
|
|
109
140
|
expected_tests_with_shas_to_create = defaultdict(
|
110
141
|
set,
|
111
142
|
{
|
112
|
-
"test_name-
|
143
|
+
"test_name-8166dde0dc110dc6d0064b55e0d09fb4589f6d68e4aa5580376858e290f4bc91": {
|
113
144
|
"log lines1",
|
145
|
+
},
|
146
|
+
"test_name-335a19ed20ff0d0b276e1120a5761802bb3c7ce416b24ef69b5ba4b247832f92": {
|
114
147
|
"log lines2",
|
115
148
|
}
|
116
149
|
},
|
@@ -194,7 +227,7 @@ class TestBaseLogParser(TestCase):
|
|
194
227
|
slug="log-parser-test"
|
195
228
|
)
|
196
229
|
self.log_parser.create_squad_tests(
|
197
|
-
self.testrun, suite, "test_name", {"log
|
230
|
+
self.testrun, suite, "test_name", {"log lines 1", "log lines 2"}
|
198
231
|
)
|
199
232
|
|
200
233
|
test = self.testrun.tests.get(
|
@@ -205,12 +238,12 @@ class TestBaseLogParser(TestCase):
|
|
205
238
|
|
206
239
|
test_with_sha = self.testrun.tests.get(
|
207
240
|
suite__slug="log-parser-test",
|
208
|
-
metadata__name="test_name-
|
241
|
+
metadata__name="test_name-1677bef240c981a91c7f0c4321668491ff18f224ee5f4191feaa1940b09ccdaa",
|
209
242
|
)
|
210
243
|
self.assertFalse(test_with_sha.result)
|
211
244
|
self.assertIsNotNone(test_with_sha.log)
|
212
|
-
self.assertIn("log
|
213
|
-
self.assertIn("log
|
245
|
+
self.assertIn("log lines 1", test_with_sha.log)
|
246
|
+
self.assertIn("log lines 2", test_with_sha.log)
|
214
247
|
|
215
248
|
def test_compile_regex_single(self):
|
216
249
|
regex = [
|
squad-1.93/squad/version.py
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
__version__ = '1.93'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|