From 16197ea502bc2f370f70b65242b9ccb2f0583372 Mon Sep 17 00:00:00 2001 From: Jesse Glick Date: Mon, 11 Aug 2014 13:45:23 -0400 Subject: [PATCH] [FIXED JENKINS-23263] JUnit reporter moved to a plugin. --- changelog.html | 4 +- .../java/hudson/ClassicPluginStrategy.java | 3 +- .../main/java/hudson/model/AbstractBuild.java | 18 +- core/src/main/java/hudson/model/Action.java | 3 +- .../main/java/hudson/model/CheckPoint.java | 7 +- .../java/hudson/tasks/junit/CaseResult.java | 670 - .../java/hudson/tasks/junit/ClassResult.java | 250 - .../main/java/hudson/tasks/junit/History.java | 304 - .../java/hudson/tasks/junit/JUnitParser.java | 123 - .../tasks/junit/JUnitResultArchiver.java | 280 - .../hudson/tasks/junit/PackageResult.java | 306 - .../java/hudson/tasks/junit/SuiteResult.java | 332 - .../java/hudson/tasks/junit/TestAction.java | 50 - .../hudson/tasks/junit/TestDataPublisher.java | 62 - .../tasks/junit/TestNameTransformer.java | 42 - .../java/hudson/tasks/junit/TestObject.java | 136 - .../java/hudson/tasks/junit/TestResult.java | 646 - .../hudson/tasks/junit/TestResultAction.java | 231 - .../hudson/tasks/junit/XMLEntityResolver.java | 89 - .../main/java/hudson/tasks/junit/package.html | 27 - .../tasks/test/AbstractTestResultAction.java | 445 - .../test/AggregatedTestResultAction.java | 189 - .../test/AggregatedTestResultPublisher.java | 378 - .../test/DefaultTestResultParserImpl.java | 119 - .../tasks/test/MetaTabulatedResult.java | 44 - .../hudson/tasks/test/SimpleCaseResult.java | 214 - .../hudson/tasks/test/TabulatedResult.java | 51 - .../java/hudson/tasks/test/TestObject.java | 433 - .../java/hudson/tasks/test/TestResult.java | 267 - .../hudson/tasks/test/TestResultParser.java | 122 - .../tasks/test/TestResultProjectAction.java | 144 - .../main/java/hudson/tasks/test/package.html | 29 - core/src/main/java/hudson/util/ChartUtil.java | 9 +- .../hudson/tasks/junit/CaseResult/index.jelly | 97 - .../tasks/junit/CaseResult/index.properties | 27 - .../junit/CaseResult/index_da.properties | 31 - .../junit/CaseResult/index_de.properties | 31 - .../junit/CaseResult/index_es.properties | 31 - .../junit/CaseResult/index_fi.properties | 23 - .../junit/CaseResult/index_fr.properties | 31 - .../junit/CaseResult/index_he.properties | 8 - .../junit/CaseResult/index_hu.properties | 5 - .../junit/CaseResult/index_ja.properties | 32 - .../junit/CaseResult/index_lt.properties | 5 - .../junit/CaseResult/index_lv.properties | 8 - .../junit/CaseResult/index_nl.properties | 29 - .../junit/CaseResult/index_pl.properties | 6 - .../junit/CaseResult/index_pt_BR.properties | 31 - .../junit/CaseResult/index_ru.properties | 31 - .../junit/CaseResult/index_sv_SE.properties | 29 - .../junit/CaseResult/index_tr.properties | 29 - .../junit/CaseResult/index_uk.properties | 5 - .../junit/CaseResult/index_zh_CN.properties | 3 - .../junit/CaseResult/index_zh_TW.properties | 33 - .../hudson/tasks/junit/CaseResult/list.jelly | 62 - .../tasks/junit/CaseResult/list_da.properties | 26 - .../tasks/junit/CaseResult/list_de.properties | 26 - .../tasks/junit/CaseResult/list_es.properties | 26 - .../tasks/junit/CaseResult/list_fr.properties | 26 - .../tasks/junit/CaseResult/list_ja.properties | 26 - .../tasks/junit/CaseResult/list_lv.properties | 6 - .../junit/CaseResult/list_pt_BR.properties | 26 - .../tasks/junit/CaseResult/list_ru.properties | 6 - .../junit/CaseResult/list_sv_SE.properties | 6 - .../junit/CaseResult/list_zh_TW.properties | 26 - .../tasks/junit/CaseResult/summary.jelly | 61 - .../junit/CaseResult/summary_da.properties | 24 - .../junit/CaseResult/summary_de.properties | 24 - .../junit/CaseResult/summary_es.properties | 24 - .../junit/CaseResult/summary_ja.properties | 24 - .../junit/CaseResult/summary_pt_BR.properties | 24 - .../junit/CaseResult/summary_zh_TW.properties | 24 - .../hudson/tasks/junit/ClassResult/body.jelly | 56 - .../junit/ClassResult/body_da.properties | 26 - .../junit/ClassResult/body_de.properties | 26 - .../junit/ClassResult/body_es.properties | 26 - .../junit/ClassResult/body_fi.properties | 26 - .../junit/ClassResult/body_fr.properties | 26 - .../junit/ClassResult/body_ja.properties | 26 - .../junit/ClassResult/body_lv.properties | 6 - .../junit/ClassResult/body_nb_NO.properties | 5 - .../junit/ClassResult/body_nl.properties | 26 - .../junit/ClassResult/body_pt_BR.properties | 26 - .../junit/ClassResult/body_ru.properties | 26 - .../junit/ClassResult/body_sv_SE.properties | 26 - .../junit/ClassResult/body_tr.properties | 26 - .../junit/ClassResult/body_zh_CN.properties | 6 - .../junit/ClassResult/body_zh_TW.properties | 27 - .../hudson/tasks/junit/ClassResult/list.jelly | 58 - .../junit/ClassResult/list_da.properties | 28 - .../junit/ClassResult/list_de.properties | 28 - .../junit/ClassResult/list_es.properties | 28 - .../junit/ClassResult/list_ja.properties | 28 - .../junit/ClassResult/list_pt_BR.properties | 28 - .../junit/ClassResult/list_zh_CN.properties | 27 - .../junit/ClassResult/list_zh_TW.properties | 28 - .../hudson/tasks/junit/History/index.jelly | 79 - .../tasks/junit/History/index.properties | 23 - .../tasks/junit/History/index_da.properties | 24 - .../tasks/junit/History/index_de.properties | 26 - .../tasks/junit/History/index_es.properties | 26 - .../tasks/junit/History/index_fr.properties | 24 - .../tasks/junit/History/index_ja.properties | 27 - .../tasks/junit/History/index_lv.properties | 23 - .../tasks/junit/History/index_pl.properties | 4 - .../junit/History/index_pt_BR.properties | 25 - .../tasks/junit/History/index_ru.properties | 5 - .../junit/History/index_sv_SE.properties | 4 - .../junit/History/index_zh_CN.properties | 23 - .../junit/History/index_zh_TW.properties | 26 - .../junit/JUnitResultArchiver/config.jelly | 56 - .../JUnitResultArchiver/config.properties | 27 - .../JUnitResultArchiver/config_da.properties | 25 - .../JUnitResultArchiver/config_de.properties | 29 - .../JUnitResultArchiver/config_es.properties | 28 - .../JUnitResultArchiver/config_fr.properties | 28 - .../JUnitResultArchiver/config_ja.properties | 26 - .../JUnitResultArchiver/config_nl.properties | 27 - .../config_pt_BR.properties | 26 - .../JUnitResultArchiver/config_ru.properties | 28 - .../JUnitResultArchiver/config_tr.properties | 24 - .../config_zh_CN.properties | 24 - .../config_zh_TW.properties | 28 - .../help-healthScaleFactor.html | 17 - .../help-keepLongStdio.html | 9 - .../help-keepLongStdio_de.html | 11 - .../help-keepLongStdio_ja.html | 7 - .../help-keepLongStdio_zh_TW.html | 7 - .../hudson/tasks/junit/Messages.properties | 45 - .../hudson/tasks/junit/Messages_da.properties | 38 - .../hudson/tasks/junit/Messages_de.properties | 42 - .../hudson/tasks/junit/Messages_es.properties | 43 - .../hudson/tasks/junit/Messages_fr.properties | 39 - .../hudson/tasks/junit/Messages_ja.properties | 44 - .../hudson/tasks/junit/Messages_nl.properties | 33 - .../tasks/junit/Messages_pt_BR.properties | 50 - .../hudson/tasks/junit/Messages_ru.properties | 29 - .../hudson/tasks/junit/Messages_tr.properties | 29 - .../tasks/junit/Messages_zh_TW.properties | 44 - .../AbstractTestResultAction/summary.jelly | 84 - .../summary_bg.properties | 3 - .../summary_da.properties | 23 - .../summary_de.properties | 23 - .../summary_es.properties | 23 - .../summary_fr.properties | 23 - .../summary_he.properties | 3 - .../summary_hi_IN.properties | 3 - .../summary_ja.properties | 23 - .../summary_ko.properties | 23 - .../summary_lv.properties | 3 - .../summary_nl.properties | 24 - .../summary_pl.properties | 23 - .../summary_pt_BR.properties | 23 - .../summary_ru.properties | 24 - .../summary_sk.properties | 23 - .../summary_sv_SE.properties | 23 - .../summary_tr.properties | 24 - .../summary_uk.properties | 3 - .../summary_zh_CN.properties | 3 - .../summary_zh_TW.properties | 23 - .../TestResultAction/index.jelly | 94 - .../TestResultAction/index_da.properties | 30 - .../TestResultAction/index_de.properties | 10 - .../TestResultAction/index_es.properties | 30 - .../TestResultAction/index_fr.properties | 30 - .../TestResultAction/index_ja.properties | 31 - .../TestResultAction/index_lv.properties | 7 - .../TestResultAction/index_pt_BR.properties | 31 - .../TestResultAction/index_ru.properties | 5 - .../TestResultAction/index_zh_TW.properties | 31 - .../TestResultProjectAction/jobMain.jelly | 38 - .../jobMain_de.properties | 1 - .../jobMain_es.properties | 1 - .../jobMain_ja.properties | 1 - .../jobMain_zh_TW.properties | 1 - .../config.jelly | 46 - .../config_da.properties | 24 - .../config_de.properties | 25 - .../config_es.properties | 25 - .../config_fr.properties | 24 - .../config_ja.properties | 25 - .../config_pt_BR.properties | 24 - .../config_ru.properties | 24 - .../config_sv_SE.properties | 23 - .../config_tr.properties | 24 - .../config_zh_CN.properties | 25 - .../config_zh_TW.properties | 25 - .../hudson/tasks/test/Messages.properties | 39 - .../hudson/tasks/test/Messages_da.properties | 36 - .../hudson/tasks/test/Messages_de.properties | 35 - .../hudson/tasks/test/Messages_es.properties | 38 - .../hudson/tasks/test/Messages_fr.properties | 32 - .../hudson/tasks/test/Messages_it.properties | 5 - .../hudson/tasks/test/Messages_ja.properties | 37 - .../hudson/tasks/test/Messages_nl.properties | 29 - .../tasks/test/Messages_pt_BR.properties | 47 - .../hudson/tasks/test/Messages_ru.properties | 26 - .../hudson/tasks/test/Messages_tr.properties | 26 - .../tasks/test/Messages_zh_CN.properties | 5 - .../tasks/test/Messages_zh_TW.properties | 37 - .../tasks/test/MetaTabulatedResult/body.jelly | 98 - .../MetaTabulatedResult/body_ar.properties | 12 - .../MetaTabulatedResult/body_bg.properties | 12 - .../MetaTabulatedResult/body_cs.properties | 32 - .../MetaTabulatedResult/body_da.properties | 32 - .../MetaTabulatedResult/body_de.properties | 32 - .../MetaTabulatedResult/body_eo.properties | 7 - .../MetaTabulatedResult/body_es.properties | 10 - .../MetaTabulatedResult/body_et.properties | 8 - .../MetaTabulatedResult/body_fi.properties | 32 - .../MetaTabulatedResult/body_fr.properties | 31 - .../MetaTabulatedResult/body_it.properties | 10 - .../MetaTabulatedResult/body_ja.properties | 32 - .../MetaTabulatedResult/body_ko.properties | 10 - .../MetaTabulatedResult/body_lv.properties | 32 - .../MetaTabulatedResult/body_nb_NO.properties | 32 - .../MetaTabulatedResult/body_nl.properties | 32 - .../MetaTabulatedResult/body_pl.properties | 32 - .../MetaTabulatedResult/body_pt_BR.properties | 32 - .../MetaTabulatedResult/body_pt_PT.properties | 4 - .../MetaTabulatedResult/body_ro.properties | 11 - .../MetaTabulatedResult/body_ru.properties | 32 - .../MetaTabulatedResult/body_sl.properties | 11 - .../MetaTabulatedResult/body_sv_SE.properties | 11 - .../MetaTabulatedResult/body_tr.properties | 30 - .../MetaTabulatedResult/body_zh_CN.properties | 12 - .../MetaTabulatedResult/body_zh_TW.properties | 35 - .../tasks/test/MetaTabulatedResult/list.jelly | 58 - .../MetaTabulatedResult/list_da.properties | 28 - .../MetaTabulatedResult/list_de.properties | 28 - .../MetaTabulatedResult/list_es.properties | 6 - .../MetaTabulatedResult/list_fr.properties | 6 - .../MetaTabulatedResult/list_ja.properties | 28 - .../MetaTabulatedResult/list_lv.properties | 28 - .../MetaTabulatedResult/list_pt_BR.properties | 28 - .../MetaTabulatedResult/list_ru.properties | 8 - .../MetaTabulatedResult/list_sv_SE.properties | 8 - .../MetaTabulatedResult/list_zh_TW.properties | 28 - .../tasks/test/TestObject/sidepanel.jelly | 49 - .../test/TestObject/sidepanel_ar.properties | 5 - .../test/TestObject/sidepanel_bg.properties | 5 - .../test/TestObject/sidepanel_cs.properties | 24 - .../test/TestObject/sidepanel_da.properties | 25 - .../test/TestObject/sidepanel_de.properties | 25 - .../test/TestObject/sidepanel_eo.properties | 4 - .../test/TestObject/sidepanel_es.properties | 3 - .../test/TestObject/sidepanel_et.properties | 5 - .../test/TestObject/sidepanel_fi.properties | 25 - .../test/TestObject/sidepanel_fr.properties | 25 - .../test/TestObject/sidepanel_he.properties | 5 - .../TestObject/sidepanel_hi_IN.properties | 3 - .../test/TestObject/sidepanel_hu.properties | 24 - .../test/TestObject/sidepanel_it.properties | 5 - .../test/TestObject/sidepanel_ja.properties | 25 - .../test/TestObject/sidepanel_ko.properties | 5 - .../test/TestObject/sidepanel_lt.properties | 3 - .../test/TestObject/sidepanel_lv.properties | 25 - .../TestObject/sidepanel_nb_NO.properties | 24 - .../test/TestObject/sidepanel_nl.properties | 24 - .../test/TestObject/sidepanel_pl.properties | 25 - .../TestObject/sidepanel_pt_BR.properties | 25 - .../TestObject/sidepanel_pt_PT.properties | 3 - .../test/TestObject/sidepanel_ro.properties | 4 - .../test/TestObject/sidepanel_ru.properties | 25 - .../test/TestObject/sidepanel_sl.properties | 3 - .../TestObject/sidepanel_sv_SE.properties | 5 - .../test/TestObject/sidepanel_uk.properties | 4 - .../TestObject/sidepanel_zh_CN.properties | 25 - .../TestObject/sidepanel_zh_TW.properties | 25 - .../hudson/tasks/test/TestResult/index.jelly | 53 - .../tasks/test/TestResult/index.properties | 23 - .../tasks/test/TestResult/index_ar.properties | 3 - .../tasks/test/TestResult/index_bg.properties | 3 - .../tasks/test/TestResult/index_cs.properties | 23 - .../tasks/test/TestResult/index_da.properties | 23 - .../tasks/test/TestResult/index_de.properties | 23 - .../tasks/test/TestResult/index_eo.properties | 3 - .../tasks/test/TestResult/index_es.properties | 24 - .../tasks/test/TestResult/index_et.properties | 3 - .../tasks/test/TestResult/index_fi.properties | 23 - .../tasks/test/TestResult/index_fr.properties | 23 - .../tasks/test/TestResult/index_it.properties | 3 - .../tasks/test/TestResult/index_ja.properties | 23 - .../tasks/test/TestResult/index_lv.properties | 23 - .../test/TestResult/index_nb_NO.properties | 23 - .../tasks/test/TestResult/index_nl.properties | 23 - .../tasks/test/TestResult/index_pl.properties | 23 - .../test/TestResult/index_pt_BR.properties | 24 - .../tasks/test/TestResult/index_ro.properties | 3 - .../tasks/test/TestResult/index_ru.properties | 23 - .../tasks/test/TestResult/index_sl.properties | 3 - .../test/TestResult/index_sv_SE.properties | 3 - .../test/TestResult/index_zh_CN.properties | 3 - .../test/TestResult/index_zh_TW.properties | 24 - .../TestResultProjectAction/floatingBox.jelly | 54 - .../floatingBox_bg.properties | 25 - .../floatingBox_ca.properties | 25 - .../floatingBox_cs.properties | 25 - .../floatingBox_da.properties | 26 - .../floatingBox_de.properties | 26 - .../floatingBox_es.properties | 27 - .../floatingBox_es_AR.properties | 5 - .../floatingBox_et.properties | 6 - .../floatingBox_fi.properties | 5 - .../floatingBox_fr.properties | 26 - .../floatingBox_he.properties | 6 - .../floatingBox_hu.properties | 25 - .../floatingBox_it.properties | 26 - .../floatingBox_ja.properties | 26 - .../floatingBox_ko.properties | 5 - .../floatingBox_lt.properties | 4 - .../floatingBox_lv.properties | 25 - .../floatingBox_nb_NO.properties | 26 - .../floatingBox_nl.properties | 26 - .../floatingBox_pl.properties | 26 - .../floatingBox_pt_BR.properties | 26 - .../floatingBox_ro.properties | 25 - .../floatingBox_ru.properties | 26 - .../floatingBox_sl.properties | 4 - .../floatingBox_sv_SE.properties | 26 - .../floatingBox_tr.properties | 26 - .../floatingBox_uk.properties | 26 - .../floatingBox_zh_CN.properties | 26 - .../floatingBox_zh_TW.properties | 27 - .../test/TestResultProjectAction/index.jelly | 35 - .../TestResultProjectAction/jobMain.jelly | 38 - .../jobMain_ar.properties | 1 - .../jobMain_ca.properties | 1 - .../jobMain_cs.properties | 1 - .../jobMain_da.properties | 1 - .../jobMain_de.properties | 1 - .../jobMain_es.properties | 1 - .../jobMain_et.properties | 1 - .../jobMain_fi.properties | 1 - .../jobMain_fr.properties | 1 - .../jobMain_hu.properties | 1 - .../jobMain_it.properties | 1 - .../jobMain_ja.properties | 1 - .../jobMain_ko.properties | 1 - .../jobMain_lv.properties | 1 - .../jobMain_nb_NO.properties | 1 - .../jobMain_nl.properties | 1 - .../jobMain_pl.properties | 1 - .../jobMain_pt_BR.properties | 1 - .../jobMain_ro.properties | 1 - .../jobMain_ru.properties | 1 - .../jobMain_sv_SE.properties | 1 - .../jobMain_tr.properties | 1 - .../jobMain_uk.properties | 1 - .../jobMain_zh_CN.properties | 1 - .../jobMain_zh_TW.properties | 1 - .../lib/hudson/aggregated-failed-tests.jelly | 37 +- .../resources/lib/hudson/test-result.jelly | 22 +- .../lib/hudson/test-result.properties | 24 - .../lib/hudson/test-result_ar.properties | 3 - .../lib/hudson/test-result_bg.properties | 3 - .../lib/hudson/test-result_ca.properties | 3 - .../lib/hudson/test-result_cs.properties | 25 - .../lib/hudson/test-result_da.properties | 26 - .../lib/hudson/test-result_de.properties | 26 - .../lib/hudson/test-result_es.properties | 26 - .../lib/hudson/test-result_es_AR.properties | 3 - .../lib/hudson/test-result_et.properties | 3 - .../lib/hudson/test-result_fi.properties | 25 - .../lib/hudson/test-result_fr.properties | 26 - .../lib/hudson/test-result_he.properties | 4 - .../lib/hudson/test-result_hi_IN.properties | 3 - .../lib/hudson/test-result_hu.properties | 4 - .../lib/hudson/test-result_it.properties | 24 - .../lib/hudson/test-result_ja.properties | 26 - .../lib/hudson/test-result_ko.properties | 4 - .../lib/hudson/test-result_lv.properties | 25 - .../lib/hudson/test-result_nb_NO.properties | 24 - .../lib/hudson/test-result_nl.properties | 26 - .../lib/hudson/test-result_pl.properties | 26 - .../lib/hudson/test-result_pt_BR.properties | 26 - .../lib/hudson/test-result_ro.properties | 24 - .../lib/hudson/test-result_ru.properties | 26 - .../lib/hudson/test-result_sk.properties | 25 - .../lib/hudson/test-result_sv_SE.properties | 26 - .../lib/hudson/test-result_tr.properties | 26 - .../lib/hudson/test-result_uk.properties | 25 - .../lib/hudson/test-result_zh_CN.properties | 25 - .../lib/hudson/test-result_zh_TW.properties | 27 - .../hudson/model/BuildStatusSummaryTest.java | 104 - .../hudson/tasks/junit/CaseResultTest.java | 57 - .../hudson/tasks/junit/ClassResultTest.java | 41 - .../hudson/tasks/junit/SuiteResultTest.java | 247 - .../hudson/tasks/junit/TestResultTest.java | 156 - .../hudson/tasks/test/TestObjectTest.java | 48 - .../junit/JENKINS-12457/TestSuite_a1.xml | 4 - .../junit/JENKINS-12457/TestSuite_a2.xml | 4 - .../tasks/junit/JENKINS-12457/TestSuite_b.xml | 4 - .../JENKINS-12457/TestSuite_b_duplicate.xml | 4 - .../tasks/junit/JENKINS-13214/27449.xml | 1 - .../tasks/junit/JENKINS-13214/27540.xml | 1 - .../tasks/junit/JENKINS-13214/29734.xml | 1 - .../junit/eclipse-plugin-test-report.xml | 11237 ----------- .../hudson/tasks/junit/junit-report-1233.xml | 36 - .../hudson/tasks/junit/junit-report-1463.xml | 90 - .../hudson/tasks/junit/junit-report-1472.xml | 16466 ---------------- .../hudson/tasks/junit/junit-report-2874.xml | 30 - .../hudson/tasks/junit/junit-report-6700.xml | 20 - .../junit/junit-report-errror-details.xml | 33 - .../junit/junit-report-nested-testsuites.xml | 16 - .../hudson/tasks/junit/junitResult.xml | 113 - test/pom.xml | 5 + .../hudson/tasks/junit/CaseResultTest.java | 227 - .../java/hudson/tasks/junit/HistoryTest.java | 110 - .../hudson/tasks/junit/JUnitParserTest.java | 137 - .../tasks/junit/JUnitResultArchiverTest.java | 163 - .../hudson/tasks/junit/SuiteResultTest.java | 105 - .../tasks/junit/TestNameTransformerTest.java | 34 - .../tasks/junit/TestResultLinksTest.java | 111 - .../tasks/junit/TestResultPublishingTest.java | 377 - .../AggregatedTestResultPublisherTest.java | 190 - .../tasks/test/TestResultExtensionTest.java | 74 - .../hudson/tasks/test/TrivialTestResult.java | 56 - .../tasks/test/TrivialTestResultAction.java | 90 - .../tasks/test/TrivialTestResultRecorder.java | 86 - .../tasks/test/helper/AbstractPage.java | 39 - .../test/helper/AbstractTestResultLink.java | 42 - .../hudson/tasks/test/helper/BuildPage.java | 36 - .../test/helper/LatestTestResultLink.java | 25 - .../hudson/tasks/test/helper/ProjectPage.java | 35 - .../tasks/test/helper/TestResultLink.java | 27 - .../tasks/test/helper/TestResultsPage.java | 19 - .../hudson/tasks/junit/HistoryTest.zip | Bin 17288 -> 0 bytes .../hudson/tasks/junit/JUnitParserTest.zip | Bin 274222 -> 0 bytes .../tasks/junit/JUnitResultArchiverTest.zip | Bin 272687 -> 0 bytes .../tasks/junit/TestResultLinksTest.zip | Bin 1049 -> 0 bytes .../tasks/junit/TestResultPublishingTest.zip | Bin 290181 -> 0 bytes .../tasks/junit/junit-report-20090516.xml | 301 - .../test/AbstractTestResultExtensionTest.zip | Bin 709 -> 0 bytes .../AggregatedTestResultPublisherTest.zip | Bin 274239 -> 0 bytes .../tasks/test/TrivialTestResult/body.jelly | 114 - .../test/TrivialTestResult/body_es.properties | 10 - war/pom.xml | 6 + .../tasks/aggregate-test/auto-aggregate.html | 11 - .../aggregate-test/auto-aggregate_de.html | 11 - .../aggregate-test/auto-aggregate_fr.html | 11 - .../aggregate-test/auto-aggregate_ja.html | 8 - .../aggregate-test/auto-aggregate_nl.html | 10 - .../aggregate-test/auto-aggregate_pt_BR.html | 11 - .../aggregate-test/auto-aggregate_tr.html | 11 - .../aggregate-test/auto-aggregate_zh_TW.html | 8 - .../help/tasks/aggregate-test/help.html | 12 - .../help/tasks/aggregate-test/help_de.html | 9 - .../help/tasks/aggregate-test/help_fr.html | 12 - .../help/tasks/aggregate-test/help_ja.html | 10 - .../help/tasks/aggregate-test/help_nl.html | 10 - .../help/tasks/aggregate-test/help_pt_BR.html | 11 - .../help/tasks/aggregate-test/help_tr.html | 9 - .../help/tasks/aggregate-test/help_zh_TW.html | 7 - .../tasks/aggregate-test/manual-list.html | 4 - .../tasks/aggregate-test/manual-list_de.html | 4 - .../tasks/aggregate-test/manual-list_fr.html | 4 - .../tasks/aggregate-test/manual-list_ja.html | 3 - .../tasks/aggregate-test/manual-list_nl.html | 4 - .../aggregate-test/manual-list_pt_BR.html | 4 - .../tasks/aggregate-test/manual-list_tr.html | 4 - .../aggregate-test/manual-list_zh_TW.html | 3 - .../main/webapp/help/tasks/junit/report.html | 17 - .../webapp/help/tasks/junit/report_de.html | 20 - .../webapp/help/tasks/junit/report_fr.html | 23 - .../webapp/help/tasks/junit/report_ja.html | 16 - .../webapp/help/tasks/junit/report_nl.html | 18 - .../webapp/help/tasks/junit/report_pt_BR.html | 17 - .../webapp/help/tasks/junit/report_ru.html | 15 - .../webapp/help/tasks/junit/report_tr.html | 18 - .../webapp/help/tasks/junit/report_zh_TW.html | 15 - 471 files changed, 41 insertions(+), 45006 deletions(-) delete mode 100644 core/src/main/java/hudson/tasks/junit/CaseResult.java delete mode 100644 core/src/main/java/hudson/tasks/junit/ClassResult.java delete mode 100644 core/src/main/java/hudson/tasks/junit/History.java delete mode 100644 core/src/main/java/hudson/tasks/junit/JUnitParser.java delete mode 100644 core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java delete mode 100644 core/src/main/java/hudson/tasks/junit/PackageResult.java delete mode 100644 core/src/main/java/hudson/tasks/junit/SuiteResult.java delete mode 100644 core/src/main/java/hudson/tasks/junit/TestAction.java delete mode 100644 core/src/main/java/hudson/tasks/junit/TestDataPublisher.java delete mode 100644 core/src/main/java/hudson/tasks/junit/TestNameTransformer.java delete mode 100644 core/src/main/java/hudson/tasks/junit/TestObject.java delete mode 100644 core/src/main/java/hudson/tasks/junit/TestResult.java delete mode 100644 core/src/main/java/hudson/tasks/junit/TestResultAction.java delete mode 100644 core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java delete mode 100644 core/src/main/java/hudson/tasks/junit/package.html delete mode 100644 core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java delete mode 100644 core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java delete mode 100644 core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java delete mode 100644 core/src/main/java/hudson/tasks/test/DefaultTestResultParserImpl.java delete mode 100644 core/src/main/java/hudson/tasks/test/MetaTabulatedResult.java delete mode 100644 core/src/main/java/hudson/tasks/test/SimpleCaseResult.java delete mode 100644 core/src/main/java/hudson/tasks/test/TabulatedResult.java delete mode 100644 core/src/main/java/hudson/tasks/test/TestObject.java delete mode 100644 core/src/main/java/hudson/tasks/test/TestResult.java delete mode 100644 core/src/main/java/hudson/tasks/test/TestResultParser.java delete mode 100644 core/src/main/java/hudson/tasks/test/TestResultProjectAction.java delete mode 100644 core/src/main/java/hudson/tasks/test/package.html delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_fi.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_he.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_hu.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_lt.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_uk.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/index_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list.jelly delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/list_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/summary.jelly delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/summary_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/summary_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/summary_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/summary_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/summary_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/CaseResult/summary_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_fi.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list.jelly delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index.jelly delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/History/index_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-healthScaleFactor.html delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio.html delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_de.html delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_ja.html delete mode 100644 core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_zh_TW.html delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/junit/Messages_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_bg.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_he.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_hi_IN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ko.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sk.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_uk.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_it.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/Messages_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ar.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_bg.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_cs.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_eo.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_et.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fi.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_it.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ko.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_PT.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ro.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ar.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_bg.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_cs.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_eo.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_et.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fi.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_he.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hi_IN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hu.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_it.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ko.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lt.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_PT.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ro.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_uk.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_ar.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_bg.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_cs.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_eo.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_et.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_fi.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_it.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_ro.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_sl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResult/index_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_bg.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ca.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_cs.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es_AR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_et.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fi.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_he.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_hu.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_it.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ko.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lt.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ro.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_uk.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_TW.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/index.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain.jelly delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ar.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ca.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_cs.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_da.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_de.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_es.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_et.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fi.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_hu.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_it.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ja.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ko.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_lv.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nb_NO.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pl.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pt_BR.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ro.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ru.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_sv_SE.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_tr.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_uk.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_CN.properties delete mode 100644 core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_TW.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_ar.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_bg.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_ca.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_cs.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_da.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_de.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_es.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_es_AR.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_et.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_fi.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_fr.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_he.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_hi_IN.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_hu.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_it.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_ja.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_ko.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_lv.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_nb_NO.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_nl.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_pl.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_pt_BR.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_ro.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_ru.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_sk.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_sv_SE.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_tr.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_uk.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_zh_CN.properties delete mode 100644 core/src/main/resources/lib/hudson/test-result_zh_TW.properties rename {test => core}/src/test/java/hudson/model/BuildStatusSummaryTest.java (62%) delete mode 100644 core/src/test/java/hudson/tasks/junit/CaseResultTest.java delete mode 100644 core/src/test/java/hudson/tasks/junit/ClassResultTest.java delete mode 100644 core/src/test/java/hudson/tasks/junit/SuiteResultTest.java delete mode 100644 core/src/test/java/hudson/tasks/junit/TestResultTest.java delete mode 100644 core/src/test/java/hudson/tasks/test/TestObjectTest.java delete mode 100644 core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a1.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a2.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b_duplicate.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27449.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27540.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/JENKINS-13214/29734.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/eclipse-plugin-test-report.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junit-report-1233.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junit-report-1463.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junit-report-1472.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junit-report-2874.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junit-report-6700.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junit-report-errror-details.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junit-report-nested-testsuites.xml delete mode 100644 core/src/test/resources/hudson/tasks/junit/junitResult.xml delete mode 100644 test/src/test/java/hudson/tasks/junit/CaseResultTest.java delete mode 100644 test/src/test/java/hudson/tasks/junit/HistoryTest.java delete mode 100644 test/src/test/java/hudson/tasks/junit/JUnitParserTest.java delete mode 100644 test/src/test/java/hudson/tasks/junit/JUnitResultArchiverTest.java delete mode 100644 test/src/test/java/hudson/tasks/junit/SuiteResultTest.java delete mode 100644 test/src/test/java/hudson/tasks/junit/TestNameTransformerTest.java delete mode 100644 test/src/test/java/hudson/tasks/junit/TestResultLinksTest.java delete mode 100644 test/src/test/java/hudson/tasks/junit/TestResultPublishingTest.java delete mode 100644 test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java delete mode 100644 test/src/test/java/hudson/tasks/test/TestResultExtensionTest.java delete mode 100644 test/src/test/java/hudson/tasks/test/TrivialTestResult.java delete mode 100644 test/src/test/java/hudson/tasks/test/TrivialTestResultAction.java delete mode 100644 test/src/test/java/hudson/tasks/test/TrivialTestResultRecorder.java delete mode 100644 test/src/test/java/hudson/tasks/test/helper/AbstractPage.java delete mode 100644 test/src/test/java/hudson/tasks/test/helper/AbstractTestResultLink.java delete mode 100644 test/src/test/java/hudson/tasks/test/helper/BuildPage.java delete mode 100644 test/src/test/java/hudson/tasks/test/helper/LatestTestResultLink.java delete mode 100644 test/src/test/java/hudson/tasks/test/helper/ProjectPage.java delete mode 100644 test/src/test/java/hudson/tasks/test/helper/TestResultLink.java delete mode 100644 test/src/test/java/hudson/tasks/test/helper/TestResultsPage.java delete mode 100644 test/src/test/resources/hudson/tasks/junit/HistoryTest.zip delete mode 100644 test/src/test/resources/hudson/tasks/junit/JUnitParserTest.zip delete mode 100644 test/src/test/resources/hudson/tasks/junit/JUnitResultArchiverTest.zip delete mode 100644 test/src/test/resources/hudson/tasks/junit/TestResultLinksTest.zip delete mode 100644 test/src/test/resources/hudson/tasks/junit/TestResultPublishingTest.zip delete mode 100644 test/src/test/resources/hudson/tasks/junit/junit-report-20090516.xml delete mode 100644 test/src/test/resources/hudson/tasks/test/AbstractTestResultExtensionTest.zip delete mode 100644 test/src/test/resources/hudson/tasks/test/AggregatedTestResultPublisherTest.zip delete mode 100644 test/src/test/resources/hudson/tasks/test/TrivialTestResult/body.jelly delete mode 100644 test/src/test/resources/hudson/tasks/test/TrivialTestResult/body_es.properties delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_de.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_fr.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_ja.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_nl.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_pt_BR.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_tr.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_zh_TW.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help_de.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help_fr.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help_ja.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help_nl.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help_pt_BR.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help_tr.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/help_zh_TW.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list_de.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list_fr.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list_ja.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list_nl.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list_pt_BR.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list_tr.html delete mode 100644 war/src/main/webapp/help/tasks/aggregate-test/manual-list_zh_TW.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_de.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_fr.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_ja.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_nl.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_pt_BR.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_ru.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_tr.html delete mode 100644 war/src/main/webapp/help/tasks/junit/report_zh_TW.html diff --git a/changelog.html b/changelog.html index 096d326f9468..732d972469f0 100644 --- a/changelog.html +++ b/changelog.html @@ -55,7 +55,9 @@ diff --git a/core/src/main/java/hudson/ClassicPluginStrategy.java b/core/src/main/java/hudson/ClassicPluginStrategy.java index ba123fc95b09..3a13408698ff 100644 --- a/core/src/main/java/hudson/ClassicPluginStrategy.java +++ b/core/src/main/java/hudson/ClassicPluginStrategy.java @@ -298,7 +298,8 @@ private void fix(Attributes atts, List optionalDepende new DetachedPlugin("matrix-auth","1.535.*","1.0.2"), new DetachedPlugin("windows-slaves","1.547.*","1.0"), new DetachedPlugin("antisamy-markup-formatter","1.553.*","1.0"), - new DetachedPlugin("matrix-project","1.561.*","1.0") + new DetachedPlugin("matrix-project","1.561.*","1.0"), + new DetachedPlugin("junit","1.577.*","1.0") ); /** diff --git a/core/src/main/java/hudson/model/AbstractBuild.java b/core/src/main/java/hudson/model/AbstractBuild.java index 8d9f02131411..d1e291d52eeb 100644 --- a/core/src/main/java/hudson/model/AbstractBuild.java +++ b/core/src/main/java/hudson/model/AbstractBuild.java @@ -54,8 +54,6 @@ import hudson.tasks.Builder; import hudson.tasks.Fingerprinter.FingerprintAction; import hudson.tasks.Publisher; -import hudson.tasks.test.AbstractTestResultAction; -import hudson.tasks.test.AggregatedTestResultAction; import hudson.util.*; import jenkins.model.Jenkins; import org.kohsuke.stapler.HttpResponse; @@ -1041,15 +1039,23 @@ public final VariableResolver getBuildVariableResolver() { /** * @deprecated Use {@link #getAction(Class)} on {@link AbstractTestResultAction}. */ - public AbstractTestResultAction getTestResultAction() { - return getAction(AbstractTestResultAction.class); + public Action getTestResultAction() { + try { + return getAction(Jenkins.getInstance().getPluginManager().uberClassLoader.loadClass("hudson.tasks.test.AbstractTestResultAction").asSubclass(Action.class)); + } catch (ClassNotFoundException x) { + return null; + } } /** * @deprecated Use {@link #getAction(Class)} on {@link AggregatedTestResultAction}. */ - public AggregatedTestResultAction getAggregatedTestResultAction() { - return getAction(AggregatedTestResultAction.class); + public Action getAggregatedTestResultAction() { + try { + return getAction(Jenkins.getInstance().getPluginManager().uberClassLoader.loadClass("hudson.tasks.test.AggregatedTestResultAction").asSubclass(Action.class)); + } catch (ClassNotFoundException x) { + return null; + } } /** diff --git a/core/src/main/java/hudson/model/Action.java b/core/src/main/java/hudson/model/Action.java index b6b68a435fb3..f73bd34032f6 100644 --- a/core/src/main/java/hudson/model/Action.java +++ b/core/src/main/java/hudson/model/Action.java @@ -24,7 +24,6 @@ package hudson.model; import hudson.Functions; -import hudson.tasks.test.TestResultProjectAction; /** * Object that contributes additional information, behaviors, and UIs to {@link ModelObject} @@ -46,7 +45,7 @@ * it will be displayed as a floating box on the top page of * the target {@link ModelObject}. (For example, this is how * the JUnit test result trend shows up in the project top page. - * See {@link TestResultProjectAction}.) + * See {@code TestResultProjectAction}.) * *

* On the target {@link ModelObject} page, actions are rendered as an item in the side panel diff --git a/core/src/main/java/hudson/model/CheckPoint.java b/core/src/main/java/hudson/model/CheckPoint.java index b0b256a8578e..934fe7ddb500 100644 --- a/core/src/main/java/hudson/model/CheckPoint.java +++ b/core/src/main/java/hudson/model/CheckPoint.java @@ -26,7 +26,6 @@ import hudson.tasks.BuildStep; import hudson.tasks.Recorder; import hudson.tasks.Builder; -import hudson.tasks.junit.JUnitResultArchiver; import hudson.scm.SCM; import javax.annotation.Nonnull; @@ -57,7 +56,7 @@ * *

Example

*

- * {@link JUnitResultArchiver} provides a good example of how a {@link Recorder} can + * {@code JUnitResultArchiver} provides a good example of how a {@link Recorder} can * depend on its earlier result. * * @author Kohsuke Kawaguchi @@ -127,9 +126,9 @@ public void report() { * *

    *
  1. Build #1, #2, and #3 happens around the same time - *
  2. Build #3 waits for check point {@link JUnitResultArchiver} + *
  3. Build #3 waits for check point {@code JUnitResultArchiver} *
  4. Build #2 aborts before getting to that check point - *
  5. Build #1 finally checks in {@link JUnitResultArchiver} + *
  6. Build #1 finally checks in {@code JUnitResultArchiver} *
* *

diff --git a/core/src/main/java/hudson/tasks/junit/CaseResult.java b/core/src/main/java/hudson/tasks/junit/CaseResult.java deleted file mode 100644 index f87765b00b69..000000000000 --- a/core/src/main/java/hudson/tasks/junit/CaseResult.java +++ /dev/null @@ -1,670 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Seiji Sogabe, Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.util.TextFile; -import org.apache.commons.io.FileUtils; -import org.jvnet.localizer.Localizable; - -import hudson.model.AbstractBuild; -import hudson.model.Run; -import hudson.tasks.test.TestResult; - -import org.dom4j.Element; -import org.kohsuke.stapler.export.Exported; - -import java.io.File; -import java.io.IOException; -import java.text.DecimalFormat; -import java.text.ParseException; -import java.util.Collection; -import java.util.Collections; -import java.util.Comparator; -import java.util.logging.Logger; - -import static java.util.Collections.emptyList; -import static java.util.Collections.singletonList; - -/** - * One test result. - * - * Non-final since 1.526 - * - * @author Kohsuke Kawaguchi - */ -public class CaseResult extends TestResult implements Comparable { - private static final Logger LOGGER = Logger.getLogger(CaseResult.class.getName()); - private final float duration; - /** - * In JUnit, a test is a method of a class. This field holds the fully qualified class name - * that the test was in. - */ - private final String className; - /** - * This field retains the method name. - */ - private final String testName; - private transient String safeName; - private final boolean skipped; - private final String skippedMessage; - private final String errorStackTrace; - private final String errorDetails; - private transient SuiteResult parent; - - private transient ClassResult classResult; - - /** - * Some tools report stdout and stderr at testcase level (such as Maven surefire plugin), others do so at - * the suite level (such as Ant JUnit task.) - * - * If these information are reported at the test case level, these fields are set, - * otherwise null, in which case {@link SuiteResult#stdout}. - */ - private final String stdout,stderr; - - /** - * This test has been failing since this build number (not id.) - * - * If {@link #isPassed() passing}, this field is left unused to 0. - */ - private /*final*/ int failedSince; - - private static float parseTime(Element testCase) { - String time = testCase.attributeValue("time"); - if(time!=null) { - time = time.replace(",",""); - try { - return Float.parseFloat(time); - } catch (NumberFormatException e) { - try { - return new DecimalFormat().parse(time).floatValue(); - } catch (ParseException x) { - // hmm, don't know what this format is. - } - } - } - return 0.0f; - } - - CaseResult(SuiteResult parent, Element testCase, String testClassName, boolean keepLongStdio) { - // schema for JUnit report XML format is not available in Ant, - // so I don't know for sure what means what. - // reports in http://www.nabble.com/difference-in-junit-publisher-and-ant-junitreport-tf4308604.html#a12265700 - // indicates that maybe I shouldn't use @classname altogether. - - //String cn = testCase.attributeValue("classname"); - //if(cn==null) - // // Maven seems to skip classname, and that shows up in testSuite/@name - // cn = parent.getName(); - - - /* - According to http://www.nabble.com/NPE-(Fatal%3A-Null)-in-recording-junit-test-results-td23562964.html - there's some odd-ball cases where testClassName is null but - @name contains fully qualified name. - */ - String nameAttr = testCase.attributeValue("name"); - if(testClassName==null && nameAttr.contains(".")) { - testClassName = nameAttr.substring(0,nameAttr.lastIndexOf('.')); - nameAttr = nameAttr.substring(nameAttr.lastIndexOf('.')+1); - } - - className = testClassName; - testName = nameAttr; - errorStackTrace = getError(testCase); - errorDetails = getErrorMessage(testCase); - this.parent = parent; - duration = parseTime(testCase); - skipped = isMarkedAsSkipped(testCase); - skippedMessage = getSkippedMessage(testCase); - @SuppressWarnings("LeakingThisInConstructor") - Collection _this = Collections.singleton(this); - stdout = possiblyTrimStdio(_this, keepLongStdio, testCase.elementText("system-out")); - stderr = possiblyTrimStdio(_this, keepLongStdio, testCase.elementText("system-err")); - } - - private static final int HALF_MAX_SIZE = 500; - static String possiblyTrimStdio(Collection results, boolean keepLongStdio, String stdio) { // HUDSON-6516 - if (stdio == null) { - return null; - } - if (!isTrimming(results, keepLongStdio)) { - return stdio; - } - int len = stdio.length(); - int middle = len - HALF_MAX_SIZE * 2; - if (middle <= 0) { - return stdio; - } - return stdio.subSequence(0, HALF_MAX_SIZE) + "\n...[truncated " + middle + " chars]...\n" + stdio.subSequence(len - HALF_MAX_SIZE, len); - } - - /** - * Flavor of {@link #possiblyTrimStdio(Collection, boolean, String)} that doesn't try to read the whole thing into memory. - */ - static String possiblyTrimStdio(Collection results, boolean keepLongStdio, File stdio) throws IOException { - if (!isTrimming(results, keepLongStdio) && stdio.length()<1024*1024) { - return FileUtils.readFileToString(stdio); - } - - long len = stdio.length(); - long middle = len - HALF_MAX_SIZE * 2; - if (middle <= 0) { - return FileUtils.readFileToString(stdio); - } - - TextFile tx = new TextFile(stdio); - String head = tx.head(HALF_MAX_SIZE); - String tail = tx.fastTail(HALF_MAX_SIZE); - - int headBytes = head.getBytes().length; - int tailBytes = tail.getBytes().length; - - middle = len - (headBytes+tailBytes); - if (middle<=0) { - // if it turns out that we didn't have any middle section, just return the whole thing - return FileUtils.readFileToString(stdio); - } - - return head + "\n...[truncated " + middle + " bytes]...\n" + tail; - } - - private static boolean isTrimming(Collection results, boolean keepLongStdio) { - if (keepLongStdio) return false; - for (CaseResult result : results) { - // if there's a failure, do not trim and keep the whole thing - if (result.errorStackTrace != null) - return false; - } - return true; - } - - - /** - * Used to create a fake failure, when Hudson fails to load data from XML files. - * - * Public since 1.526. - */ - public CaseResult(SuiteResult parent, String testName, String errorStackTrace) { - this.className = parent == null ? "unnamed" : parent.getName(); - this.testName = testName; - this.errorStackTrace = errorStackTrace; - this.errorDetails = ""; - this.parent = parent; - this.stdout = null; - this.stderr = null; - this.duration = 0.0f; - this.skipped = false; - this.skippedMessage = null; - } - - public ClassResult getParent() { - return classResult; - } - - private static String getError(Element testCase) { - String msg = testCase.elementText("error"); - if(msg!=null) - return msg; - return testCase.elementText("failure"); - } - - private static String getErrorMessage(Element testCase) { - - Element msg = testCase.element("error"); - if (msg == null) { - msg = testCase.element("failure"); - } - if (msg == null) { - return null; // no error or failure elements! damn! - } - - return msg.attributeValue("message"); - } - - /** - * If the testCase element includes the skipped element (as output by TestNG), then - * the test has neither passed nor failed, it was never run. - */ - private static boolean isMarkedAsSkipped(Element testCase) { - return testCase.element("skipped") != null; - } - - private static String getSkippedMessage(Element testCase) { - String message = null; - Element skippedElement = testCase.element("skipped"); - - if (skippedElement != null) { - message = skippedElement.attributeValue("message"); - } - - return message; - } - - public String getDisplayName() { - return TestNameTransformer.getTransformedName(testName); - } - - /** - * Gets the name of the test, which is returned from {@code TestCase.getName()} - * - *

- * Note that this may contain any URL-unfriendly character. - */ - @Exported(visibility=999) - public @Override String getName() { - return testName; - } - - /** - * Gets the human readable title of this result object. - */ - @Override - public String getTitle() { - return "Case Result: " + getDisplayName(); - } - - /** - * Gets the duration of the test, in seconds - */ - @Exported(visibility=9) - public float getDuration() { - return duration; - } - - /** - * Gets the version of {@link #getName()} that's URL-safe. - */ - public @Override synchronized String getSafeName() { - if (safeName != null) { - return safeName; - } - StringBuilder buf = new StringBuilder(testName); - for( int i=0; i siblings = (classResult ==null ? Collections.emptyList(): classResult.getChildren()); - return safeName = uniquifyName(siblings, buf.toString()); - } - - /** - * Gets the class name of a test class. - */ - @Exported(visibility=9) - public String getClassName() { - return className; - } - - /** - * Gets the simple (not qualified) class name. - */ - public String getSimpleName() { - int idx = className.lastIndexOf('.'); - return className.substring(idx+1); - } - - /** - * Gets the package name of a test case - */ - public String getPackageName() { - int idx = className.lastIndexOf('.'); - if(idx<0) return "(root)"; - else return className.substring(0,idx); - } - - @Override - public String getFullName() { - return className+'.'+getName(); - } - - /** - * @since 1.515 - */ - public String getFullDisplayName() { - return TestNameTransformer.getTransformedName(getFullName()); - } - - @Override - public int getFailCount() { - if (isFailed()) return 1; else return 0; - } - - @Override - public int getSkipCount() { - if (isSkipped()) return 1; else return 0; - } - - @Override - public int getPassCount() { - return isPassed() ? 1 : 0; - } - - /** - * If this test failed, then return the build number - * when this test started failing. - */ - @Exported(visibility=9) - public int getFailedSince() { - // If we haven't calculated failedSince yet, and we should, - // do it now. - if (failedSince==0 && getFailCount()==1) { - CaseResult prev = getPreviousResult(); - if(prev!=null && !prev.isPassed()) - this.failedSince = prev.getFailedSince(); - else if (getOwner() != null) { - this.failedSince = getOwner().getNumber(); - } else { - LOGGER.warning("trouble calculating getFailedSince. We've got prev, but no owner."); - // failedSince will be 0, which isn't correct. - } - } - return failedSince; - } - - public Run getFailedSinceRun() { - return getOwner().getParent().getBuildByNumber(getFailedSince()); - } - - /** - * Gets the number of consecutive builds (including this) - * that this test case has been failing. - */ - @Exported(visibility=9) - public int getAge() { - if(isPassed()) - return 0; - else if (getOwner() != null) { - return getOwner().getNumber()-getFailedSince()+1; - } else { - LOGGER.fine("Trying to get age of a CaseResult without an owner"); - return 0; - } - } - - /** - * The stdout of this test. - * - *

- * Depending on the tool that produced the XML report, this method works somewhat inconsistently. - * With some tools (such as Maven surefire plugin), you get the accurate information, that is - * the stdout from this test case. With some other tools (such as the JUnit task in Ant), this - * method returns the stdout produced by the entire test suite. - * - *

- * If you need to know which is the case, compare this output from {@link SuiteResult#getStdout()}. - * @since 1.294 - */ - @Exported - public String getStdout() { - if(stdout!=null) return stdout; - SuiteResult sr = getSuiteResult(); - if (sr==null) return ""; - return getSuiteResult().getStdout(); - } - - /** - * The stderr of this test. - * - * @see #getStdout() - * @since 1.294 - */ - @Exported - public String getStderr() { - if(stderr!=null) return stderr; - SuiteResult sr = getSuiteResult(); - if (sr==null) return ""; - return getSuiteResult().getStderr(); - } - - @Override - public CaseResult getPreviousResult() { - if (parent == null) return null; - SuiteResult pr = parent.getPreviousResult(); - if(pr==null) return null; - return pr.getCase(getName()); - } - - /** - * Case results have no children - * @return null - */ - @Override - public TestResult findCorrespondingResult(String id) { - if (id.equals(safe(getName()))) { - return this; - } - return null; - } - - /** - * Gets the "children" of this test result that failed - * - * @return the children of this test result, if any, or an empty collection - */ - @Override - public Collection getFailedTests() { - return singletonListOfThisOrEmptyList(isFailed()); - } - - /** - * Gets the "children" of this test result that passed - * - * @return the children of this test result, if any, or an empty collection - */ - @Override - public Collection getPassedTests() { - return singletonListOfThisOrEmptyList(isPassed()); - } - - /** - * Gets the "children" of this test result that were skipped - * - * @return the children of this test result, if any, or an empty list - */ - @Override - public Collection getSkippedTests() { - return singletonListOfThisOrEmptyList(isSkipped()); - } - - private Collection singletonListOfThisOrEmptyList(boolean f) { - if (f) - return singletonList(this); - else - return emptyList(); - } - - /** - * If there was an error or a failure, this is the stack trace, or otherwise null. - */ - @Exported - public String getErrorStackTrace() { - return errorStackTrace; - } - - /** - * If there was an error or a failure, this is the text from the message. - */ - @Exported - public String getErrorDetails() { - return errorDetails; - } - - /** - * @return true if the test was not skipped and did not fail, false otherwise. - */ - public boolean isPassed() { - return !skipped && errorStackTrace==null; - } - - /** - * Tests whether the test was skipped or not. TestNG allows tests to be - * skipped if their dependencies fail or they are part of a group that has - * been configured to be skipped. - * @return true if the test was not executed, false otherwise. - */ - @Exported(visibility=9) - public boolean isSkipped() { - return skipped; - } - - /** - * @return true if the test was not skipped and did not pass, false otherwise. - * @since 1.520 - */ - public boolean isFailed() { - return !isPassed() && !isSkipped(); - } - - /** - * Provides the reason given for the test being being skipped. - * @return the message given for a skipped test if one has been provided, null otherwise. - * @since 1.507 - */ - @Exported - public String getSkippedMessage() { - return skippedMessage; - } - - public SuiteResult getSuiteResult() { - return parent; - } - - @Override - public AbstractBuild getOwner() { - SuiteResult sr = getSuiteResult(); - if (sr==null) { - LOGGER.warning("In getOwner(), getSuiteResult is null"); return null; } - hudson.tasks.junit.TestResult tr = sr.getParent(); - if (tr==null) { - LOGGER.warning("In getOwner(), suiteResult.getParent() is null."); return null; } - return tr.getOwner(); - } - - public void setParentSuiteResult(SuiteResult parent) { - this.parent = parent; - } - - public void freeze(SuiteResult parent) { - this.parent = parent; - // some old test data doesn't have failedSince value set, so for those compute them. - if(!isPassed() && failedSince==0) { - CaseResult prev = getPreviousResult(); - if(prev!=null && !prev.isPassed()) - this.failedSince = prev.failedSince; - else - this.failedSince = getOwner().getNumber(); - } - } - - public int compareTo(CaseResult that) { - return this.getFullName().compareTo(that.getFullName()); - } - - @Exported(name="status",visibility=9) // because stapler notices suffix 's' and remove it - public Status getStatus() { - if (skipped) { - return Status.SKIPPED; - } - CaseResult pr = getPreviousResult(); - if(pr==null) { - return isPassed() ? Status.PASSED : Status.FAILED; - } - - if(pr.isPassed()) { - return isPassed() ? Status.PASSED : Status.REGRESSION; - } else { - return isPassed() ? Status.FIXED : Status.FAILED; - } - } - - /*package*/ void setClass(ClassResult classResult) { - this.classResult = classResult; - } - - void replaceParent(SuiteResult parent) { - this.parent = parent; - } - - /** - * Constants that represent the status of this test. - */ - public enum Status { - /** - * This test runs OK, just like its previous run. - */ - PASSED("result-passed",Messages._CaseResult_Status_Passed(),true), - /** - * This test was skipped due to configuration or the - * failure or skipping of a method that it depends on. - */ - SKIPPED("result-skipped",Messages._CaseResult_Status_Skipped(),false), - /** - * This test failed, just like its previous run. - */ - FAILED("result-failed",Messages._CaseResult_Status_Failed(),false), - /** - * This test has been failing, but now it runs OK. - */ - FIXED("result-fixed",Messages._CaseResult_Status_Fixed(),true), - /** - * This test has been running OK, but now it failed. - */ - REGRESSION("result-regression",Messages._CaseResult_Status_Regression(),false); - - private final String cssClass; - private final Localizable message; - public final boolean isOK; - - Status(String cssClass, Localizable message, boolean OK) { - this.cssClass = cssClass; - this.message = message; - isOK = OK; - } - - public String getCssClass() { - return cssClass; - } - - public String getMessage() { - return message.toString(); - } - - public boolean isRegression() { - return this==REGRESSION; - } - } - - /** - * For sorting errors by age. - */ - /*package*/ static final Comparator BY_AGE = new Comparator() { - public int compare(CaseResult lhs, CaseResult rhs) { - return lhs.getAge()-rhs.getAge(); - } - }; - - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/tasks/junit/ClassResult.java b/core/src/main/java/hudson/tasks/junit/ClassResult.java deleted file mode 100644 index 6f046dbd2887..000000000000 --- a/core/src/main/java/hudson/tasks/junit/ClassResult.java +++ /dev/null @@ -1,250 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, id:cactusman, Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.AbstractBuild; -import hudson.tasks.test.TabulatedResult; -import hudson.tasks.test.TestResult; -import hudson.tasks.test.TestObject; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.export.Exported; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * Cumulative test result of a test class. - * - * @author Kohsuke Kawaguchi - */ -public final class ClassResult extends TabulatedResult implements Comparable { - private final String className; // simple name - private transient String safeName; - - private final List cases = new ArrayList(); - - private int passCount,failCount,skipCount; - - private float duration; - - private final PackageResult parent; - - ClassResult(PackageResult parent, String className) { - this.parent = parent; - this.className = className; - } - - @Override - public AbstractBuild getOwner() { - return (parent==null ? null: parent.getOwner()); - } - - public PackageResult getParent() { - return parent; - } - - @Override - public ClassResult getPreviousResult() { - if(parent==null) return null; - TestResult pr = parent.getPreviousResult(); - if(pr==null) return null; - if(pr instanceof PackageResult) { - return ((PackageResult)pr).getClassResult(getName()); - } - return null; - } - - @Override - public hudson.tasks.test.TestResult findCorrespondingResult(String id) { - String myID = safe(getName()); - String caseName = id; - int base = id.indexOf(myID); - if (base > 0) { - int caseNameStart = base + myID.length() + 1; - if (id.length() > caseNameStart) { - caseName = id.substring(caseNameStart); - } - } - CaseResult child = getCaseResult(caseName); - if (child != null) { - return child; - } - return null; - } - - public String getTitle() { - return Messages.ClassResult_getTitle(getDisplayName()); - } - - @Override - public String getChildTitle() { - return "Class Reults"; - } - - @Exported(visibility=999) - public String getName() { - int idx = className.lastIndexOf('.'); - if(idx<0) return className; - else return className.substring(idx+1); - } - - public @Override synchronized String getSafeName() { - if (safeName != null) { - return safeName; - } - return safeName = uniquifyName(parent.getChildren(), safe(getName())); - } - - public CaseResult getCaseResult(String name) { - for (CaseResult c : cases) { - if(c.getSafeName().equals(name)) - return c; - } - return null; - } - - @Override - public Object getDynamic(String name, StaplerRequest req, StaplerResponse rsp) { - CaseResult c = getCaseResult(name); - if (c != null) { - return c; - } else { - return super.getDynamic(name, req, rsp); - } - } - - - @Exported(name="child") - public List getChildren() { - return cases; - } - - public boolean hasChildren() { - return ((cases != null) && (cases.size() > 0)); - } - - // TODO: wait for stapler 1.60 @Exported - public float getDuration() { - return duration; - } - - @Exported - public int getPassCount() { - return passCount; - } - - @Exported - public int getFailCount() { - return failCount; - } - - @Exported - public int getSkipCount() { - return skipCount; - } - - public void add(CaseResult r) { - cases.add(r); - } - - /** - * Recount my children. - */ - @Override - public void tally() { - passCount=failCount=skipCount=0; - duration=0; - for (CaseResult r : cases) { - r.setClass(this); - if (r.isSkipped()) { - skipCount++; - } - else if(r.isPassed()) { - passCount++; - } - else { - failCount++; - } - duration += r.getDuration(); - } - } - - - void freeze() { - passCount=failCount=skipCount=0; - duration=0; - for (CaseResult r : cases) { - r.setClass(this); - if (r.isSkipped()) { - skipCount++; - } - else if(r.isPassed()) { - passCount++; - } - else { - failCount++; - } - duration += r.getDuration(); - } - Collections.sort(cases); - } - - public String getClassName() { - return className; - } - - public int compareTo(ClassResult that) { - return this.className.compareTo(that.className); - } - - public String getDisplayName() { - return TestNameTransformer.getTransformedName(getName()); - } - - /** - * @since 1.515 - */ - @Override - public String getFullName() { - return getParent().getName() + "." + className; - } - - public String getFullDisplayName() { - return getParent().getDisplayName() + "." + TestNameTransformer.getTransformedName(className); - } - - /** - * Gets the relative path to this test case from the given object. - */ - @Override - public String getRelativePathFrom(TestObject it) { - if(it instanceof CaseResult) { - return ".."; - } else { - return super.getRelativePathFrom(it); - } - } -} diff --git a/core/src/main/java/hudson/tasks/junit/History.java b/core/src/main/java/hudson/tasks/junit/History.java deleted file mode 100644 index c2d0c783c800..000000000000 --- a/core/src/main/java/hudson/tasks/junit/History.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2010, Sun Microsystems, Inc., Tom Huybrechts, Yahoo!, Inc., Seiji Sogabe - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.AbstractBuild; -import jenkins.model.Jenkins; -import hudson.tasks.test.TestObject; -import hudson.tasks.test.TestResult; -import hudson.util.ChartUtil; -import hudson.util.ColorPalette; -import hudson.util.DataSetBuilder; -import hudson.util.Graph; -import hudson.util.ShiftedCategoryAxis; -import hudson.util.StackedAreaRenderer2; - -import java.awt.Color; -import java.awt.Paint; -import java.util.ArrayList; -import java.util.List; - -import org.jfree.chart.ChartFactory; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.axis.CategoryAxis; -import org.jfree.chart.axis.CategoryLabelPositions; -import org.jfree.chart.axis.NumberAxis; -import org.jfree.chart.plot.CategoryPlot; -import org.jfree.chart.plot.PlotOrientation; -import org.jfree.chart.renderer.category.StackedAreaRenderer; -import org.jfree.data.category.CategoryDataset; -import org.jfree.ui.RectangleInsets; -import org.kohsuke.stapler.Stapler; - -/** - * History of {@link hudson.tasks.test.TestObject} over time. - * - * @since 1.320 - */ -public class History { - private final TestObject testObject; - - public History(TestObject testObject) { - this.testObject = testObject; - } - - public TestObject getTestObject() { - return testObject; - } - - public boolean historyAvailable() { - if (testObject.getOwner().getParent().getBuilds().size() > 1) - return true; - else - return false; - } - - public List getList(int start, int end) { - List list = new ArrayList(); - end = Math.min(end, testObject.getOwner().getParent().getBuilds().size()); - for (AbstractBuild b: testObject.getOwner().getParent().getBuilds().subList(start, end)) { - if (b.isBuilding()) continue; - TestResult o = testObject.getResultInBuild(b); - if (o != null) { - list.add(o); - } - } - return list; - } - - public List getList() { - return getList(0, testObject.getOwner().getParent().getBuilds().size()); - } - - /** - * Graph of duration of tests over time. - */ - public Graph getDurationGraph() { - return new GraphImpl("seconds") { - - protected DataSetBuilder createDataSet() { - DataSetBuilder data = new DataSetBuilder(); - - List list; - try { - list = getList( - Integer.parseInt(Stapler.getCurrentRequest().getParameter("start")), - Integer.parseInt(Stapler.getCurrentRequest().getParameter("end"))); - } catch (NumberFormatException e) { - list = getList(); - } - - for (hudson.tasks.test.TestResult o: list) { - data.add(((double) o.getDuration()) / (1000), "", new ChartLabel(o) { - @Override - public Color getColor() { - if (o.getFailCount() > 0) - return ColorPalette.RED; - else if (o.getSkipCount() > 0) - return ColorPalette.YELLOW; - else - return ColorPalette.BLUE; - } - }); - } - return data; - } - - }; - } - - /** - * Graph of # of tests over time. - */ - public Graph getCountGraph() { - return new GraphImpl("") { - protected DataSetBuilder createDataSet() { - DataSetBuilder data = new DataSetBuilder(); - - List list; - try { - list = getList( - Integer.parseInt(Stapler.getCurrentRequest().getParameter("start")), - Integer.parseInt(Stapler.getCurrentRequest().getParameter("end"))); - } catch (NumberFormatException e) { - list = getList(); - } - - for (TestResult o: list) { - data.add(o.getPassCount(), "2Passed", new ChartLabel(o)); - data.add(o.getFailCount(), "1Failed", new ChartLabel(o)); - data.add(o.getSkipCount(), "0Skipped", new ChartLabel(o)); - } - return data; - } - }; - } - - private abstract class GraphImpl extends Graph { - private final String yLabel; - - protected GraphImpl(String yLabel) { - super(-1,600,300); // cannot use timestamp, since ranges may change - this.yLabel = yLabel; - } - - protected abstract DataSetBuilder createDataSet(); - - protected JFreeChart createGraph() { - final CategoryDataset dataset = createDataSet().build(); - - final JFreeChart chart = ChartFactory.createStackedAreaChart(null, // chart - // title - null, // unused - yLabel, // range axis label - dataset, // data - PlotOrientation.VERTICAL, // orientation - false, // include legend - true, // tooltips - false // urls - ); - - chart.setBackgroundPaint(Color.white); - - final CategoryPlot plot = chart.getCategoryPlot(); - - // plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0)); - plot.setBackgroundPaint(Color.WHITE); - plot.setOutlinePaint(null); - plot.setForegroundAlpha(0.8f); - // plot.setDomainGridlinesVisible(true); - // plot.setDomainGridlinePaint(Color.white); - plot.setRangeGridlinesVisible(true); - plot.setRangeGridlinePaint(Color.black); - - CategoryAxis domainAxis = new ShiftedCategoryAxis(null); - plot.setDomainAxis(domainAxis); - domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); - domainAxis.setLowerMargin(0.0); - domainAxis.setUpperMargin(0.0); - domainAxis.setCategoryMargin(0.0); - - final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); - ChartUtil.adjustChebyshev(dataset, rangeAxis); - rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); - rangeAxis.setAutoRange(true); - - StackedAreaRenderer ar = new StackedAreaRenderer2() { - @Override - public Paint getItemPaint(int row, int column) { - ChartLabel key = (ChartLabel) dataset.getColumnKey(column); - if (key.getColor() != null) return key.getColor(); - return super.getItemPaint(row, column); - } - - @Override - public String generateURL(CategoryDataset dataset, int row, - int column) { - ChartLabel label = (ChartLabel) dataset.getColumnKey(column); - return label.getUrl(); - } - - @Override - public String generateToolTip(CategoryDataset dataset, int row, - int column) { - ChartLabel label = (ChartLabel) dataset.getColumnKey(column); - return label.o.getOwner().getDisplayName() + " : " - + label.o.getDurationString(); - } - }; - plot.setRenderer(ar); - ar.setSeriesPaint(0,ColorPalette.YELLOW); // Skips. - ar.setSeriesPaint(1,ColorPalette.RED); // Failures. - ar.setSeriesPaint(2,ColorPalette.BLUE); // Total. - - // crop extra space around the graph - plot.setInsets(new RectangleInsets(0, 0, 0, 5.0)); - - return chart; - } - } - - class ChartLabel implements Comparable { - TestResult o; - String url; - public ChartLabel(TestResult o) { - this.o = o; - this.url = null; - } - - public String getUrl() { - if (this.url == null) generateUrl(); - return url; - } - - private void generateUrl() { - AbstractBuild build = o.getOwner(); - String buildLink = build.getUrl(); - String actionUrl = o.getTestResultAction().getUrlName(); - this.url = Jenkins.getInstance().getRootUrl() + buildLink + actionUrl + o.getUrl(); - } - - public int compareTo(ChartLabel that) { - return this.o.getOwner().number - that.o.getOwner().number; - } - - @Override - public boolean equals(Object o) { - if (!(o instanceof ChartLabel)) { - return false; - } - ChartLabel that = (ChartLabel) o; - return this.o == that.o; - } - - public Color getColor() { - return null; - } - - @Override - public int hashCode() { - return o.hashCode(); - } - - @Override - public String toString() { - String l = o.getOwner().getDisplayName(); - String s = o.getOwner().getBuiltOnStr(); - if (s != null) - l += ' ' + s; - return l; -// return o.getDisplayName() + " " + o.getOwner().getDisplayName(); - } - - } - - public static int asInt(String s, int defalutValue) { - if (s==null) return defalutValue; - try { - return Integer.parseInt(s); - } catch (NumberFormatException e) { - return defalutValue; - } - } -} diff --git a/core/src/main/java/hudson/tasks/junit/JUnitParser.java b/core/src/main/java/hudson/tasks/junit/JUnitParser.java deleted file mode 100644 index 97b02f4fac73..000000000000 --- a/core/src/main/java/hudson/tasks/junit/JUnitParser.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.TaskListener; -import hudson.tasks.test.TestResultParser; -import hudson.model.AbstractBuild; -import hudson.*; -import hudson.remoting.VirtualChannel; - -import java.io.IOException; -import java.io.File; - -import org.apache.tools.ant.types.FileSet; -import org.apache.tools.ant.DirectoryScanner; - -/** - * Parse some JUnit xml files and generate a TestResult containing all the - * results parsed. - */ -@Extension -public class JUnitParser extends TestResultParser { - - private final boolean keepLongStdio; - - /** TODO TestResultParser.all does not seem to ever be called so why must this be an Extension? */ - @Deprecated - public JUnitParser() { - this(false); - } - - /** - * @param keepLongStdio if true, retain a suite's complete stdout/stderr even if this is huge and the suite passed - * @since 1.358 - */ - public JUnitParser(boolean keepLongStdio) { - this.keepLongStdio = keepLongStdio; - } - - @Override - public String getDisplayName() { - return Messages.JUnitParser_DisplayName(); - } - - @Override - public String getTestResultLocationMessage() { - return Messages.JUnitParser_TestResultLocationMessage(); - } - - @Override - public TestResult parse(String testResultLocations, - AbstractBuild build, Launcher launcher, - TaskListener listener) - throws InterruptedException, IOException - { - final long buildTime = build.getTimestamp().getTimeInMillis(); - final long timeOnMaster = System.currentTimeMillis(); - - // [BUG 3123310] TODO - Test Result Refactor: review and fix TestDataPublisher/TestAction subsystem] - // also get code that deals with testDataPublishers from JUnitResultArchiver.perform - - FilePath workspace = build.getWorkspace(); - if (workspace == null) { - throw new AbortException(Messages.JUnitParser_no_workspace_found(build)); - } - return workspace.act(new ParseResultCallable(testResultLocations, buildTime, timeOnMaster, keepLongStdio)); - } - - private static final class ParseResultCallable implements - FilePath.FileCallable { - private final long buildTime; - private final String testResults; - private final long nowMaster; - private final boolean keepLongStdio; - - private ParseResultCallable(String testResults, long buildTime, long nowMaster, boolean keepLongStdio) { - this.buildTime = buildTime; - this.testResults = testResults; - this.nowMaster = nowMaster; - this.keepLongStdio = keepLongStdio; - } - - public TestResult invoke(File ws, VirtualChannel channel) throws IOException { - final long nowSlave = System.currentTimeMillis(); - - FileSet fs = Util.createFileSet(ws, testResults); - DirectoryScanner ds = fs.getDirectoryScanner(); - - String[] files = ds.getIncludedFiles(); - if (files.length == 0) { - // no test result. Most likely a configuration - // error or fatal problem - throw new AbortException(Messages.JUnitResultArchiver_NoTestReportFound()); - } - - TestResult result = new TestResult(buildTime + (nowSlave - nowMaster), ds, keepLongStdio); - result.tally(); - return result; - } - } - -} diff --git a/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java b/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java deleted file mode 100644 index 223a1e812ebf..000000000000 --- a/core/src/main/java/hudson/tasks/junit/JUnitResultArchiver.java +++ /dev/null @@ -1,280 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Martin Eigenbrodt, - * Tom Huybrechts, Yahoo!, Inc., Richard Hierlmeier - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.AbortException; -import hudson.Extension; -import hudson.FilePath; -import hudson.Launcher; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.Action; -import hudson.model.BuildListener; -import hudson.model.Descriptor; -import hudson.model.Result; -import hudson.model.Saveable; -import hudson.tasks.BuildStepDescriptor; -import hudson.tasks.BuildStepMonitor; -import hudson.tasks.Publisher; -import hudson.tasks.Recorder; -import hudson.tasks.junit.TestResultAction.Data; -import hudson.tasks.test.TestResultProjectAction; -import hudson.util.DescribableList; -import hudson.util.FormValidation; -import net.sf.json.JSONObject; -import org.apache.tools.ant.DirectoryScanner; -import org.apache.tools.ant.types.FileSet; -import org.kohsuke.stapler.AncestorInPath; -import org.kohsuke.stapler.DataBoundConstructor; -import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; - -import java.io.IOException; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; - -/** - * Generates HTML report from JUnit test result XML files. - * - * @author Kohsuke Kawaguchi - */ -public class JUnitResultArchiver extends Recorder { - - /** - * {@link FileSet} "includes" string, like "foo/bar/*.xml" - */ - private final String testResults; - - /** - * If true, retain a suite's complete stdout/stderr even if this is huge and the suite passed. - * @since 1.358 - */ - private final boolean keepLongStdio; - - /** - * {@link TestDataPublisher}s configured for this archiver, to process the recorded data. - * For compatibility reasons, can be null. - * @since 1.320 - */ - private final DescribableList> testDataPublishers; - - private final Double healthScaleFactor; - - /** - * left for backwards compatibility - * @deprecated since 2009-08-09. - */ - @Deprecated - public JUnitResultArchiver(String testResults) { - this(testResults, false, null); - } - - @Deprecated - public JUnitResultArchiver(String testResults, - DescribableList> testDataPublishers) { - this(testResults, false, testDataPublishers); - } - - @Deprecated - public JUnitResultArchiver( - String testResults, - boolean keepLongStdio, - DescribableList> testDataPublishers) { - this(testResults, keepLongStdio, testDataPublishers, 1.0); - } - - @DataBoundConstructor - public JUnitResultArchiver( - String testResults, - boolean keepLongStdio, - DescribableList> testDataPublishers, - double healthScaleFactor) { - this.testResults = testResults; - this.keepLongStdio = keepLongStdio; - this.testDataPublishers = testDataPublishers; - this.healthScaleFactor = Math.max(0.0,healthScaleFactor); - } - - /** - * In progress. Working on delegating the actual parsing to the JUnitParser. - */ - protected TestResult parse(String expandedTestResults, AbstractBuild build, Launcher launcher, BuildListener listener) - throws IOException, InterruptedException - { - return new JUnitParser(isKeepLongStdio()).parse(expandedTestResults, build, launcher, listener); - } - - @Override - public boolean perform(AbstractBuild build, Launcher launcher, - BuildListener listener) throws InterruptedException, IOException { - listener.getLogger().println(Messages.JUnitResultArchiver_Recording()); - TestResultAction action; - - final String testResults = build.getEnvironment(listener).expand(this.testResults); - - try { - TestResult result = parse(testResults, build, launcher, listener); - - try { - // TODO can the build argument be omitted now, or is it used prior to the call to addAction? - action = new TestResultAction(build, result, listener); - } catch (NullPointerException npe) { - throw new AbortException(Messages.JUnitResultArchiver_BadXML(testResults)); - } - action.setHealthScaleFactor(getHealthScaleFactor()); // TODO do we want to move this to the constructor? - result.freeze(action); - if (result.isEmpty()) { - // most likely a configuration error in the job - e.g. false pattern to match the JUnit result files - throw new AbortException(Messages.JUnitResultArchiver_ResultIsEmpty()); - } - - // TODO: Move into JUnitParser [BUG 3123310] - List data = new ArrayList(); - if (testDataPublishers != null) { - for (TestDataPublisher tdp : testDataPublishers) { - Data d = tdp.getTestData(build, launcher, listener, result); - if (d != null) { - data.add(d); - } - } - } - - action.setData(data); - } catch (AbortException e) { - if (build.getResult() == Result.FAILURE) - // most likely a build failed before it gets to the test phase. - // don't report confusing error message. - return true; - - listener.getLogger().println(e.getMessage()); - build.setResult(Result.FAILURE); - return true; - } catch (IOException e) { - e.printStackTrace(listener.error("Failed to archive test reports")); - build.setResult(Result.FAILURE); - return true; - } - - build.addAction(action); - - if (action.getResult().getFailCount() > 0) - build.setResult(Result.UNSTABLE); - - return true; - } - - /** - * Not actually used, but left for backward compatibility - * - * @deprecated since 2009-08-10. - */ - protected TestResult parseResult(DirectoryScanner ds, long buildTime) - throws IOException { - return new TestResult(buildTime, ds); - } - - public BuildStepMonitor getRequiredMonitorService() { - return BuildStepMonitor.NONE; - } - - public String getTestResults() { - return testResults; - } - - public double getHealthScaleFactor() { - return healthScaleFactor == null ? 1.0 : healthScaleFactor; - } - - public DescribableList> getTestDataPublishers() { - return testDataPublishers; - } - - @Override - public Collection getProjectActions(AbstractProject project) { - return Collections.singleton(new TestResultProjectAction(project)); - } - - /** - * @return the keepLongStdio - */ - public boolean isKeepLongStdio() { - return keepLongStdio; - } - - private static final long serialVersionUID = 1L; - - @Extension - public static class DescriptorImpl extends BuildStepDescriptor { - public String getDisplayName() { - return Messages.JUnitResultArchiver_DisplayName(); - } - - @Override - public String getHelpFile() { - return "/help/tasks/junit/report.html"; - } - - @Override - public Publisher newInstance(StaplerRequest req, JSONObject formData) - throws hudson.model.Descriptor.FormException { - String testResults = formData.getString("testResults"); - boolean keepLongStdio = formData.getBoolean("keepLongStdio"); - DescribableList> testDataPublishers = new DescribableList>(Saveable.NOOP); - try { - testDataPublishers.rebuild(req, formData, TestDataPublisher.all()); - } catch (IOException e) { - throw new FormException(e,null); - } - - return new JUnitResultArchiver(testResults, keepLongStdio, testDataPublishers); - } - - /** - * Performs on-the-fly validation on the file mask wildcard. - */ - public FormValidation doCheckTestResults( - @AncestorInPath AbstractProject project, - @QueryParameter String value) throws IOException { - return FilePath.validateFileMask(project.getSomeWorkspace(), value); - } - - public boolean isApplicable(Class jobType) { - return true; - } - - public FormValidation doCheckHealthScaleFactor(@QueryParameter double value) { - if (value < 1e-7) return FormValidation.warning("Test health reporting disabled"); - return FormValidation.ok(Messages.JUnitResultArchiver_HealthScaleFactorAnalysis( - 1, - (int) (100.0 - Math.max(0.0, Math.min(100.0, 1 * value))), - 5, - (int) (100.0 - Math.max(0.0, Math.min(100.0, 5 * value))) - )); - } - } -} diff --git a/core/src/main/java/hudson/tasks/junit/PackageResult.java b/core/src/main/java/hudson/tasks/junit/PackageResult.java deleted file mode 100644 index f64ad327c22e..000000000000 --- a/core/src/main/java/hudson/tasks/junit/PackageResult.java +++ /dev/null @@ -1,306 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, id:cactusman, Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.AbstractBuild; -import hudson.tasks.test.MetaTabulatedResult; -import hudson.tasks.test.TestResult; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.export.Exported; - -import java.util.*; - -/** - * Cumulative test result for a package. - * - * @author Kohsuke Kawaguchi - */ -public final class PackageResult extends MetaTabulatedResult implements Comparable { - - private final String packageName; - private transient String safeName; - /** - * All {@link ClassResult}s keyed by their short name. - */ - private final Map classes = new TreeMap(); - private int passCount,failCount,skipCount; - private final hudson.tasks.junit.TestResult parent; - private float duration; - - PackageResult(hudson.tasks.junit.TestResult parent, String packageName) { - this.packageName = packageName; - this.parent = parent; - } - - @Override - public AbstractBuild getOwner() { - return (parent == null ? null : parent.getOwner()); - } - - public hudson.tasks.junit.TestResult getParent() { - return parent; - } - - @Exported(visibility=999) - public String getName() { - return packageName; - } - - @Override - public synchronized String getSafeName() { - if (safeName != null) { - return safeName; - } - Collection siblings = (parent == null ? Collections.EMPTY_LIST : parent.getChildren()); - return safeName = uniquifyName( - siblings, - safe(getName())); - } - - @Override - public TestResult findCorrespondingResult(String id) { - String myID = safe(getName()); - - int base = id.indexOf(myID); - String className = id; // fall back value - if (base > 0) { - int classNameStart = base + myID.length() + 1; - if (classNameStart 0) { - subId = className.substring(classNameEnd + 1); - if (subId.length() == 0) { - subId = null; - } - className = className.substring(0, classNameEnd); - } - - ClassResult child = getClassResult(className); - if (child != null && subId != null) - return child.findCorrespondingResult(subId); - - return child; - } - - @Override - public String getTitle() { - return Messages.PackageResult_getTitle(getDisplayName()); - } - - @Override - public String getChildTitle() { - return Messages.PackageResult_getChildTitle(); - } - - // TODO: wait until stapler 1.60 to do this @Exported - @Override - public float getDuration() { - return duration; - } - - @Exported - @Override - public int getPassCount() { - return passCount; - } - - @Exported - @Override - public int getFailCount() { - return failCount; - } - - @Exported - @Override - public int getSkipCount() { - return skipCount; - } - - @Override - public Object getDynamic(String name, StaplerRequest req, StaplerResponse rsp) { - ClassResult result = getClassResult(name); - if (result != null) { - return result; - } else { - return super.getDynamic(name, req, rsp); - } - } - - public ClassResult getClassResult(String name) { - return classes.get(name); - } - - @Exported(name="child") - public Collection getChildren() { - return classes.values(); - } - - /** - * Whether this test result has children. - */ - @Override - public boolean hasChildren() { - int totalTests = passCount + failCount + skipCount; - return (totalTests != 0); - } - - /** - * Returns a list of the failed cases, in no particular - * sort order - */ - public List getFailedTests() { - List r = new ArrayList(); - for (ClassResult clr : classes.values()) { - for (CaseResult cr : clr.getChildren()) { - if (cr.isFailed()) { - r.add(cr); - } - } - } - return r; - } - - /** - * Returns a list of the failed cases, sorted by age. - */ - public List getFailedTestsSortedByAge() { - List failedTests = getFailedTests(); - Collections.sort(failedTests, CaseResult.BY_AGE); - return failedTests; - } - - /** - * Gets the "children" of this test result that passed - * - * @return the children of this test result, if any, or an empty collection - */ - @Override - public Collection getPassedTests() { - List r = new ArrayList(); - for (ClassResult clr : classes.values()) { - for (CaseResult cr : clr.getChildren()) { - if (cr.isPassed()) { - r.add(cr); - } - } - } - Collections.sort(r,CaseResult.BY_AGE); - return r; - } - - /** - * Gets the "children" of this test result that were skipped - * - * @return the children of this test result, if any, or an empty list - */ - @Override - public Collection getSkippedTests() { - List r = new ArrayList(); - for (ClassResult clr : classes.values()) { - for (CaseResult cr : clr.getChildren()) { - if (cr.isSkipped()) { - r.add(cr); - } - } - } - Collections.sort(r, CaseResult.BY_AGE); - return r; - } - -// /** -// * If this test failed, then return the build number -// * when this test started failing. -// */ -// @Override -// TODO: implement! public int getFailedSince() { -// return 0; // (FIXME: generated) -// } -// /** -// * If this test failed, then return the run -// * when this test started failing. -// */ -// TODO: implement! @Override -// public Run getFailedSinceRun() { -// return null; // (FIXME: generated) -// } - /** - * @return true if every test was not skipped and every test did not fail, false otherwise. - */ - @Override - public boolean isPassed() { - return (failCount == 0 && skipCount == 0); - } - - void add(CaseResult r) { - String n = r.getSimpleName(), sn = safe(n); - ClassResult c = getClassResult(sn); - if (c == null) { - classes.put(sn,c=new ClassResult(this,n)); - } - c.add(r); - duration += r.getDuration(); - } - - /** - * Recount my children - */ - @Override - public void tally() { - passCount = 0; - failCount = 0; - skipCount = 0; - duration = 0; - - for (ClassResult cr : classes.values()) { - cr.tally(); - passCount += cr.getPassCount(); - failCount += cr.getFailCount(); - skipCount += cr.getSkipCount(); - duration += cr.getDuration(); - } - } - - void freeze() { - passCount = failCount = skipCount = 0; - for (ClassResult cr : classes.values()) { - cr.freeze(); - passCount += cr.getPassCount(); - failCount += cr.getFailCount(); - skipCount += cr.getSkipCount(); - } - } - - public int compareTo(PackageResult that) { - return this.packageName.compareTo(that.packageName); - } - - public String getDisplayName() { - return TestNameTransformer.getTransformedName(packageName); - } -} diff --git a/core/src/main/java/hudson/tasks/junit/SuiteResult.java b/core/src/main/java/hudson/tasks/junit/SuiteResult.java deleted file mode 100644 index d6eb5b183f08..000000000000 --- a/core/src/main/java/hudson/tasks/junit/SuiteResult.java +++ /dev/null @@ -1,332 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Xavier Le Vourch, Tom Huybrechts, Yahoo!, Inc., Victor Garcia - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.tasks.test.TestObject; -import hudson.util.io.ParserConfigurator; -import org.dom4j.Document; -import org.dom4j.DocumentException; -import org.dom4j.Element; -import org.dom4j.io.SAXReader; -import org.kohsuke.stapler.export.Exported; -import org.kohsuke.stapler.export.ExportedBean; - -import java.io.File; -import java.io.IOException; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * Result of one test suite. - * - *

- * The notion of "test suite" is rather arbitrary in JUnit ant task. - * It's basically one invocation of junit. - * - *

- * This object is really only used as a part of the persisted - * object tree. - * - * @author Kohsuke Kawaguchi - */ -@ExportedBean -public final class SuiteResult implements Serializable { - private final String file; - private final String name; - private final String stdout; - private final String stderr; - private float duration; - /** - * The 'timestamp' attribute of the test suite. - * AFAICT, this is not a required attribute in XML, so the value may be null. - */ - private String timestamp; - /** Optional ID attribute of a test suite. E.g., Eclipse plug-ins tests always have the name 'tests' but a different id. **/ - private String id; - - /** - * All test cases. - */ - private final List cases = new ArrayList(); - private transient Map casesByName; - private transient hudson.tasks.junit.TestResult parent; - - SuiteResult(String name, String stdout, String stderr) { - this.name = name; - this.stderr = stderr; - this.stdout = stdout; - this.file = null; - } - - private synchronized Map casesByName() { - if (casesByName == null) { - casesByName = new HashMap(); - for (CaseResult c : cases) { - casesByName.put(c.getName(), c); - } - } - return casesByName; - } - - /** - * Passed to {@link ParserConfigurator}. - * @since 1.416 - */ - public static class SuiteResultParserConfigurationContext { - public final File xmlReport; - - SuiteResultParserConfigurationContext(File xmlReport) { - this.xmlReport = xmlReport; - } - } - - /** - * Parses the JUnit XML file into {@link SuiteResult}s. - * This method returns a collection, as a single XML may have multiple <testsuite> - * elements wrapped into the top-level <testsuites>. - */ - static List parse(File xmlReport, boolean keepLongStdio) throws DocumentException, IOException, InterruptedException { - List r = new ArrayList(); - - // parse into DOM - SAXReader saxReader = new SAXReader(); - ParserConfigurator.applyConfiguration(saxReader,new SuiteResultParserConfigurationContext(xmlReport)); - - Document result = saxReader.read(xmlReport); - Element root = result.getRootElement(); - - parseSuite(xmlReport,keepLongStdio,r,root); - - return r; - } - - private static void parseSuite(File xmlReport, boolean keepLongStdio, List r, Element root) throws DocumentException, IOException { - // nested test suites - @SuppressWarnings("unchecked") - List testSuites = (List)root.elements("testsuite"); - for (Element suite : testSuites) - parseSuite(xmlReport, keepLongStdio, r, suite); - - // child test cases - // FIXME: do this also if no testcases! - if (root.element("testcase")!=null || root.element("error")!=null) - r.add(new SuiteResult(xmlReport, root, keepLongStdio)); - } - - /** - * @param xmlReport - * A JUnit XML report file whose top level element is 'testsuite'. - * @param suite - * The parsed result of {@code xmlReport} - */ - private SuiteResult(File xmlReport, Element suite, boolean keepLongStdio) throws DocumentException, IOException { - this.file = xmlReport.getAbsolutePath(); - String name = suite.attributeValue("name"); - if(name==null) - // some user reported that name is null in their environment. - // see http://www.nabble.com/Unexpected-Null-Pointer-Exception-in-Hudson-1.131-tf4314802.html - name = '('+xmlReport.getName()+')'; - else { - String pkg = suite.attributeValue("package"); - if(pkg!=null&& pkg.length()>0) name=pkg+'.'+name; - } - this.name = TestObject.safe(name); - this.timestamp = suite.attributeValue("timestamp"); - this.id = suite.attributeValue("id"); - - Element ex = suite.element("error"); - if(ex!=null) { - // according to junit-noframes.xsl l.229, this happens when the test class failed to load - addCase(new CaseResult(this, suite, "", keepLongStdio)); - } - - @SuppressWarnings("unchecked") - List testCases = (List)suite.elements("testcase"); - for (Element e : testCases) { - // https://issues.jenkins-ci.org/browse/JENKINS-1233 indicates that - // when is present, we are better off using @classname on the - // individual testcase class. - - // https://issues.jenkins-ci.org/browse/JENKINS-1463 indicates that - // @classname may not exist in individual testcase elements. We now - // also test if the testsuite element has a package name that can be used - // as the class name instead of the file name which is default. - String classname = e.attributeValue("classname"); - if (classname == null) { - classname = suite.attributeValue("name"); - } - - // https://issues.jenkins-ci.org/browse/JENKINS-1233 and - // http://www.nabble.com/difference-in-junit-publisher-and-ant-junitreport-tf4308604.html#a12265700 - // are at odds with each other --- when both are present, - // one wants to use @name from , - // the other wants to use @classname from . - - addCase(new CaseResult(this, e, classname, keepLongStdio)); - } - - String stdout = CaseResult.possiblyTrimStdio(cases, keepLongStdio, suite.elementText("system-out")); - String stderr = CaseResult.possiblyTrimStdio(cases, keepLongStdio, suite.elementText("system-err")); - if (stdout==null && stderr==null) { - // Surefire never puts stdout/stderr in the XML. Instead, it goes to a separate file (when ${maven.test.redirectTestOutputToFile}). - Matcher m = SUREFIRE_FILENAME.matcher(xmlReport.getName()); - if (m.matches()) { - // look for ***-output.txt from TEST-***.xml - File mavenOutputFile = new File(xmlReport.getParentFile(),m.group(1)+"-output.txt"); - if (mavenOutputFile.exists()) { - try { - stdout = CaseResult.possiblyTrimStdio(cases, keepLongStdio, mavenOutputFile); - } catch (IOException e) { - throw new IOException("Failed to read "+mavenOutputFile,e); - } - } - } - } - - this.stdout = stdout; - this.stderr = stderr; - } - - /*package*/ void addCase(CaseResult cr) { - cases.add(cr); - casesByName().put(cr.getName(), cr); - duration += cr.getDuration(); - } - - @Exported(visibility=9) - public String getName() { - return name; - } - - @Exported(visibility=9) - public float getDuration() { - return duration; - } - - /** - * The stdout of this test. - * - * @since 1.281 - * @see CaseResult#getStdout() - */ - @Exported - public String getStdout() { - return stdout; - } - - /** - * The stderr of this test. - * - * @since 1.281 - * @see CaseResult#getStderr() - */ - @Exported - public String getStderr() { - return stderr; - } - - /** - * The absolute path to the original test report. OS-dependent. - */ - public String getFile() { - return file; - } - - public hudson.tasks.junit.TestResult getParent() { - return parent; - } - - @Exported(visibility=9) - public String getTimestamp() { - return timestamp; - } - - @Exported(visibility=9) - public String getId() { - return id; - } - - @Exported(inline=true,visibility=9) - public List getCases() { - return cases; - } - - public SuiteResult getPreviousResult() { - hudson.tasks.test.TestResult pr = parent.getPreviousResult(); - if(pr==null) return null; - if(pr instanceof hudson.tasks.junit.TestResult) - return ((hudson.tasks.junit.TestResult)pr).getSuite(name); - return null; - } - - /** - * Returns the {@link CaseResult} whose {@link CaseResult#getName()} - * is the same as the given string. - * - *

- * Note that test name needs not be unique. - */ - public CaseResult getCase(String name) { - return casesByName().get(name); - } - - public Set getClassNames() { - Set result = new HashSet(); - for (CaseResult c : cases) { - result.add(c.getClassName()); - } - return result; - } - - /** KLUGE. We have to call this to prevent freeze() - * from calling c.freeze() on all its children, - * because that in turn calls c.getOwner(), - * which requires a non-null parent. - * @param parent - */ - void setParent(hudson.tasks.junit.TestResult parent) { - this.parent = parent; - } - - /*package*/ boolean freeze(hudson.tasks.junit.TestResult owner) { - if(this.parent!=null) - return false; // already frozen - - this.parent = owner; - for (CaseResult c : cases) - c.freeze(this); - return true; - } - - private static final long serialVersionUID = 1L; - - private static final Pattern SUREFIRE_FILENAME = Pattern.compile("TEST-(.+)\\.xml"); -} diff --git a/core/src/main/java/hudson/tasks/junit/TestAction.java b/core/src/main/java/hudson/tasks/junit/TestAction.java deleted file mode 100644 index ec2608ac96c4..000000000000 --- a/core/src/main/java/hudson/tasks/junit/TestAction.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.Action; - -/** - * - * Jelly (all optional): - *

    - *
  • index.jelly: included at the top of the test page
  • - *
  • summary.jelly: included in a collapsed panel on the test parent page
  • - *
  • badge.jelly: shown after the test link on the test parent page
  • - *
- * - * @author tom - * @since 1.320 - * @see TestDataPublisher - */ -public abstract class TestAction implements Action { - - /** - * Returns text with annotations. - */ - public String annotate(String text) { - return text; - } - -} diff --git a/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java b/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java deleted file mode 100644 index 751fb60707fc..000000000000 --- a/core/src/main/java/hudson/tasks/junit/TestDataPublisher.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.DescriptorExtensionList; -import hudson.Extension; -import hudson.ExtensionPoint; -import hudson.Launcher; -import hudson.model.*; -import jenkins.model.Jenkins; - -import java.io.IOException; - -/** - * Contributes {@link TestAction}s to test results. - * - * This enables plugins to annotate test results and provide richer UI, such as letting users - * claim test failures, allowing people to file bugs, or more generally, additional actions, views, etc. - * - *

- * To register your implementation, put {@link Extension} on your descriptor implementation. - * - * @since 1.320 - */ -public abstract class TestDataPublisher extends AbstractDescribableImpl implements ExtensionPoint { - - /** - * Called after test results are collected by Jenkins, to create a resolver for {@link TestAction}s. - * - * @return - * can be null to indicate that there's nothing to contribute for this test result. - */ - public abstract TestResultAction.Data getTestData( - AbstractBuild build, Launcher launcher, - BuildListener listener, TestResult testResult) throws IOException, InterruptedException; - - public static DescriptorExtensionList> all() { - return Jenkins.getInstance().>getDescriptorList(TestDataPublisher.class); - } - -} diff --git a/core/src/main/java/hudson/tasks/junit/TestNameTransformer.java b/core/src/main/java/hudson/tasks/junit/TestNameTransformer.java deleted file mode 100644 index a10ec0754e3b..000000000000 --- a/core/src/main/java/hudson/tasks/junit/TestNameTransformer.java +++ /dev/null @@ -1,42 +0,0 @@ -package hudson.tasks.junit; - -import hudson.ExtensionList; -import hudson.ExtensionPoint; -import jenkins.model.Jenkins; - -/** - * Allow extensions to transform the class/package/method name for JUnit test - * cases which will be displayed on the test result page. - * - * This is useful for alternative JVM languages like Scala that allow - * identifiers with invalid characters by encoding them: an extension can - * decode the identifier so it is displayed correctly. - * - * @since 1.515 - */ - -public abstract class TestNameTransformer implements ExtensionPoint { - /** - * Transform the class/package/method name. - * - * @param name - * Class name (may be simple or fully qualified), package name, or - * method name from a JUnit test. - * @return - * The transformed name, or the name that was passed in if it doesn't - * need to be changed. - */ - public abstract String transformName(String name); - - public static String getTransformedName(String name) { - String transformedName = name; - for (TestNameTransformer transformer : all()) { - transformedName = transformer.transformName(transformedName); - } - return transformedName; - } - - public static ExtensionList all() { - return ExtensionList.lookup(TestNameTransformer.class); - } -} diff --git a/core/src/main/java/hudson/tasks/junit/TestObject.java b/core/src/main/java/hudson/tasks/junit/TestObject.java deleted file mode 100644 index 108e2359032b..000000000000 --- a/core/src/main/java/hudson/tasks/junit/TestObject.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Tom Huybrechts, Yahoo! Inc., InfraDNA, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.AbstractBuild; -import hudson.model.AbstractModelObject; -import hudson.model.Api; -import hudson.tasks.test.AbstractTestResultAction; -import org.kohsuke.stapler.export.ExportedBean; - -import java.io.Serializable; -import java.util.List; - -/** - * Stub of base class for all test result objects. The real implementation of - * the TestObject is in hudson.tasks.test.TestObject. This class simply - * defines abstract methods so that legacy code will continue to compile. - * - * @deprecated - * Use {@link hudson.tasks.test.TestObject} instead. - * - * @author Kohsuke Kawaguchi - */ -@ExportedBean -public abstract class TestObject extends AbstractModelObject implements Serializable { - public abstract AbstractBuild getOwner() ; - - - public abstract TestObject getParent(); - - public abstract String getId(); - /** - * Returns url relative to TestResult - */ - public abstract String getUrl(); - - public abstract TestResult getTestResult(); - - public abstract AbstractTestResultAction getTestResultAction(); - - public abstract List getTestActions(); - - public abstract T getTestAction(Class klazz); - - /** - * Gets the counter part of this {@link TestObject} in the previous run. - * - * @return null if no such counter part exists. - */ - public abstract TestObject getPreviousResult(); - - public abstract TestObject getResultInBuild(AbstractBuild build); - - /** - * Time took to run this test. In seconds. - */ - public abstract float getDuration(); - - /** - * Returns the string representation of the {@link #getDuration()}, in a - * human readable format. - */ - public abstract String getDurationString(); - - public abstract String getDescription(); - - public abstract void setDescription(String description); - - /** - * Exposes this object through the remote API. - */ - public abstract Api getApi(); - - /** - * Gets the name of this object. - */ - public abstract String getName(); - - /** - * Gets the version of {@link #getName()} that's URL-safe. - */ - public abstract String getSafeName(); - - public abstract String getSearchUrl(); - - /** - * Gets the total number of passed tests. - */ - public abstract int getPassCount(); - - /** - * Gets the total number of failed tests. - */ - public abstract int getFailCount(); - - /** - * Gets the total number of skipped tests. - */ - public abstract int getSkipCount(); - - /** - * Gets the total number of tests. - */ - public abstract int getTotalCount(); - - public abstract History getHistory(); - -// public abstract Object getDynamic(String token, StaplerRequest req, -// StaplerResponse rsp); -// -// public abstract HttpResponse doSubmitDescription( -// @QueryParameter String description) throws IOException, -// ServletException; - -} diff --git a/core/src/main/java/hudson/tasks/junit/TestResult.java b/core/src/main/java/hudson/tasks/junit/TestResult.java deleted file mode 100644 index 5010a6e87f67..000000000000 --- a/core/src/main/java/hudson/tasks/junit/TestResult.java +++ /dev/null @@ -1,646 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, id:cactusman, Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.AbortException; -import hudson.Util; -import hudson.model.AbstractBuild; -import hudson.model.Run; -import hudson.tasks.test.AbstractTestResultAction; -import hudson.tasks.test.MetaTabulatedResult; -import hudson.tasks.test.TestObject; - -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.TreeMap; - -import org.apache.tools.ant.DirectoryScanner; -import org.dom4j.DocumentException; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.export.Exported; - -/** - * Root of all the test results for one build. - * - * @author Kohsuke Kawaguchi - */ -public final class TestResult extends MetaTabulatedResult { - - /** - * List of all {@link SuiteResult}s in this test. - * This is the core data structure to be persisted in the disk. - */ - private final List suites = new ArrayList(); - - /** - * {@link #suites} keyed by their names for faster lookup. - */ - private transient Map suitesByName; - - /** - * Results tabulated by package. - */ - private transient Map byPackages; - - // set during the freeze phase - private transient AbstractTestResultAction parentAction; - - private transient TestObject parent; - - /** - * Number of all tests. - */ - private transient int totalTests; - - private transient int skippedTests; - - private float duration; - - /** - * Number of failed/error tests. - */ - private transient List failedTests; - - private final boolean keepLongStdio; - - /** - * Creates an empty result. - */ - public TestResult() { - this(false); - } - - /** - * @since 1.522 - */ - public TestResult(boolean keepLongStdio) { - this.keepLongStdio = keepLongStdio; - } - - @Deprecated - public TestResult(long buildTime, DirectoryScanner results) throws IOException { - this(buildTime, results, false); - } - - /** - * Collect reports from the given {@link DirectoryScanner}, while - * filtering out all files that were created before the given time. - * @param keepLongStdio if true, retain a suite's complete stdout/stderr even if this is huge and the suite passed - * @since 1.358 - */ - public TestResult(long buildTime, DirectoryScanner results, boolean keepLongStdio) throws IOException { - this.keepLongStdio = keepLongStdio; - parse(buildTime, results); - } - - public TestObject getParent() { - return parent; - } - - @Override - public void setParent(TestObject parent) { - this.parent = parent; - } - - @Override - public TestResult getTestResult() { - return this; - } - - /** - * Collect reports from the given {@link DirectoryScanner}, while - * filtering out all files that were created before the given time. - */ - public void parse(long buildTime, DirectoryScanner results) throws IOException { - String[] includedFiles = results.getIncludedFiles(); - File baseDir = results.getBasedir(); - parse(buildTime,baseDir,includedFiles); - } - - /** - * Collect reports from the given report files, while - * filtering out all files that were created before the given time. - * - * @since 1.426 - */ - public void parse(long buildTime, File baseDir, String[] reportFiles) throws IOException { - - boolean parsed=false; - - for (String value : reportFiles) { - File reportFile = new File(baseDir, value); - // only count files that were actually updated during this build - if ( (buildTime-3000/*error margin*/ <= reportFile.lastModified())) { - parsePossiblyEmpty(reportFile); - parsed = true; - } - } - - if(!parsed) { - long localTime = System.currentTimeMillis(); - if(localTime < buildTime-1000) /*margin*/ - // build time is in the the future. clock on this slave must be running behind - throw new AbortException( - "Clock on this slave is out of sync with the master, and therefore \n" + - "I can't figure out what test results are new and what are old.\n" + - "Please keep the slave clock in sync with the master."); - - File f = new File(baseDir,reportFiles[0]); - throw new AbortException( - String.format( - "Test reports were found but none of them are new. Did tests run? %n"+ - "For example, %s is %s old%n", f, - Util.getTimeSpanString(buildTime-f.lastModified()))); - } - } - - /** - * Collect reports from the given report files - * - * @since 1.500 - */ - public void parse(long buildTime, Iterable reportFiles) throws IOException { - boolean parsed=false; - - for (File reportFile : reportFiles) { - // only count files that were actually updated during this build - if ( (buildTime-3000/*error margin*/ <= reportFile.lastModified())) { - parsePossiblyEmpty(reportFile); - parsed = true; - } - } - - if(!parsed) { - long localTime = System.currentTimeMillis(); - if(localTime < buildTime-1000) /*margin*/ - // build time is in the the future. clock on this slave must be running behind - throw new AbortException( - "Clock on this slave is out of sync with the master, and therefore \n" + - "I can't figure out what test results are new and what are old.\n" + - "Please keep the slave clock in sync with the master."); - - File f = reportFiles.iterator().next(); - throw new AbortException( - String.format( - "Test reports were found but none of them are new. Did tests run? %n"+ - "For example, %s is %s old%n", f, - Util.getTimeSpanString(buildTime-f.lastModified()))); - } - - } - - private void parsePossiblyEmpty(File reportFile) throws IOException { - if(reportFile.length()==0) { - // this is a typical problem when JVM quits abnormally, like OutOfMemoryError during a test. - SuiteResult sr = new SuiteResult(reportFile.getName(), "", ""); - sr.addCase(new CaseResult(sr,"","Test report file "+reportFile.getAbsolutePath()+" was length 0")); - add(sr); - } else { - parse(reportFile); - } - } - - private void add(SuiteResult sr) { - for (SuiteResult s : suites) { - // JENKINS-12457: If a testsuite is distributed over multiple files, merge it into a single SuiteResult: - if(s.getName().equals(sr.getName()) && nullSafeEq(s.getId(),sr.getId())) { - - // However, a common problem is that people parse TEST-*.xml as well as TESTS-TestSuite.xml. - // In that case consider the result file as a duplicate and discard it. - // see http://jenkins.361315.n4.nabble.com/Problem-with-duplicate-build-execution-td371616.html for discussion. - if(strictEq(s.getTimestamp(),sr.getTimestamp())) { - return; - } - - for (CaseResult cr: sr.getCases()) { - s.addCase(cr); - cr.replaceParent(s); - } - duration += sr.getDuration(); - return; - } - } - suites.add(sr); - duration += sr.getDuration(); - } - - private boolean strictEq(Object lhs, Object rhs) { - return lhs != null && rhs != null && lhs.equals(rhs); - } - - private boolean nullSafeEq(Object lhs, Object rhs) { - if (lhs == null) { - return rhs == null; - } - return lhs.equals(rhs); - } - - /** - * Parses an additional report file. - */ - public void parse(File reportFile) throws IOException { - try { - for (SuiteResult suiteResult : SuiteResult.parse(reportFile, keepLongStdio)) - add(suiteResult); - } catch (InterruptedException e) { - throw new IOException("Failed to read "+reportFile,e); - } catch (RuntimeException e) { - throw new IOException("Failed to read "+reportFile,e); - } catch (DocumentException e) { - if (!reportFile.getPath().endsWith(".xml")) { - throw new IOException("Failed to read "+reportFile+"\n"+ - "Is this really a JUnit report file? Your configuration must be matching too many files",e); - } else { - SuiteResult sr = new SuiteResult(reportFile.getName(), "", ""); - StringWriter writer = new StringWriter(); - e.printStackTrace(new PrintWriter(writer)); - String error = "Failed to read test report file "+reportFile.getAbsolutePath()+"\n"+writer.toString(); - sr.addCase(new CaseResult(sr,"",error)); - add(sr); - } - } - } - - public String getDisplayName() { - return Messages.TestResult_getDisplayName(); - } - - @Override - public AbstractBuild getOwner() { - return (parentAction == null? null: parentAction.owner); - } - - @Override - public hudson.tasks.test.TestResult findCorrespondingResult(String id) { - if (getId().equals(id) || (id == null)) { - return this; - } - - String firstElement = null; - String subId = null; - int sepIndex = id.indexOf('/'); - if (sepIndex < 0) { - firstElement = id; - subId = null; - } else { - firstElement = id.substring(0, sepIndex); - subId = id.substring(sepIndex + 1); - if (subId.length() == 0) { - subId = null; - } - } - - String packageName = null; - if (firstElement.equals(getId())) { - sepIndex = subId.indexOf('/'); - if (sepIndex < 0) { - packageName = subId; - subId = null; - } else { - packageName = subId.substring(0, sepIndex); - subId = subId.substring(sepIndex + 1); - } - } else { - packageName = firstElement; - subId = null; - } - PackageResult child = byPackage(packageName); - if (child != null) { - if (subId != null) { - return child.findCorrespondingResult(subId); - } else { - return child; - } - } else { - return null; - } - } - - @Override - public String getTitle() { - return Messages.TestResult_getTitle(); - } - - @Override - public String getChildTitle() { - return Messages.TestResult_getChildTitle(); - } - - @Exported(visibility=999) - @Override - public float getDuration() { - return duration; - } - - @Exported(visibility=999) - @Override - public int getPassCount() { - return totalTests-getFailCount()-getSkipCount(); - } - - @Exported(visibility=999) - @Override - public int getFailCount() { - if(failedTests==null) - return 0; - else - return failedTests.size(); - } - - @Exported(visibility=999) - @Override - public int getSkipCount() { - return skippedTests; - } - - /** - * Returns true if this doesn't have any any test results. - * @since 1.511 - */ - @Exported(visibility=999) - public boolean isEmpty() { - return getTotalCount() == 0; - } - - @Override - public List getFailedTests() { - return failedTests; - } - - /** - * Gets the "children" of this test result that passed - * - * @return the children of this test result, if any, or an empty collection - */ - @Override - public Collection getPassedTests() { - throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) - } - - /** - * Gets the "children" of this test result that were skipped - * - * @return the children of this test result, if any, or an empty list - */ - @Override - public Collection getSkippedTests() { - throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) - } - - /** - * If this test failed, then return the build number - * when this test started failing. - */ - @Override - public int getFailedSince() { - throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) - } - - /** - * If this test failed, then return the run - * when this test started failing. - */ - @Override - public Run getFailedSinceRun() { - throw new UnsupportedOperationException(); // TODO: implement!(FIXME: generated) - } - - /** - * The stdout of this test. - *

- *

- * Depending on the tool that produced the XML report, this method works somewhat inconsistently. - * With some tools (such as Maven surefire plugin), you get the accurate information, that is - * the stdout from this test case. With some other tools (such as the JUnit task in Ant), this - * method returns the stdout produced by the entire test suite. - *

- *

- * If you need to know which is the case, compare this output from {@link SuiteResult#getStdout()}. - * - * @since 1.294 - */ - @Override - public String getStdout() { - StringBuilder sb = new StringBuilder(); - for (SuiteResult suite: suites) { - sb.append("Standard Out (stdout) for Suite: " + suite.getName()); - sb.append(suite.getStdout()); - } - return sb.toString(); - } - - /** - * The stderr of this test. - * - * @see #getStdout() - * @since 1.294 - */ - @Override - public String getStderr() { - StringBuilder sb = new StringBuilder(); - for (SuiteResult suite: suites) { - sb.append("Standard Error (stderr) for Suite: " + suite.getName()); - sb.append(suite.getStderr()); - } - return sb.toString(); - } - - /** - * If there was an error or a failure, this is the stack trace, or otherwise null. - */ - @Override - public String getErrorStackTrace() { - return "No error stack traces available at this level. Drill down to individual tests to find stack traces."; - } - - /** - * If there was an error or a failure, this is the text from the message. - */ - @Override - public String getErrorDetails() { - return "No error details available at this level. Drill down to individual tests to find details."; - } - - /** - * @return true if the test was not skipped and did not fail, false otherwise. - */ - @Override - public boolean isPassed() { - return (getFailCount() == 0); - } - - @Override - public Collection getChildren() { - return byPackages.values(); - } - - /** - * Whether this test result has children. - */ - @Override - public boolean hasChildren() { - return !suites.isEmpty(); - } - - @Exported(inline=true,visibility=9) - public Collection getSuites() { - return suites; - } - - - @Override - public String getName() { - return "junit"; - } - - @Override - public Object getDynamic(String token, StaplerRequest req, StaplerResponse rsp) { - if (token.equals(getId())) { - return this; - } - - PackageResult result = byPackage(token); - if (result != null) { - return result; - } else { - return super.getDynamic(token, req, rsp); - } - } - - public PackageResult byPackage(String packageName) { - return byPackages.get(packageName); - } - - public SuiteResult getSuite(String name) { - return suitesByName.get(name); - } - - @Override - public void setParentAction(AbstractTestResultAction action) { - this.parentAction = action; - tally(); // I want to be sure to inform our children when we get an action. - } - - @Override - public AbstractTestResultAction getParentAction() { - return this.parentAction; - } - - /** - * Recount my children. - */ - @Override - public void tally() { - /// Empty out data structures - // TODO: free children? memmory leak? - suitesByName = new HashMap(); - failedTests = new ArrayList(); - byPackages = new TreeMap(); - - totalTests = 0; - skippedTests = 0; - - // Ask all of our children to tally themselves - for (SuiteResult s : suites) { - s.setParent(this); // kluge to prevent double-counting the results - suitesByName.put(s.getName(),s); - List cases = s.getCases(); - - for (CaseResult cr: cases) { - cr.setParentAction(this.parentAction); - cr.setParentSuiteResult(s); - cr.tally(); - String pkg = cr.getPackageName(), spkg = safe(pkg); - PackageResult pr = byPackage(spkg); - if(pr==null) - byPackages.put(spkg,pr=new PackageResult(this,pkg)); - pr.add(cr); - } - } - - for (PackageResult pr : byPackages.values()) { - pr.tally(); - skippedTests += pr.getSkipCount(); - failedTests.addAll(pr.getFailedTests()); - totalTests += pr.getTotalCount(); - } - } - - /** - * Builds up the transient part of the data structure - * from results {@link #parse(File) parsed} so far. - * - *

- * After the data is frozen, more files can be parsed - * and then freeze can be called again. - */ - public void freeze(TestResultAction parent) { - this.parentAction = parent; - if(suitesByName==null) { - // freeze for the first time - suitesByName = new HashMap(); - totalTests = 0; - failedTests = new ArrayList(); - byPackages = new TreeMap(); - } - - for (SuiteResult s : suites) { - if(!s.freeze(this)) // this is disturbing: has-a-parent is conflated with has-been-counted - continue; - - suitesByName.put(s.getName(),s); - - totalTests += s.getCases().size(); - for(CaseResult cr : s.getCases()) { - if(cr.isSkipped()) - skippedTests++; - else if(!cr.isPassed()) - failedTests.add(cr); - - String pkg = cr.getPackageName(), spkg = safe(pkg); - PackageResult pr = byPackage(spkg); - if(pr==null) - byPackages.put(spkg,pr=new PackageResult(this,pkg)); - pr.add(cr); - } - } - - Collections.sort(failedTests,CaseResult.BY_AGE); - - for (PackageResult pr : byPackages.values()) - pr.freeze(); - } - - private static final long serialVersionUID = 1L; - -} diff --git a/core/src/main/java/hudson/tasks/junit/TestResultAction.java b/core/src/main/java/hudson/tasks/junit/TestResultAction.java deleted file mode 100644 index e290210ad022..000000000000 --- a/core/src/main/java/hudson/tasks/junit/TestResultAction.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import com.thoughtworks.xstream.XStream; -import hudson.XmlFile; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.Action; -import hudson.model.BuildListener; -import hudson.tasks.test.AbstractTestResultAction; -import hudson.tasks.test.TestObject; -import hudson.util.HeapSpaceStringConverter; -import hudson.util.XStream2; -import org.kohsuke.stapler.StaplerProxy; - -import java.io.File; -import java.io.IOException; -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * {@link Action} that displays the JUnit test result. - * - *

- * The actual test reports are isolated by {@link WeakReference} - * so that it doesn't eat up too much memory. - * - * @author Kohsuke Kawaguchi - */ -public class TestResultAction extends AbstractTestResultAction implements StaplerProxy { - private transient WeakReference result; - - // Hudson < 1.25 didn't set these fields, so use Integer - // so that we can distinguish between 0 tests vs not-computed-yet. - private int failCount; - private int skipCount; - private Integer totalCount; - private Double healthScaleFactor; - private List testData = new ArrayList(); - - @Deprecated - public TestResultAction(AbstractBuild owner, TestResult result, BuildListener listener) { - super(owner); - setResult(result, listener); - } - - /** @since 1.545 */ - public TestResultAction(TestResult result, BuildListener listener) { - this(null, result, listener); - } - - /** - * Overwrites the {@link TestResult} by a new data set. - */ - public synchronized void setResult(TestResult result, BuildListener listener) { - result.freeze(this); - - totalCount = result.getTotalCount(); - failCount = result.getFailCount(); - skipCount = result.getSkipCount(); - - // persist the data - try { - getDataFile().write(result); - } catch (IOException e) { - e.printStackTrace(listener.fatalError("Failed to save the JUnit test result")); - } - - this.result = new WeakReference(result); - } - - private XmlFile getDataFile() { - return new XmlFile(XSTREAM,new File(owner.getRootDir(), "junitResult.xml")); - } - - public synchronized TestResult getResult() { - TestResult r; - if(result==null) { - r = load(); - result = new WeakReference(r); - } else { - r = result.get(); - } - - if(r==null) { - r = load(); - result = new WeakReference(r); - } - if(totalCount==null) { - totalCount = r.getTotalCount(); - failCount = r.getFailCount(); - skipCount = r.getSkipCount(); - } - return r; - } - - @Override - public int getFailCount() { - if(totalCount==null) - getResult(); // this will compute the result - return failCount; - } - - @Override - public int getSkipCount() { - if(totalCount==null) - getResult(); // this will compute the result - return skipCount; - } - - @Override - public int getTotalCount() { - if(totalCount==null) - getResult(); // this will compute the result - return totalCount; - } - - @Override - public double getHealthScaleFactor() { - return healthScaleFactor == null ? 1.0 : healthScaleFactor; - } - - public void setHealthScaleFactor(double healthScaleFactor) { - this.healthScaleFactor = Math.max(0.0,healthScaleFactor); - } - - @Override - public List getFailedTests() { - return getResult().getFailedTests(); - } - - /** - * Loads a {@link TestResult} from disk. - */ - private TestResult load() { - TestResult r; - try { - r = (TestResult)getDataFile().read(); - } catch (IOException e) { - logger.log(Level.WARNING, "Failed to load "+getDataFile(),e); - r = new TestResult(); // return a dummy - } - r.freeze(this); - return r; - } - - public Object getTarget() { - return getResult(); - } - - public List getActions(TestObject object) { - List result = new ArrayList(); - // Added check for null testData to avoid NPE from issue 4257. - if (testData != null) { - for (Data data : testData) - for (TestAction ta : data.getTestAction(object)) - if (ta != null) - result.add(ta); - } - return Collections.unmodifiableList(result); - } - - public void setData(List testData) { - this.testData = testData; - } - - /** - * Resolves {@link TestAction}s for the given {@link TestObject}. - * - *

- * This object itself is persisted as a part of {@link AbstractBuild}, so it needs to be XStream-serializable. - * - * @see TestDataPublisher - */ - public static abstract class Data { - /** - * Returns all TestActions for the testObject. - * - * @return - * Can be empty but never null. The caller must assume that the returned list is read-only. - */ - public abstract List getTestAction(hudson.tasks.junit.TestObject testObject); - } - - public Object readResolve() { - super.readResolve(); // let it do the post-deserialization work - if (testData == null) { - testData = new ArrayList(0); - } - - return this; - } - - private static final Logger logger = Logger.getLogger(TestResultAction.class.getName()); - - private static final XStream XSTREAM = new XStream2(); - - static { - XSTREAM.alias("result",TestResult.class); - XSTREAM.alias("suite",SuiteResult.class); - XSTREAM.alias("case",CaseResult.class); - XSTREAM.registerConverter(new HeapSpaceStringConverter(),100); - } - -} diff --git a/core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java b/core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java deleted file mode 100644 index f5c2a9bbdf97..000000000000 --- a/core/src/main/java/hudson/tasks/junit/XMLEntityResolver.java +++ /dev/null @@ -1,89 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Jorg Heymans - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.Extension; -import hudson.tasks.junit.SuiteResult.SuiteResultParserConfigurationContext; -import hudson.util.io.ParserConfigurator; -import org.dom4j.io.SAXReader; -import org.xml.sax.EntityResolver; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -import java.io.IOException; -import java.net.URL; -import java.util.logging.Level; -import java.util.logging.Logger; - -/** - * As the name suggest: a resolver for XML entities. - * - *

- * Basically, it provides the possibility to intercept online DTD lookups - * and instead do offline lookup by redirecting to a local directory where - * .dtd's are stored - * - * (useful when parsing testng-results.xml - which points to testng.org) - * - * @author Mikael Carneholm - */ -@Extension -public class XMLEntityResolver extends ParserConfigurator implements EntityResolver { - - private static final String TESTNG_NAMESPACE = "http://testng.org/"; - - /** - * Intercepts the lookup of publicId, systemId - */ - public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { - if (systemId != null) { - if (LOGGER.isLoggable(Level.FINE)) { - LOGGER.fine("Will try to resolve systemId [" + systemId + "]"); - } - // TestNG system-ids - if (systemId.startsWith(TESTNG_NAMESPACE)) { - LOGGER.fine("It's a TestNG document, will try to lookup DTD in classpath"); - String dtdFileName = systemId.substring(TESTNG_NAMESPACE.length()); - - URL url = getClass().getClassLoader().getResource(dtdFileName); - if (url != null) - return new InputSource(url.toString()); - } - } - // Default fallback - return null; - } - - /** - * Install EntityResolver for resolving DTDs, which are in files created by TestNG. - */ - @Override - public void configure(SAXReader reader, Object context) { - if (context instanceof SuiteResultParserConfigurationContext) { - reader.setEntityResolver(this); - } - } - - private static final Logger LOGGER = Logger.getLogger(XMLEntityResolver.class.getName()); -} diff --git a/core/src/main/java/hudson/tasks/junit/package.html b/core/src/main/java/hudson/tasks/junit/package.html deleted file mode 100644 index 5b975c0bd4dd..000000000000 --- a/core/src/main/java/hudson/tasks/junit/package.html +++ /dev/null @@ -1,27 +0,0 @@ - - - -Model objects that represent JUnit test reports. - \ No newline at end of file diff --git a/core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java b/core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java deleted file mode 100644 index ad0ad68a359b..000000000000 --- a/core/src/main/java/hudson/tasks/test/AbstractTestResultAction.java +++ /dev/null @@ -1,445 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Stephen Connolly, id:cactusman, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.Extension; -import hudson.Functions; -import hudson.model.*; -import hudson.util.*; -import hudson.util.ChartUtil.NumberOnlyBuildLabel; - -import java.awt.*; -import java.io.IOException; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import jenkins.model.RunAction2; -import org.jfree.chart.ChartFactory; -import org.jfree.chart.JFreeChart; -import org.jfree.chart.axis.CategoryAxis; -import org.jfree.chart.axis.CategoryLabelPositions; -import org.jfree.chart.axis.NumberAxis; -import org.jfree.chart.plot.CategoryPlot; -import org.jfree.chart.plot.PlotOrientation; -import org.jfree.chart.renderer.category.StackedAreaRenderer; -import org.jfree.data.category.CategoryDataset; -import org.jfree.ui.RectangleInsets; -import org.jvnet.localizer.Localizable; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; -import org.kohsuke.stapler.export.Exported; -import org.kohsuke.stapler.export.ExportedBean; - -/** - * Common base class for recording test result. - * - *

- * {@link Project} and {@link Build} recognizes {@link Action}s that derive from this, - * and displays it nicely (regardless of the underlying implementation.) - * - * @author Kohsuke Kawaguchi - */ -@ExportedBean -public abstract class AbstractTestResultAction implements HealthReportingAction, RunAction2 { - public transient AbstractBuild owner; - - private Map descriptions = new ConcurrentHashMap(); - - /** @since 1.545 */ - protected AbstractTestResultAction() {} - - /** @deprecated Use the default constructor and just call {@link Run#addAction} to associate the build with the action. */ - @Deprecated - protected AbstractTestResultAction(AbstractBuild owner) { - this.owner = owner; - } - - @Override public void onAttached(Run r) { - this.owner = (AbstractBuild) r; - } - - @Override public void onLoad(Run r) { - this.owner = (AbstractBuild) r; - } - - /** - * Gets the number of failed tests. - */ - @Exported(visibility=2) - public abstract int getFailCount(); - - /** - * Gets the number of skipped tests. - */ - @Exported(visibility=2) - public int getSkipCount() { - // Not all sub-classes will understand the concept of skipped tests. - // This default implementation is for them, so that they don't have - // to implement it (this avoids breaking existing plug-ins - i.e. those - // written before this method was added in 1.178). - // Sub-classes that do support skipped tests should over-ride this method. - return 0; - } - - /** - * Gets the total number of tests. - */ - @Exported(visibility=2) - public abstract int getTotalCount(); - - /** - * Gets the diff string of failures. - */ - public final String getFailureDiffString() { - T prev = getPreviousResult(); - if(prev==null) return ""; // no record - - return " / "+Functions.getDiffString(this.getFailCount()-prev.getFailCount()); - } - - public String getDisplayName() { - return Messages.AbstractTestResultAction_getDisplayName(); - } - - @Exported(visibility=2) - public String getUrlName() { - return "testReport"; - } - - public String getIconFileName() { - return "clipboard.png"; - } - - public HealthReport getBuildHealth() { - final double scaleFactor = getHealthScaleFactor(); - if (scaleFactor < 1e-7) { - return null; - } - final int totalCount = getTotalCount(); - final int failCount = getFailCount(); - int score = (totalCount == 0) - ? 100 - : (int) (100.0 * Math.max(1.0, Math.min(0.0, 1.0 - (scaleFactor * failCount) / totalCount))); - Localizable description, displayName = Messages._AbstractTestResultAction_getDisplayName(); - if (totalCount == 0) { - description = Messages._AbstractTestResultAction_zeroTestDescription(displayName); - } else { - description = Messages._AbstractTestResultAction_TestsDescription(displayName, failCount, totalCount); - } - return new HealthReport(score, description); - } - - /** - * Returns how much to scale the test related health by. - * @return a factor of {@code 1.0} to have the test health be the percentage of tests passing so 20% of tests - * failing will report as 80% health. A factor of {@code 2.0} will mean that 20% of tests failing will report as 60% - * health. A factor of {@code 2.5} will mean that 20% of test failing will report as 50% health. A factor of - * {@code 4.0} will mean that 20% of tests failing will report as 20% health. A factor of {@code 5.0} will mean - * that 20% (or more) of tests failing will report as 0% health. A factor of {@code 0.0} will disable test health - * reporting. - */ - public double getHealthScaleFactor() { - return 1.0; - } - - /** - * Exposes this object to the remote API. - */ - public Api getApi() { - return new Api(this); - } - - /** - * Returns the object that represents the actual test result. - * This method is used by the remote API so that the XML/JSON - * that we are sending won't contain unnecessary indirection - * (that is, {@link AbstractTestResultAction} in between. - * - *

- * If such a concept doesn't make sense for a particular subtype, - * return this. - */ - public abstract Object getResult(); - - /** - * Gets the test result of the previous build, if it's recorded, or null. - */ - public T getPreviousResult() { - return (T)getPreviousResult(getClass(), true); - } - - private U getPreviousResult(Class type, boolean eager) { - Set loadedBuilds = eager ? null : owner.getProject()._getRuns().getLoadedBuilds().keySet(); - AbstractBuild b = owner; - while(true) { - b = eager || loadedBuilds.contains(b.number - /* assuming there are no gaps */1) ? b.getPreviousBuild() : null; - if(b==null) - return null; - U r = b.getAction(type); - if(r!=null) - return r; - } - } - - public TestResult findPreviousCorresponding(TestResult test) { - T previousResult = getPreviousResult(); - if (previousResult != null) { - TestResult testResult = (TestResult)getResult(); - return testResult.findCorrespondingResult(test.getId()); - } - - return null; - } - - public TestResult findCorrespondingResult(String id) { - return ((TestResult)getResult()).findCorrespondingResult(id); - } - - /** - * A shortcut for summary.jelly - * - * @return List of failed tests from associated test result. - */ - public List getFailedTests() { - return Collections.emptyList(); - } - - /** - * Generates a PNG image for the test result trend. - */ - public void doGraph( StaplerRequest req, StaplerResponse rsp) throws IOException { - if(ChartUtil.awtProblemCause!=null) { - // not available. send out error message - rsp.sendRedirect2(req.getContextPath()+"/images/headless.png"); - return; - } - - if(req.checkIfModified(owner.getTimestamp(),rsp)) - return; - - ChartUtil.generateGraph(req,rsp,createChart(req,buildDataSet(req)),calcDefaultSize()); - } - - /** - * Generates a clickable map HTML for {@link #doGraph(StaplerRequest, StaplerResponse)}. - */ - public void doGraphMap( StaplerRequest req, StaplerResponse rsp) throws IOException { - if(req.checkIfModified(owner.getTimestamp(),rsp)) - return; - ChartUtil.generateClickableMap(req,rsp,createChart(req,buildDataSet(req)),calcDefaultSize()); - } - - /** - * Returns a full path down to a test result - */ - public String getTestResultPath(TestResult it) { - return getUrlName() + "/" + it.getRelativePathFrom(null); - } - - /** - * Determines the default size of the trend graph. - * - * This is default because the query parameter can choose arbitrary size. - * If the screen resolution is too low, use a smaller size. - */ - private Area calcDefaultSize() { - Area res = Functions.getScreenResolution(); - if(res!=null && res.width<=800) - return new Area(250,100); - else - return new Area(500,200); - } - - private CategoryDataset buildDataSet(StaplerRequest req) { - boolean failureOnly = Boolean.valueOf(req.getParameter("failureOnly")); - - DataSetBuilder dsb = new DataSetBuilder(); - - for (AbstractTestResultAction a = this; a != null; a = a.getPreviousResult(AbstractTestResultAction.class, false)) { - dsb.add( a.getFailCount(), "failed", new NumberOnlyBuildLabel(a.owner)); - if(!failureOnly) { - dsb.add( a.getSkipCount(), "skipped", new NumberOnlyBuildLabel(a.owner)); - dsb.add( a.getTotalCount()-a.getFailCount()-a.getSkipCount(),"total", new NumberOnlyBuildLabel(a.owner)); - } - } - return dsb.build(); - } - - private JFreeChart createChart(StaplerRequest req,CategoryDataset dataset) { - - final String relPath = getRelPath(req); - - final JFreeChart chart = ChartFactory.createStackedAreaChart( - null, // chart title - null, // unused - "count", // range axis label - dataset, // data - PlotOrientation.VERTICAL, // orientation - false, // include legend - true, // tooltips - false // urls - ); - - // NOW DO SOME OPTIONAL CUSTOMISATION OF THE CHART... - - // set the background color for the chart... - -// final StandardLegend legend = (StandardLegend) chart.getLegend(); -// legend.setAnchor(StandardLegend.SOUTH); - - chart.setBackgroundPaint(Color.white); - - final CategoryPlot plot = chart.getCategoryPlot(); - - // plot.setAxisOffset(new Spacer(Spacer.ABSOLUTE, 5.0, 5.0, 5.0, 5.0)); - plot.setBackgroundPaint(Color.WHITE); - plot.setOutlinePaint(null); - plot.setForegroundAlpha(0.8f); -// plot.setDomainGridlinesVisible(true); -// plot.setDomainGridlinePaint(Color.white); - plot.setRangeGridlinesVisible(true); - plot.setRangeGridlinePaint(Color.black); - - CategoryAxis domainAxis = new ShiftedCategoryAxis(null); - plot.setDomainAxis(domainAxis); - domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_90); - domainAxis.setLowerMargin(0.0); - domainAxis.setUpperMargin(0.0); - domainAxis.setCategoryMargin(0.0); - - final NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis(); - rangeAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); - - StackedAreaRenderer ar = new StackedAreaRenderer2() { - @Override - public String generateURL(CategoryDataset dataset, int row, int column) { - NumberOnlyBuildLabel label = (NumberOnlyBuildLabel) dataset.getColumnKey(column); - return relPath+label.build.getNumber()+"/testReport/"; - } - - @Override - public String generateToolTip(CategoryDataset dataset, int row, int column) { - NumberOnlyBuildLabel label = (NumberOnlyBuildLabel) dataset.getColumnKey(column); - AbstractTestResultAction a = label.build.getAction(AbstractTestResultAction.class); - switch (row) { - case 0: - return String.valueOf(Messages.AbstractTestResultAction_fail(label.build.getDisplayName(), a.getFailCount())); - case 1: - return String.valueOf(Messages.AbstractTestResultAction_skip(label.build.getDisplayName(), a.getSkipCount())); - default: - return String.valueOf(Messages.AbstractTestResultAction_test(label.build.getDisplayName(), a.getTotalCount())); - } - } - }; - plot.setRenderer(ar); - ar.setSeriesPaint(0,ColorPalette.RED); // Failures. - ar.setSeriesPaint(1,ColorPalette.YELLOW); // Skips. - ar.setSeriesPaint(2,ColorPalette.BLUE); // Total. - - // crop extra space around the graph - plot.setInsets(new RectangleInsets(0,0,0,5.0)); - - return chart; - } - - private String getRelPath(StaplerRequest req) { - String relPath = req.getParameter("rel"); - if(relPath==null) return ""; - return relPath; - } - - /** - * {@link TestObject}s do not have their own persistence mechanism, so updatable data of {@link TestObject}s - * need to be persisted by the owning {@link AbstractTestResultAction}, and this method and - * {@link #setDescription(TestObject, String)} provides that logic. - * - *

- * The default implementation stores information in the 'this' object. - * - * @see TestObject#getDescription() - */ - protected String getDescription(TestObject object) { - return descriptions.get(object.getId()); - } - - protected void setDescription(TestObject object, String description) { - descriptions.put(object.getId(), description); - } - - public Object readResolve() { - if (descriptions == null) { - descriptions = new ConcurrentHashMap(); - } - - return this; - } - - @Extension public static final class Summarizer extends Run.StatusSummarizer { - @Override public Run.Summary summarize(Run run, ResultTrend trend) { - AbstractTestResultAction trN = run.getAction(AbstractTestResultAction.class); - if (trN == null) { - return null; - } - Boolean worseOverride; - switch (trend) { - case NOW_UNSTABLE: - worseOverride = false; - break; - case UNSTABLE: - worseOverride = true; - break; - case STILL_UNSTABLE: - worseOverride = null; - break; - default: - return null; - } - Run prev = run.getPreviousBuild(); - AbstractTestResultAction trP = prev == null ? null : prev.getAction(AbstractTestResultAction.class); - if (trP == null) { - if (trN.getFailCount() > 0) { - return new Run.Summary(worseOverride != null ? worseOverride : true, Messages.Run_Summary_TestFailures(trN.getFailCount())); - } - } else { - if (trN.getFailCount() != 0) { - if (trP.getFailCount() == 0) { - return new Run.Summary(worseOverride != null ? worseOverride : true, Messages.Run_Summary_TestsStartedToFail(trN.getFailCount())); - } - if (trP.getFailCount() < trN.getFailCount()) { - return new Run.Summary(worseOverride != null ? worseOverride : true, Messages.Run_Summary_MoreTestsFailing(trN.getFailCount() - trP.getFailCount(), trN.getFailCount())); - } - if (trP.getFailCount() > trN.getFailCount()) { - return new Run.Summary(worseOverride != null ? worseOverride : false, Messages.Run_Summary_LessTestsFailing(trP.getFailCount() - trN.getFailCount(), trN.getFailCount())); - } - - return new Run.Summary(worseOverride != null ? worseOverride : false, Messages.Run_Summary_TestsStillFailing(trN.getFailCount())); - } - } - return null; - } - } - -} diff --git a/core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java b/core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java deleted file mode 100644 index 29947d3aeac3..000000000000 --- a/core/src/main/java/hudson/tasks/test/AggregatedTestResultAction.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Red Hat, Inc., Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.model.AbstractBuild; -import org.kohsuke.stapler.export.Exported; -import org.kohsuke.stapler.export.ExportedBean; - -import java.util.AbstractList; -import java.util.ArrayList; -import java.util.List; - -/** - * {@link AbstractTestResultAction} that aggregates all the test results - * from the corresponding {@link AbstractBuild}s. - * - *

- * (This has nothing to do with {@link AggregatedTestResultPublisher}, unfortunately) - * - * @author Kohsuke Kawaguchi - */ -@ExportedBean -public abstract class AggregatedTestResultAction extends AbstractTestResultAction { - private int failCount,skipCount,totalCount; - - public static final class Child { - /** - * Name of the module. Could be relative to something. - * The interpretation of this is done by - * {@link AggregatedTestResultAction#getChildName(AbstractTestResultAction)} and - * {@link AggregatedTestResultAction#resolveChild(Child)} and - */ - public final String name; - public final int build; - - public Child(String name, int build) { - this.name = name; - this.build = build; - } - } - - /** - * child builds whose test results are used for aggregation. - */ - public final List children = new ArrayList(); - - @Deprecated - public AggregatedTestResultAction(AbstractBuild owner) { - super(owner); - } - - /** @since 1.545 */ - public AggregatedTestResultAction() {} - - protected void update(List children) { - failCount = skipCount = totalCount = 0; - this.children.clear(); - for (AbstractTestResultAction tr : children) - add(tr); - } - - protected void add(AbstractTestResultAction child) { - failCount += child.getFailCount(); - skipCount += child.getSkipCount(); - totalCount += child.getTotalCount(); - this.children.add(new Child(getChildName(child),child.owner.number)); - } - - public int getFailCount() { - return failCount; - } - - @Override - public int getSkipCount() { - return skipCount; - } - - public int getTotalCount() { - return totalCount; - } - - public List getResult() { - // I think this is a reasonable default. - return getChildReports(); - } - - @Override - public List getFailedTests() { - List failedTests = new ArrayList(failCount); - for (ChildReport childReport : getChildReports()) { - if (childReport.result instanceof TestResult) { - failedTests.addAll(((TestResult) childReport.result).getFailedTests()); - } - } - return failedTests; - } - - /** - * Data-binding bean for the remote API. - */ - @ExportedBean(defaultVisibility=2) - public static final class ChildReport { - @Exported - public final AbstractBuild child; - @Exported - public final Object result; - - public ChildReport(AbstractBuild child, AbstractTestResultAction result) { - this.child = child; - this.result = result!=null ? result.getResult() : null; - } - } - - /** - * Mainly for the remote API. Expose results from children. - */ - @Exported(inline=true) - public List getChildReports() { - return new AbstractList() { - public ChildReport get(int index) { - return new ChildReport( - resolveChild(children.get(index)), - getChildReport(children.get(index))); - } - - public int size() { - return children.size(); - } - }; - } - - protected abstract String getChildName(AbstractTestResultAction tr); - public abstract AbstractBuild resolveChild(Child child); - - /** - * Uses {@link #resolveChild(Child)} and obtain the - * {@link AbstractTestResultAction} object for the given child. - */ - protected AbstractTestResultAction getChildReport(Child child) { - AbstractBuild b = resolveChild(child); - if(b==null) return null; - return b.getAction(AbstractTestResultAction.class); - } - - /** - * Since there's no TestObject that points this action as the owner - * (aggregated {@link TestObject}s point to their respective real owners, not 'this'), - * so this method should be never invoked. - * - * @deprecated - * so that IDE warns you if you accidentally try to call it. - */ - @Override - protected final String getDescription(TestObject object) { - throw new AssertionError(); - } - - /** - * See {@link #getDescription(TestObject)} - * - * @deprecated - * so that IDE warns you if you accidentally try to call it. - */ - @Override - protected final void setDescription(TestObject object, String description) { - throw new AssertionError(); - } -} diff --git a/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java b/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java deleted file mode 100644 index 612076f102e9..000000000000 --- a/core/src/main/java/hudson/tasks/test/AggregatedTestResultPublisher.java +++ /dev/null @@ -1,378 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2011, Sun Microsystems, Inc., Kohsuke Kawaguchi, Michael B. Donohue, Yahoo!, Inc., Andrew Bayer - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.AutoCompletionCandidates; -import hudson.Extension; -import hudson.Launcher; -import hudson.Util; -import static hudson.Util.fixNull; -import hudson.model.Action; -import hudson.model.BuildListener; -import hudson.model.Fingerprint.RangeSet; -import hudson.model.InvisibleAction; -import hudson.model.ItemGroup; -import jenkins.model.Jenkins; -import hudson.model.Item; -import hudson.model.Job; -import hudson.model.Result; -import hudson.model.Run; -import hudson.model.TaskListener; -import hudson.model.listeners.RunListener; -import hudson.tasks.BuildStepDescriptor; -import hudson.tasks.BuildStepMonitor; -import hudson.tasks.Fingerprinter.FingerprintAction; -import hudson.tasks.Publisher; -import hudson.tasks.Recorder; -import hudson.util.FormValidation; -import net.sf.json.JSONObject; -import org.kohsuke.stapler.AncestorInPath; -import org.kohsuke.stapler.QueryParameter; -import org.kohsuke.stapler.StaplerRequest; - -import java.io.IOException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import javax.annotation.CheckForNull; -import org.kohsuke.accmod.Restricted; -import org.kohsuke.accmod.restrictions.NoExternalUse; - -/** - * Aggregates downstream test reports into a single consolidated report, - * so that people can see the overall test results in one page - * when tests are scattered across many different jobs. - * - * @author Kohsuke Kawaguchi - */ -public class AggregatedTestResultPublisher extends Recorder { - /** - * Jobs to aggregate. Comma separated. - * Null if triggering downstreams. - */ - public final String jobs; - - /** - * Should failed builds be included? - */ - public final boolean includeFailedBuilds; - - public AggregatedTestResultPublisher(String jobs) { - this(jobs, false); - } - - public AggregatedTestResultPublisher(String jobs, boolean includeFailedBuilds) { - this.jobs = Util.fixEmptyAndTrim(jobs); - this.includeFailedBuilds = includeFailedBuilds; - } - - public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { - // add a TestResult just so that it can show up later. - build.addAction(new TestResultAction(jobs, includeFailedBuilds, build)); - return true; - } - - public BuildStepMonitor getRequiredMonitorService() { - return BuildStepMonitor.NONE; - } - - @Override public Collection getProjectActions(AbstractProject project) { - return Collections.singleton(new TestResultProjectAction(project)); - } - - /** - * Action that serves the aggregated record. - * - * TODO: persist some information so that even when some of the individuals - * are gone, we can still retain some useful information. - */ - public static final class TestResultAction extends AbstractTestResultAction { - /** - * Jobs to aggregate. Comma separated. - * Null if doing downstream projects. - */ - private final @CheckForNull String jobs; - - /** - * Should failed builds be included? - */ - private final boolean includeFailedBuilds; - - /** - * The last time the fields of this object is computed from the rest. - */ - private transient long lastUpdated = 0; - /** - * When was the last time any build completed? - */ - private static long lastChanged = 0; - - private transient int failCount; - private transient int totalCount; - private transient List individuals; - /** - * Projects that haven't run yet. - */ - private transient List didntRun; - private transient List noFingerprints; - - @SuppressWarnings("deprecation") // calls getProject in constructor, so needs owner immediately - public TestResultAction(String jobs, boolean includeFailedBuilds, AbstractBuild owner) { - super(owner); - this.includeFailedBuilds = includeFailedBuilds; - - if(jobs==null) { - // resolve null as the transitive downstream jobs - StringBuilder buf = new StringBuilder(); - for (AbstractProject p : getProject().getTransitiveDownstreamProjects()) { - if(buf.length()>0) buf.append(','); - buf.append(p.getFullName()); - } - jobs = buf.toString(); - } - this.jobs = jobs; - } - - /** - * Gets the jobs to be monitored. - */ - public Collection getJobs() { - List r = new ArrayList(); - for (String job : Util.tokenize(jobs,",")) { - AbstractProject j = Jenkins.getInstance().getItemByFullName(job.trim(), AbstractProject.class); - if(j!=null) - r.add(j); - } - return r; - } - - public boolean getIncludeFailedBuilds() { - return includeFailedBuilds; - } - - private AbstractProject getProject() { - return owner.getProject(); - } - - public int getFailCount() { - upToDateCheck(); - return failCount; - } - - public int getTotalCount() { - upToDateCheck(); - return totalCount; - } - - public Object getResult() { - upToDateCheck(); - return this; - } - - /** - * Since there's no TestObject that points this action as the owner - * (aggregated {@link TestObject}s point to their respective real owners, not 'this'), - * so this method should be never invoked. - * - * @deprecated - * so that IDE warns you if you accidentally try to call it. - */ - @Override - protected String getDescription(TestObject object) { - throw new AssertionError(); - } - - /** - * See {@link #getDescription(TestObject)} - * - * @deprecated - * so that IDE warns you if you accidentally try to call it. - */ - @Override - protected void setDescription(TestObject object, String description) { - throw new AssertionError(); - } - - /** - * Returns the individual test results that are aggregated. - */ - public List getIndividuals() { - upToDateCheck(); - return Collections.unmodifiableList(individuals); - } - - /** - * Gets the downstream projects that haven't run yet, but - * expected to produce test results. - */ - public List getDidntRun() { - return Collections.unmodifiableList(didntRun); - } - - /** - * Gets the downstream projects that have available test results, but - * do not appear to have fingerprinting enabled. - */ - public List getNoFingerprints() { - return Collections.unmodifiableList(noFingerprints); - } - - /** - * Makes sure that the data fields are up to date. - */ - private synchronized void upToDateCheck() { - // up to date check - if(lastUpdated>lastChanged) return; - lastUpdated = lastChanged+1; - - int failCount = 0; - int totalCount = 0; - List individuals = new ArrayList(); - List didntRun = new ArrayList(); - List noFingerprints = new ArrayList(); - for (AbstractProject job : getJobs()) { - RangeSet rs = owner.getDownstreamRelationship(job); - if(rs.isEmpty()) { - // is this job expected to produce a test result? - Run b; - if (includeFailedBuilds) { - b = job.getLastBuild(); - } else { - b = job.getLastSuccessfulBuild(); - } - if(b!=null && b.getAction(AbstractTestResultAction.class)!=null) { - if(b.getAction(FingerprintAction.class)!=null) { - didntRun.add(job); - } else { - noFingerprints.add(job); - } - } - } else { - for (int n : rs.listNumbersReverse()) { - Run b = job.getBuildByNumber(n); - if(b==null) continue; - Result targetResult; - if (includeFailedBuilds) { - targetResult = Result.FAILURE; - } else { - targetResult = Result.UNSTABLE; - } - - if(b.isBuilding() || b.getResult().isWorseThan(targetResult)) - continue; // don't count them - - for( AbstractTestResultAction ta : b.getActions(AbstractTestResultAction.class)) { - failCount += ta.getFailCount(); - totalCount += ta.getTotalCount(); - individuals.add(ta); - } - break; - } - } - } - - this.failCount = failCount; - this.totalCount = totalCount; - this.individuals = individuals; - this.didntRun = didntRun; - this.noFingerprints = noFingerprints; - } - - public boolean getHasFingerprintAction() { - return this.owner.getAction(FingerprintAction.class)!=null; - } - - @Override - public String getDisplayName() { - return Messages.AggregatedTestResultPublisher_Title(); - } - - @Override - public String getUrlName() { - return "aggregatedTestReport"; - } - - @Extension - public static class RunListenerImpl extends RunListener { - @Override - public void onCompleted(Run run, TaskListener listener) { - lastChanged = System.currentTimeMillis(); - } - } - } - - @Extension - public static final class DescriptorImpl extends BuildStepDescriptor { - public boolean isApplicable(Class jobType) { - return true; // for all types - } - - public String getDisplayName() { - return Messages.AggregatedTestResultPublisher_DisplayName(); - } - - @Override - public String getHelpFile() { - return "/help/tasks/aggregate-test/help.html"; - } - - public FormValidation doCheck(@AncestorInPath AbstractProject project, @QueryParameter String value) { - // Require CONFIGURE permission on this project - if(!project.hasPermission(Item.CONFIGURE)) return FormValidation.ok(); - - for (String name : Util.tokenize(fixNull(value), ",")) { - name = name.trim(); - if(Jenkins.getInstance().getItem(name,project)==null) - return FormValidation.error(hudson.tasks.Messages.BuildTrigger_NoSuchProject(name,AbstractProject.findNearest(name).getName())); - } - - return FormValidation.ok(); - } - - @Override - public AggregatedTestResultPublisher newInstance(StaplerRequest req, JSONObject formData) throws FormException { - JSONObject s = formData.getJSONObject("specify"); - if(s.isNullObject()) - return new AggregatedTestResultPublisher(null, req.getParameter("includeFailedBuilds") != null); - else - return new AggregatedTestResultPublisher(s.getString("jobs"), req.getParameter("includeFailedBuilds") != null); - } - - public AutoCompletionCandidates doAutoCompleteJobs(@QueryParameter String value, @AncestorInPath Item self, @AncestorInPath ItemGroup container) { - return AutoCompletionCandidates.ofJobNames(Job.class,value,self,container); - } - } - - @Restricted(NoExternalUse.class) - public static final class TestResultProjectAction extends InvisibleAction { - public final AbstractProject project; - private TestResultProjectAction(AbstractProject project) { - this.project = project; - } - } - -} diff --git a/core/src/main/java/hudson/tasks/test/DefaultTestResultParserImpl.java b/core/src/main/java/hudson/tasks/test/DefaultTestResultParserImpl.java deleted file mode 100644 index ffd6db285975..000000000000 --- a/core/src/main/java/hudson/tasks/test/DefaultTestResultParserImpl.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.AbortException; -import hudson.FilePath; -import hudson.FilePath.FileCallable; -import hudson.Launcher; -import hudson.Util; -import hudson.model.AbstractBuild; -import hudson.model.TaskListener; -import hudson.remoting.VirtualChannel; - -import java.io.File; -import java.io.IOException; -import java.io.Serializable; -import java.util.ArrayList; -import java.util.List; - -/** - * Default partial implementation of {@link TestResultParser} that handles GLOB dereferencing - * and other checks for user errors, such as misconfigured GLOBs, up-to-date checks on test reports. - * - *

- * The instance of the parser will be serialized to the node that performed the build and the parsing will be done - * remotely on that slave. - * - * @since 1.343 - * @author Kohsuke Kawaguchi - */ -public abstract class DefaultTestResultParserImpl extends TestResultParser implements Serializable { - /** - * This method is executed on the slave that has the report files to parse test reports and builds {@link TestResult}. - * - * @param reportFiles - * List of files to be parsed. Never be empty nor null. - * @param launcher - * Can be used to fork processes on the machine where the build is running. Never null. - * @param listener - * Use this to report progress and other problems. Never null. - * - * @throws InterruptedException - * If the user cancels the build, it will be received as a thread interruption. Do not catch - * it, and instead just forward that through the call stack. - * @throws IOException - * If you don't care about handling exceptions gracefully, you can just throw IOException - * and let the default exception handling in Hudson takes care of it. - * @throws AbortException - * If you encounter an error that you handled gracefully, throw this exception and Hudson - * will not show a stack trace. - */ - protected abstract TestResult parse(List reportFiles, Launcher launcher, TaskListener listener) throws InterruptedException, IOException; - - @Override - public TestResult parse(final String testResultLocations, final AbstractBuild build, final Launcher launcher, final TaskListener listener) throws InterruptedException, IOException { - return build.getWorkspace().act(new FileCallable() { - final boolean ignoreTimestampCheck = IGNORE_TIMESTAMP_CHECK; // so that the property can be set on the master - final long buildTime = build.getTimestamp().getTimeInMillis(); - final long nowMaster = System.currentTimeMillis(); - - public TestResult invoke(File dir, VirtualChannel channel) throws IOException, InterruptedException { - final long nowSlave = System.currentTimeMillis(); - - // files older than this timestamp is considered stale - long localBuildTime = buildTime + (nowSlave - nowMaster); - - FilePath[] paths = new FilePath(dir).list(testResultLocations); - if (paths.length==0) - throw new AbortException("No test reports that matches "+testResultLocations+" found. Configuration error?"); - - // since dir is local, paths all point to the local files - List files = new ArrayList(paths.length); - for (FilePath path : paths) { - File report = new File(path.getRemote()); - if (ignoreTimestampCheck || localBuildTime - 3000 /*error margin*/ < report.lastModified()) { - // this file is created during this build - files.add(report); - } - } - - if (files.isEmpty()) { - // none of the files were new - throw new AbortException( - String.format( - "Test reports were found but none of them are new. Did tests run? %n"+ - "For example, %s is %s old%n", paths[0].getRemote(), - Util.getTimeSpanString(localBuildTime-paths[0].lastModified()))); - } - - return parse(files,launcher,listener); - } - }); - } - - private static final long serialVersionUID = 1L; - - public static final boolean IGNORE_TIMESTAMP_CHECK = Boolean.getBoolean(TestResultParser.class.getName()+".ignoreTimestampCheck"); -} diff --git a/core/src/main/java/hudson/tasks/test/MetaTabulatedResult.java b/core/src/main/java/hudson/tasks/test/MetaTabulatedResult.java deleted file mode 100644 index b4e93e3e9538..000000000000 --- a/core/src/main/java/hudson/tasks/test/MetaTabulatedResult.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - - -import java.util.Collection; - -/** - * The purpose of this class is to provide a good place for the - * jelly to bind to. - * {@link TabulatedResult} whose immediate children - * are other {@link TabulatedResult}s. - * - * @author Kohsuke Kawaguchi - */ -public abstract class MetaTabulatedResult extends TabulatedResult { - - /** - * All failed tests. - */ - public abstract Collection getFailedTests(); - -} diff --git a/core/src/main/java/hudson/tasks/test/SimpleCaseResult.java b/core/src/main/java/hudson/tasks/test/SimpleCaseResult.java deleted file mode 100644 index f157ed089694..000000000000 --- a/core/src/main/java/hudson/tasks/test/SimpleCaseResult.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.model.AbstractBuild; -import hudson.tasks.junit.TestAction; - -import java.util.Collection; -import java.util.List; -import java.util.ArrayList; -import java.util.Collections; -import java.util.logging.Logger; - -import static java.util.Collections.emptyList; - -/** - * The simplest possible case result, with no language ties. - * Acts as if it passed, has no children, and has no failed or skipped tests. - */ -public class SimpleCaseResult extends TestResult { - protected AbstractTestResultAction parentAction; - protected final List listOnlyContainingThisObject = new ArrayList(1); - protected float duration = 1.0f; - private static final Logger LOGGER = Logger.getLogger(SimpleCaseResult.class.getName()); - - public SimpleCaseResult(float duration) { - listOnlyContainingThisObject.add(this); - } - - public SimpleCaseResult() { - this(1.0f); - } - - /** - * Sets the parent action, which means the action that binds - * this particular case result to a build. Should not be null. - * @param parentAction - */ - @Override - public void setParentAction(AbstractTestResultAction parentAction) { - this.parentAction = parentAction; - } - - @Override - public AbstractTestResultAction getParentAction() { - return this.parentAction; - } - - @Override - public TestObject getParent() { - return null; - } - - @Override - public TestResult findCorrespondingResult(String id) { - if (id.equals(getId())) { - return this; - } - - return null; - } - - /** - * Gets the "children" of this test result that failed - * - * @return the children of this test result, if any, or an empty collection - */ - @Override - public Collection getFailedTests() { - return emptyList(); - } - - /** - * Gets the "children" of this test result that passed - * - * @return the children of this test result, if any, or an empty collection - */ - @Override - public Collection getPassedTests() { - return listOnlyContainingThisObject; - } - - /** - * Gets the "children" of this test result that were skipped - * - * @return the children of this test result, if any, or an empty list - */ - @Override - public Collection getSkippedTests() { - return emptyList(); - } - - /** - * Let's pretend that our trivial test result always passes. - * @return always true - */ - @Override - public boolean isPassed() { - return true; - } - - /** - * Tests whether the test was skipped or not. - * - * @return true if the test was not executed, false otherwise. - */ - public boolean isSkipped() { - return false; - } - - /** - * Returns true iff this test failed. - */ - public boolean isFailed() { - return false; - } - - /** - * Time took to run this test. In seconds. - */ - @Override - public float getDuration() { - return duration; - } - - /** - * Gets the name of this object. - */ - @Override - public String getName() { - return "Simple Case Result"; - } - - /** - * Gets the total number of passed tests. - */ - @Override - public int getPassCount() { - return 1; - } - - /** - * Gets the total number of failed tests. - */ - @Override - public int getFailCount() { - return 0; - } - - /** - * Gets the total number of skipped tests. - */ - @Override - public int getSkipCount() { - return 0; - } - - /** - * Gets the human readable title of this result object. - */ - @Override - public String getTitle() { - return "Simple Case Result"; // - } - - public String getDisplayName() { - return "Simple Case Result"; - } - - @Override - public AbstractBuild getOwner() { - if (parentAction == null) { - LOGGER.warning("in Trivial Test Result, parentAction is null, but getOwner() called"); - return null; - } - return parentAction.owner; - } - - @Override - public List getTestActions() { - return SimpleCaseResult.EMPTY_ACTION_LIST; - } - - - /** - * An empty list of actions, useful for tests - */ - public static final List EMPTY_ACTION_LIST = Collections.unmodifiableList(new ArrayList()); - - - - -} diff --git a/core/src/main/java/hudson/tasks/test/TabulatedResult.java b/core/src/main/java/hudson/tasks/test/TabulatedResult.java deleted file mode 100644 index 47dcfd302c60..000000000000 --- a/core/src/main/java/hudson/tasks/test/TabulatedResult.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Daniel Dyer, Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import java.util.Collection; - -/** - * Cumulated result of multiple tests. - * - *

- * On top of {@link TestResult}, this class introduces a tree structure - * of {@link TestResult}s. - * - * @author Kohsuke Kawaguchi - */ -public abstract class TabulatedResult extends TestResult { - - /** - * Gets the child test result objects. - * - * @see TestObject#getParent() - */ - public abstract Collection getChildren(); - - public abstract boolean hasChildren(); - - public String getChildTitle() { - return ""; - } -} diff --git a/core/src/main/java/hudson/tasks/test/TestObject.java b/core/src/main/java/hudson/tasks/test/TestObject.java deleted file mode 100644 index 4df98e0e8b5f..000000000000 --- a/core/src/main/java/hudson/tasks/test/TestObject.java +++ /dev/null @@ -1,433 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, - * Tom Huybrechts, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.Util; -import hudson.Functions; -import hudson.model.*; -import hudson.tasks.junit.History; -import hudson.tasks.junit.TestAction; -import hudson.tasks.junit.TestResultAction; -import jenkins.model.Jenkins; - -import org.kohsuke.stapler.*; -import org.kohsuke.stapler.export.ExportedBean; - -import com.google.common.collect.MapMaker; - -import javax.servlet.ServletException; -import java.io.IOException; -import java.util.*; -import java.util.logging.Logger; - -/** - * Base class for all test result objects. - * For compatibility with code that expects this class to be in hudson.tasks.junit, - * we've created a pure-abstract class, hudson.tasks.junit.TestObject. That - * stub class is deprecated; instead, people should use this class. - * - * @author Kohsuke Kawaguchi - */ -@ExportedBean -public abstract class TestObject extends hudson.tasks.junit.TestObject { - - private static final Logger LOGGER = Logger.getLogger(TestObject.class.getName()); - private volatile transient String id; - - public abstract AbstractBuild getOwner(); - - /** - * Reverse pointer of {@link TabulatedResult#getChildren()}. - */ - public abstract TestObject getParent(); - - @Override - public final String getId() { - if (id == null) { - StringBuilder buf = new StringBuilder(); - buf.append(getSafeName()); - - TestObject parent = getParent(); - if (parent != null) { - String parentId = parent.getId(); - if ((parentId != null) && (parentId.length() > 0)) { - buf.insert(0, '/'); - buf.insert(0, parent.getId()); - } - } - id = buf.toString(); - } - return id; - } - - /** - * Returns url relative to TestResult - */ - @Override - public String getUrl() { - return '/' + getId(); - } - - /** - * Returns the top level test result data. - * - * @deprecated This method returns a JUnit specific class. Use - * {@link #getTopLevelTestResult()} instead for a more general interface. - */ - @Override - public hudson.tasks.junit.TestResult getTestResult() { - TestObject parent = getParent(); - - return (parent == null ? null : getParent().getTestResult()); - } - - /** - * Returns the top level test result data. - */ - public TestResult getTopLevelTestResult() { - TestObject parent = getParent(); - - return (parent == null ? null : getParent().getTopLevelTestResult()); - } - - /** - * Computes the relative path to get to this test object from it. If - * it does not appear in the parent chain for this object, a - * relative path from the server root will be returned. - * - * @return A relative path to this object, potentially from the top of the - * Hudson object model - */ - public String getRelativePathFrom(TestObject it) { - - - // if (it is one of my ancestors) { - // return a relative path from it - // } else { - // return a complete path starting with "/" - // } - if (it==this) { - return "."; - } - - StringBuilder buf = new StringBuilder(); - TestObject next = this; - TestObject cur = this; - // Walk up my ancestors from leaf to root, looking for "it" - // and accumulating a relative url as I go - while (next!=null && it!=next) { - cur = next; - buf.insert(0,'/'); - buf.insert(0,cur.getSafeName()); - next = cur.getParent(); - } - if (it==next) { - return buf.toString(); - } else { - // Keep adding on to the string we've built so far - - // Start with the test result action - AbstractTestResultAction action = getTestResultAction(); - if (action==null) { - LOGGER.warning("trying to get relative path, but we can't determine the action that owns this result."); - return ""; // this won't take us to the right place, but it also won't 404. - } - buf.insert(0,'/'); - buf.insert(0,action.getUrlName()); - - // Now the build - AbstractBuild myBuild = cur.getOwner(); - if (myBuild ==null) { - LOGGER.warning("trying to get relative path, but we can't determine the build that owns this result."); - return ""; // this won't take us to the right place, but it also won't 404. - } - buf.insert(0,'/'); - buf.insert(0,myBuild.getUrl()); - - // If we're inside a stapler request, just delegate to Hudson.Functions to get the relative path! - StaplerRequest req = Stapler.getCurrentRequest(); - if (req!=null && myBuild instanceof Item) { - buf.insert(0, '/'); - // Ugly but I don't see how else to convince the compiler that myBuild is an Item - Item myBuildAsItem = (Item) myBuild; - buf.insert(0, Functions.getRelativeLinkTo(myBuildAsItem)); - } else { - // We're not in a stapler request. Okay, give up. - LOGGER.info("trying to get relative path, but it is not my ancestor, and we're not in a stapler request. Trying absolute hudson url..."); - String hudsonRootUrl = Jenkins.getInstance().getRootUrl(); - if (hudsonRootUrl==null||hudsonRootUrl.length()==0) { - LOGGER.warning("Can't find anything like a decent hudson url. Punting, returning empty string."); - return ""; - - } - buf.insert(0, '/'); - buf.insert(0, hudsonRootUrl); - } - - LOGGER.info("Here's our relative path: " + buf.toString()); - return buf.toString(); - } - - } - - /** - * Subclasses may override this method if they are - * associated with a particular subclass of - * AbstractTestResultAction. - * - * @return the test result action that connects this test result to a particular build - */ - @Override - public AbstractTestResultAction getTestResultAction() { - AbstractBuild owner = getOwner(); - if (owner != null) { - return owner.getAction(AbstractTestResultAction.class); - } else { - LOGGER.warning("owner is null when trying to getTestResultAction."); - return null; - } - } - - /** - * Get a list of all TestActions associated with this TestObject. - */ - @Override - public List getTestActions() { - AbstractTestResultAction atra = getTestResultAction(); - if ((atra != null) && (atra instanceof TestResultAction)) { - TestResultAction tra = (TestResultAction) atra; - return tra.getActions(this); - } else { - return new ArrayList(); - } - } - - /** - * Gets a test action of the class passed in. - * @param klazz - * @param an instance of the class passed in - */ - @Override - public T getTestAction(Class klazz) { - for (TestAction action : getTestActions()) { - if (klazz.isAssignableFrom(action.getClass())) { - return klazz.cast(action); - } - } - return null; - } - - /** - * Gets the counterpart of this {@link TestResult} in the previous run. - * - * @return null if no such counter part exists. - */ - public abstract TestResult getPreviousResult(); - - /** - * Gets the counterpart of this {@link TestResult} in the specified run. - * - * @return null if no such counter part exists. - */ - public abstract TestResult getResultInBuild(AbstractBuild build); - - /** - * Find the test result corresponding to the one identified by id> - * within this test result. - * - * @param id The path to the original test result - * @return A corresponding test result, or null if there is no corresponding - * result. - */ - public abstract TestResult findCorrespondingResult(String id); - - /** - * Time took to run this test. In seconds. - */ - public abstract float getDuration(); - - /** - * Returns the string representation of the {@link #getDuration()}, in a - * human readable format. - */ - @Override - public String getDurationString() { - return Util.getTimeSpanString((long) (getDuration() * 1000)); - } - - @Override - public String getDescription() { - AbstractTestResultAction action = getTestResultAction(); - if (action != null) { - return action.getDescription(this); - } - return ""; - } - - @Override - public void setDescription(String description) { - AbstractTestResultAction action = getTestResultAction(); - if (action != null) { - action.setDescription(this, description); - } - } - - /** - * Exposes this object through the remote API. - */ - @Override - public Api getApi() { - return new Api(this); - } - - /** - * Gets the name of this object. - */ - @Override - public/* abstract */ String getName() { - return ""; - } - - /** - * Gets the full name of this object. - * @since 1.594 - */ - public String getFullName() { - StringBuilder sb = new StringBuilder(getName()); - if (getParent() != null) { - sb.insert(0, " : "); - sb.insert(0, getParent().getFullName()); - } - return sb.toString(); - } - - - /** - * Gets the version of {@link #getName()} that's URL-safe. - */ - @Override - public String getSafeName() { - return safe(getName()); - } - - @Override - public String getSearchUrl() { - return getSafeName(); - } - - /** - * #2988: uniquifies a {@link #getSafeName} amongst children of the parent. - */ - protected final String uniquifyName(Collection siblings, String base) { - synchronized (UNIQUIFIED_NAMES) { - String uniquified = base; - Map taken = UNIQUIFIED_NAMES.get(base); - if (taken == null) { - taken = new WeakHashMap(); - UNIQUIFIED_NAMES.put(base, taken); - } else { - Set similars = new HashSet(taken.keySet()); - similars.retainAll(new HashSet(siblings)); - if (!similars.isEmpty()) { - uniquified = base + '_' + (similars.size() + 1); - } - } - taken.put(this, null); - return uniquified; - } - } - private static final Map> UNIQUIFIED_NAMES = new MapMaker().makeMap(); - - /** - * Replaces URL-unsafe characters. - */ - public static String safe(String s) { - // this still seems to be a bit faster than a single replace with regexp - return s.replace('/', '_').replace('\\', '_').replace(':', '_').replace('?', '_').replace('#', '_').replace('%', '_'); - - // Note: we probably should some helpers like Commons URIEscapeUtils here to escape all invalid URL chars, but then we - // still would have to escape /, ? and so on - } - - /** - * Gets the total number of passed tests. - */ - public abstract int getPassCount(); - - /** - * Gets the total number of failed tests. - */ - public abstract int getFailCount(); - - /** - * Gets the total number of skipped tests. - */ - public abstract int getSkipCount(); - - /** - * Gets the total number of tests. - */ - @Override - public int getTotalCount() { - return getPassCount() + getFailCount() + getSkipCount(); - } - - @Override - public History getHistory() { - return new History(this); - } - - public Object getDynamic(String token, StaplerRequest req, - StaplerResponse rsp) { - for (Action a : getTestActions()) { - if (a == null) { - continue; // be defensive - } - String urlName = a.getUrlName(); - if (urlName == null) { - continue; - } - if (urlName.equals(token)) { - return a; - } - } - return null; - } - - public synchronized HttpResponse doSubmitDescription( - @QueryParameter String description) throws IOException, - ServletException { - if (getOwner() == null) { - LOGGER.severe("getOwner() is null, can't save description."); - } else { - getOwner().checkPermission(Run.UPDATE); - setDescription(description); - getOwner().save(); - } - - return new HttpRedirect("."); - } - private static final long serialVersionUID = 1L; -} diff --git a/core/src/main/java/hudson/tasks/test/TestResult.java b/core/src/main/java/hudson/tasks/test/TestResult.java deleted file mode 100644 index 6538104993fe..000000000000 --- a/core/src/main/java/hudson/tasks/test/TestResult.java +++ /dev/null @@ -1,267 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.tasks.junit.TestAction; -import hudson.model.AbstractBuild; -import hudson.model.Run; -import hudson.model.Result; - -import java.util.Collection; - -import static java.util.Collections.emptyList; - - -/** - * A class that represents a general concept of a test result, without any - * language or implementation specifics. - * Subclasses must add @Exported annotation to the fields they want to export. - * - * @since 1.343 - */ -public abstract class TestResult extends TestObject { - - /** - * If the concept of a parent action is important to a subclass, then it should - * provide a non-noop implementation of this method. - * @param action - */ - public void setParentAction(AbstractTestResultAction action) { - } - - /** - * Returns the action that points to the top level test result includes - * this test result. - */ - public AbstractTestResultAction getParentAction() { - return getOwner().getAction(AbstractTestResultAction.class); - } - - /** - * Request that the result update its counts of its children. Does not - * require a parent action or owner or siblings. Subclasses should - * implement this, unless they are *always* in a tallied state. - */ - public void tally() { - } - - /** - * Sets the parent test result - * @param parent - */ - public void setParent(TestObject parent) { - } - - /** - * Gets the human readable title of this result object. - */ - public /* abstract */ String getTitle(){ - return ""; - } - - /** - * Mark a build as unstable if there are failures. Otherwise, leave the - * build result unchanged. - * - * @return {@link Result#UNSTABLE} if there are test failures, null otherwise. - * - */ - public Result getBuildResult() { - if (getFailCount() > 0) { - return Result.UNSTABLE; - } else { - return null; - } - } - - /** - * Time it took to run this test. In seconds. - */ - public /* abstract */ float getDuration() { - return 0.0f; - } - - /** - * Gets the total number of passed tests. - */ - public /* abstract */ int getPassCount() { - return 0; - } - - /** - * Gets the total number of failed tests. - */ - public /* abstract */ int getFailCount() { - return 0; - } - - - /** - * Gets the total number of skipped tests. - */ - public /* abstract */ int getSkipCount() { - return 0; - } - - /** - * Gets the counter part of this {@link TestResult} in the previous run. - * - * @return null if no such counter part exists. - */ - public TestResult getPreviousResult() { - AbstractBuild b = getOwner(); - if (b == null) { - return null; - } - while(true) { - b = b.getPreviousBuild(); - if(b==null) - return null; - AbstractTestResultAction r = b.getAction(getParentAction().getClass()); - if(r!=null) { - TestResult result = r.findCorrespondingResult(this.getId()); - if (result!=null) - return result; - } - } - } - - /** - * Gets the counter part of this {@link TestResult} in the specified run. - * - * @return null if no such counter part exists. - */ - public TestResult getResultInBuild(AbstractBuild build) { - AbstractTestResultAction tra = build.getAction(getParentAction().getClass()); - if (tra == null) { - tra = build.getAction(AbstractTestResultAction.class); - } - return (tra == null) ? null : tra.findCorrespondingResult(this.getId()); - } - - /** - * Gets the "children" of this test result that failed - * @return the children of this test result, if any, or an empty collection - */ - public Collection getFailedTests() { - return emptyList(); - } - - - /** - * Gets the "children" of this test result that passed - * @return the children of this test result, if any, or an empty collection - */ - public Collection getPassedTests() { - return emptyList(); - } - - /** - * Gets the "children" of this test result that were skipped - * @return the children of this test result, if any, or an empty list - */ - public Collection getSkippedTests() { - return emptyList(); - } - - /** - * If this test failed, then return the build number - * when this test started failing. - */ - public int getFailedSince() { - return 0; - } - - /** - * If this test failed, then return the run - * when this test started failing. - */ - public Run getFailedSinceRun() { - return null; - } - - /** - * The stdout of this test. - */ - public String getStdout() { - return ""; - } - - /** - * The stderr of this test. - */ - public String getStderr() { - return ""; - } - - /** - * If there was an error or a failure, this is the stack trace, or otherwise null. - */ - public String getErrorStackTrace() { - return ""; - } - - /** - * If there was an error or a failure, this is the text from the message. - */ - public String getErrorDetails() { - return ""; - } - - /** - * @return true if the test was not skipped and did not fail, false otherwise. - */ - public boolean isPassed() { - return ((getSkipCount() == 0) && (getFailCount() == 0)); - } - - public String toPrettyString() { - StringBuilder sb = new StringBuilder(); - sb.append("{"); - sb.append("Name: ").append(this.getName()).append(", "); - sb.append("Result: ").append(this.getBuildResult()).append(",\n"); - sb.append("Total Count: ").append(this.getTotalCount()).append(", "); - sb.append("Fail: ").append(this.getFailCount()).append(", "); - sb.append("Skipt: ").append(this.getSkipCount()).append(", "); - sb.append("Pass: ").append(this.getPassCount()).append(",\n"); - sb.append("Test Result Class: " ).append(this.getClass().getName()).append(" }\n"); - return sb.toString(); - } - - /** - * Annotate some text -- what does this do? - * @param text - */ - public String annotate(String text) { - if (text == null) - return null; - text = text.replace("&", "&").replace("<", "<").replaceAll( - "\\b(https?://[^\\s)>]+)", "$1"); - - for (TestAction action: getTestActions()) { - text = action.annotate(text); - } - return text; - } -} diff --git a/core/src/main/java/hudson/tasks/test/TestResultParser.java b/core/src/main/java/hudson/tasks/test/TestResultParser.java deleted file mode 100644 index 029051ca4d6a..000000000000 --- a/core/src/main/java/hudson/tasks/test/TestResultParser.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.AbortException; -import hudson.ExtensionList; -import hudson.ExtensionPoint; -import hudson.Launcher; -import hudson.model.AbstractBuild; -import jenkins.model.Jenkins; -import hudson.model.TaskListener; -import hudson.tasks.Publisher; - -import java.io.IOException; - -/** - * Parses test result files and builds in-memory representation of it as {@link TestResult}. - * - *

- * This extension point encapsulates the knowledge of a particular test report format and its parsing process, - * thereby improving the pluggability of test result parsing; integration with a new test tool can be done - * by just writing a parser, without writing a custom {@link Publisher}, and the test reports are displayed - * with the default UI and recognized by the rest of Hudson as test reports. - * - *

- * Most typical implementations of this class should extend from {@link DefaultTestResultParserImpl}, - * which handles a set of default error checks on user inputs. - * - *

- * Parsers are stateless, and the {@link #parse(String, AbstractBuild, Launcher, TaskListener)} method - * can be concurrently invoked by multiple threads for different builds. - * - * @since 1.343 - * @see DefaultTestResultParserImpl - */ -public abstract class TestResultParser implements ExtensionPoint { - /** - * Returns a human readable name of the parser, like "JUnit Parser". - */ - public String getDisplayName() { - return "Unknown Parser"; - } - - /** - * This text is used in the UI prompt for the GLOB that specifies files to be parsed by this parser. - * For example, "JUnit XML reports:" - */ - public String getTestResultLocationMessage() { - return "Paths to results files to parse:"; - } - - /** - * All registered {@link TestResultParser}s - */ - public static ExtensionList all() { - return ExtensionList.lookup(TestResultParser.class); - } - - /** - * Parses the specified set of files and builds a {@link TestResult} object that represents them. - * - *

- * The implementation is encouraged to do the following: - * - *

    - *
  • - * If the build is successful but GLOB didn't match anything, report that as an error. This is - * to detect the error in GLOB. But don't do this if the build has already failed (for example, - * think of a failure in SCM checkout.) - * - *
  • - * Examine time stamp of test report files and if those are younger than the build, ignore them. - * This is to ignore test reports created by earlier executions. Take the possible timestamp - * difference in the master/slave into account. - *
- * - * @param testResultLocations - * GLOB pattern relative to the {@linkplain AbstractBuild#getWorkspace() workspace} that - * specifies the locations of the test result files. Never null. - * @param build - * Build for which these tests are parsed. Never null. - * @param launcher - * Can be used to fork processes on the machine where the build is running. Never null. - * @param listener - * Use this to report progress and other problems. Never null. - * - * @throws InterruptedException - * If the user cancels the build, it will be received as a thread interruption. Do not catch - * it, and instead just forward that through the call stack. - * @throws IOException - * If you don't care about handling exceptions gracefully, you can just throw IOException - * and let the default exception handling in Hudson takes care of it. - * @throws AbortException - * If you encounter an error that you handled gracefully, throw this exception and Hudson - * will not show a stack trace. - */ - public abstract TestResult parse(String testResultLocations, - AbstractBuild build, Launcher launcher, - TaskListener listener) - throws InterruptedException, IOException; -} diff --git a/core/src/main/java/hudson/tasks/test/TestResultProjectAction.java b/core/src/main/java/hudson/tasks/test/TestResultProjectAction.java deleted file mode 100644 index f92553c81459..000000000000 --- a/core/src/main/java/hudson/tasks/test/TestResultProjectAction.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.Action; -import hudson.tasks.junit.JUnitResultArchiver; -import org.kohsuke.stapler.Ancestor; -import org.kohsuke.stapler.StaplerRequest; -import org.kohsuke.stapler.StaplerResponse; - -import javax.servlet.ServletException; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.List; - -/** - * Project action object from test reporter, such as {@link JUnitResultArchiver}, - * which displays the trend report on the project top page. - * - *

- * This works with any {@link AbstractTestResultAction} implementation. - * - * @author Kohsuke Kawaguchi - */ -public class TestResultProjectAction implements Action { - /** - * Project that owns this action. - */ - public final AbstractProject project; - - public TestResultProjectAction(AbstractProject project) { - this.project = project; - } - - /** - * No task list item. - */ - public String getIconFileName() { - return null; - } - - public String getDisplayName() { - return "Test Report"; - } - - public String getUrlName() { - return "test"; - } - - public AbstractTestResultAction getLastTestResultAction() { - final AbstractBuild tb = project.getLastSuccessfulBuild(); - - AbstractBuild b=project.getLastBuild(); - while(b!=null) { - AbstractTestResultAction a = b.getAction(AbstractTestResultAction.class); - if(a!=null && (!b.isBuilding())) return a; - if(b==tb) - // if even the last successful build didn't produce the test result, - // that means we just don't have any tests configured. - return null; - b = b.getPreviousBuild(); - } - - return null; - } - - /** - * Display the test result trend. - */ - public void doTrend( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { - AbstractTestResultAction a = getLastTestResultAction(); - if(a!=null) - a.doGraph(req,rsp); - else - rsp.setStatus(HttpServletResponse.SC_NOT_FOUND); - } - - /** - * Generates the clickable map HTML fragment for {@link #doTrend(StaplerRequest, StaplerResponse)}. - */ - public void doTrendMap( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { - AbstractTestResultAction a = getLastTestResultAction(); - if(a!=null) - a.doGraphMap(req,rsp); - else - rsp.setStatus(HttpServletResponse.SC_NOT_FOUND); - } - - /** - * Changes the test result report display mode. - */ - public void doFlipTrend( StaplerRequest req, StaplerResponse rsp ) throws IOException, ServletException { - boolean failureOnly = false; - - // check the current preference value - Cookie[] cookies = req.getCookies(); - if(cookies!=null) { - for (Cookie cookie : cookies) { - if(cookie.getName().equals(FAILURE_ONLY_COOKIE)) - failureOnly = Boolean.parseBoolean(cookie.getValue()); - } - } - - // flip! - failureOnly = !failureOnly; - - // set the updated value - Cookie cookie = new Cookie(FAILURE_ONLY_COOKIE,String.valueOf(failureOnly)); - List anc = req.getAncestors(); - Ancestor a = (Ancestor) anc.get(anc.size()-2); - cookie.setPath(a.getUrl()); // just for this project - cookie.setMaxAge(60*60*24*365); // 1 year - rsp.addCookie(cookie); - - // back to the project page - rsp.sendRedirect(".."); - } - - private static final String FAILURE_ONLY_COOKIE = "TestResultAction_failureOnly"; -} diff --git a/core/src/main/java/hudson/tasks/test/package.html b/core/src/main/java/hudson/tasks/test/package.html deleted file mode 100644 index aff669076f2f..000000000000 --- a/core/src/main/java/hudson/tasks/test/package.html +++ /dev/null @@ -1,29 +0,0 @@ - - - -Defines contracts that need to be implemented by a test reporting -action (such as the built-in JUnit one). This contract allows Project -to display a test result trend history. - \ No newline at end of file diff --git a/core/src/main/java/hudson/util/ChartUtil.java b/core/src/main/java/hudson/util/ChartUtil.java index e328cc5aef11..551f5e6a2aa7 100644 --- a/core/src/main/java/hudson/util/ChartUtil.java +++ b/core/src/main/java/hudson/util/ChartUtil.java @@ -24,7 +24,6 @@ package hudson.util; import hudson.model.AbstractBuild; -import hudson.tasks.junit.History; import org.jfree.chart.JFreeChart; import org.jfree.chart.axis.NumberAxis; import org.jfree.data.category.CategoryDataset; @@ -93,7 +92,7 @@ public String toString() { * The size of the picture to be generated. These values can be overridden * by the query paramter 'width' and 'height' in the request. * @deprecated as of 1.320 - * Bind {@link Graph} to the URL space. See {@link History} as an example (note that doing so involves + * Bind {@link Graph} to the URL space. See {@code hudson.tasks.junit.History} as an example (note that doing so involves * a bit of URL structure change.) */ public static void generateGraph(StaplerRequest req, StaplerResponse rsp, JFreeChart chart, Area defaultSize) throws IOException { @@ -108,7 +107,7 @@ public static void generateGraph(StaplerRequest req, StaplerResponse rsp, JFreeC * The size of the picture to be generated. These values can be overridden * by the query paramter 'width' and 'height' in the request. * @deprecated as of 1.320 - * Bind {@link Graph} to the URL space. See {@link History} as an example (note that doing so involves + * Bind {@link Graph} to the URL space. See {@code hudson.tasks.junit.History} as an example (note that doing so involves * a bit of URL structure change.) */ public static void generateGraph(StaplerRequest req, StaplerResponse rsp, final JFreeChart chart, int defaultW, int defaultH) throws IOException { @@ -123,7 +122,7 @@ protected JFreeChart createGraph() { * Generates the clickable map info and sends that to the response. * * @deprecated as of 1.320 - * Bind {@link Graph} to the URL space. See {@link History} as an example (note that doing so involves + * Bind {@link Graph} to the URL space. See {@code hudson.tasks.junit.History} as an example (note that doing so involves * a bit of URL structure change.) */ public static void generateClickableMap(StaplerRequest req, StaplerResponse rsp, JFreeChart chart, Area defaultSize) throws IOException { @@ -134,7 +133,7 @@ public static void generateClickableMap(StaplerRequest req, StaplerResponse rsp, * Generates the clickable map info and sends that to the response. * * @deprecated as of 1.320 - * Bind {@link Graph} to the URL space. See {@link History} as an example (note that doing so involves + * Bind {@link Graph} to the URL space. See {@code hudson.tasks.junit.History} as an example (note that doing so involves * a bit of URL structure change.) */ public static void generateClickableMap(StaplerRequest req, StaplerResponse rsp, final JFreeChart chart, int defaultW, int defaultH) throws IOException { diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly b/core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly deleted file mode 100644 index b68fefc07cc0..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/index.jelly +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - -

- -

-

- - - - - (from ) - -

- -
- - - ${%skippedFor(it.age)} - - - ${%failingFor(it.age)} - - - (${%since.before}${%since.after}) -
-
- - - - - - - - - -
- - -

${%Skip Message}

-
-
- - -

${%Error Message}

-
-
- - -

${%Stacktrace}

-
-
- - -

${%Standard Output}

-
-
- - -

${%Standard Error}

-
-
- - - diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/index.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/index.properties deleted file mode 100644 index f176f1fa8afe..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/index.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -failingFor=Failing for the past {0} {0,choice,0#builds|1#build|1 - - - - - - - - - - - - - - - - - - - - - - - - -
${%Build}${%Test Description}${%Test Duration}${%Test Result}
- ${b.fullDisplayName} - - - - ${test.durationString} - - - ${pst.message} - -
-
diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_da.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_da.properties deleted file mode 100644 index feeab4cbc0c5..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_da.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=Byg -Test\ Result=Testresultat -Test\ Description=Testbeskrivelse -Test\ Duration=Testvarighed diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_de.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_de.properties deleted file mode 100644 index a8dab2d2badf..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=Build -Test\ Description=Testbeschreibung -Test\ Duration=Testdauer -Test\ Result=Testergebnis diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_es.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_es.properties deleted file mode 100644 index 9037836f84f9..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_es.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=Ejecucin -Test\ Description=Descripcin del test -Test\ Duration=Duracin del test -Test\ Result=Resultado del test diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_fr.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_fr.properties deleted file mode 100644 index 256a8197bba7..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_fr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=Construction -Test\ Description=Description -Test\ Duration=Dur\u00E9e -Test\ Result=R\u00E9sultat diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ja.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ja.properties deleted file mode 100644 index 00ee5fe0772a..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ja.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=\u30D3\u30EB\u30C9 -Test\ Description=\u30C6\u30B9\u30C8\u306E\u8AAC\u660E -Test\ Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 -Test\ Result=\u30C6\u30B9\u30C8\u7D50\u679C diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_lv.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_lv.properties deleted file mode 100644 index 059013191edc..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_lv.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -Build=B\u016Bv\u0113jums -Test\ Description=Testa Apraksts -Test\ Duration=Testa Ilgums -Test\ Result=Testa Rezult\u0101ts diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_pt_BR.properties deleted file mode 100644 index 8a3758e5a94a..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Description=Descri\u00e7\u00e3o do teste -Build=Build -Test\ Duration=Dura\u00e7\u00e3o do teste -Test\ Result=Resultado do teste diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ru.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ru.properties deleted file mode 100644 index a299087d2712..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_ru.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -Build=\u0421\u0431\u043E\u0440\u043A\u0430 -Test\ Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 \u0442\u0435\u0441\u0442\u0430 -Test\ Duration=\u0414\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C \u0442\u0435\u0441\u0442\u0430 -Test\ Result=\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430 diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_sv_SE.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_sv_SE.properties deleted file mode 100644 index ea2e43cd8291..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_sv_SE.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -Build=Bygge -Test\ Description=Testbeskrivning -Test\ Duration=Tids\u00E5tg\u00E5ng -Test\ Result=Testresultat diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_zh_TW.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/list_zh_TW.properties deleted file mode 100644 index 2351fb376b0a..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/list_zh_TW.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=\u5efa\u7f6e -Test\ Duration=\u6e2c\u8a66\u4f7f\u7528\u6642\u9593 -Test\ Description=\u6e2c\u8a66\u8aaa\u660e -Test\ Result=\u6e2c\u8a66\u7d50\u679c diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary.jelly b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary.jelly deleted file mode 100644 index 25ce3acda0af..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary.jelly +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - -

- - ${title} - - - ${title} - -

-
-          
-        
-
-
-
- - - - ${h.initPageVariables(context)} - - - - - - - -
diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_da.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_da.properties deleted file mode 100644 index e0ad98d98b88..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_da.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Error\ Details=Fejl detaljer -Stack\ Trace=Stack Trace diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_de.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_de.properties deleted file mode 100644 index 31f67f9db01c..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_de.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Error\ Details=Fehlerdetails -Stack\ Trace=Stacktrace diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_es.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_es.properties deleted file mode 100644 index 87c387a56c40..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_es.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Error\ Details=Detalles del error -Stack\ Trace=Traza de la pila diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_ja.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_ja.properties deleted file mode 100644 index 6896c5531ead..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_ja.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Error\ Details=\u30A8\u30E9\u30FC\u8A73\u7D30 -Stack\ Trace=\u30B9\u30BF\u30C3\u30AF\u30C8\u30EC\u30FC\u30B9 diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_pt_BR.properties deleted file mode 100644 index 354c5d491142..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_pt_BR.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Error\ Details=Detalhes de erro -Stack\ Trace=Stack trace diff --git a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_zh_TW.properties b/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_zh_TW.properties deleted file mode 100644 index df197409cd3a..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/CaseResult/summary_zh_TW.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Error\ Details=\u932f\u8aa4\u8a73\u7d30\u8cc7\u6599 -Stack\ Trace=\u5806\u758a\u8ffd\u8e64 diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly b/core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly deleted file mode 100644 index 64c7554a6d6e..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body.jelly +++ /dev/null @@ -1,56 +0,0 @@ - - - - - -

${%All Tests}

- - - - - - - - - - - - - - - -
${%Test name}${%Duration}${%Status}
- - - - - ${p.durationString} - - - ${pst.message} - -
-
-
diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_da.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_da.properties deleted file mode 100644 index 56950bbbfa35..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_da.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Duration=Varighed -Status=Status -Test\ name=Test navn -All\ Tests=Alle test diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_de.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_de.properties deleted file mode 100644 index 3568b42da314..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=Alle Tests -Test\ name=Testname -Duration=Dauer -Status=Status diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_es.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_es.properties deleted file mode 100644 index d73410506c05..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_es.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=Todos los tests -Test\ name=Nombre del test -Duration=Duracin -Status=Estado diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_fi.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_fi.properties deleted file mode 100644 index 7ce5b95d19c2..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_fi.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=Kaikki testit -Duration=Kesto -Status=Tila -Test\ name=Testin nimi diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_fr.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_fr.properties deleted file mode 100644 index 2ea0663064b0..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_fr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=Tous les tests -Test\ name=Nom du test -Duration=Dure -Status=Statut diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_ja.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_ja.properties deleted file mode 100644 index 18efa71f18d0..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_ja.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=\u3059\u3079\u3066\u306e\u30c6\u30b9\u30c8 -Test\ name=\u30c6\u30b9\u30c8\u540d -Duration=\u30c6\u30b9\u30c8\u6240\u8981\u6642\u9593 -Status=\u72b6\u614b \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_lv.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_lv.properties deleted file mode 100644 index 7e334027a719..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_lv.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -All\ Tests=Visi testi -Duration=Ilgums -Status=St\u0101voklis -Test\ name=Testa nosaukums diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_nb_NO.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_nb_NO.properties deleted file mode 100644 index 27e8c7883a30..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_nb_NO.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -All\ Tests=Alle Tester -Duration=Varighet -Test\ name=Testnavn diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_nl.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_nl.properties deleted file mode 100644 index 61e4e67c7975..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_nl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=Alle testen -Test\ name=Naam van de test -Duration=Duur -Status=Status diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_pt_BR.properties deleted file mode 100644 index 6ca6d05aa4e8..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=Todos os testes -Test\ name=Nome do teste -Duration=Dura\u00e7\u00e3o -Status=Estado diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_ru.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_ru.properties deleted file mode 100644 index cf210c770a4b..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_ru.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=\u0412\u0441\u0435 \u0442\u0435\u0441\u0442\u044b -Test\ name=\u0418\u043c\u044f \u0442\u0435\u0441\u0442\u0430 -Duration=\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c -Status=\u0421\u0442\u0430\u0442\u0443\u0441 diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_sv_SE.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_sv_SE.properties deleted file mode 100644 index 11d169054418..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_sv_SE.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=Alla tester -Duration=Tid -Status=Status -Test\ name=Testnamn diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_tr.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_tr.properties deleted file mode 100644 index fd83abeee744..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_tr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=T\u00fcm Testler -Test\ name=Test Ad\u0131 -Duration=S\u00fcre -Status=Durum diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_CN.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_CN.properties deleted file mode 100644 index 393449ba76db..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_CN.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -All\ Tests=\u6D4B\u8BD5\u7528\u4F8B -Duration=\u8FD0\u884C\u65F6\u95F4 -Status=\u7ED3\u679C -Test\ name=\u6D4B\u8BD5\u540D\u79F0 diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_TW.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_TW.properties deleted file mode 100644 index b4ba0dd09f57..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/body_zh_TW.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2013, Sun Microsystems, Inc., Chunghwa Telecom Co., Ltd., -# and Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Tests=\u6240\u6709\u6e2c\u8a66 -Test\ name=\u6e2c\u8a66\u540d\u7a31 -Duration=\u82b1\u8cbb\u6642\u9593 -Status=\u72c0\u614b diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list.jelly b/core/src/main/resources/hudson/tasks/junit/ClassResult/list.jelly deleted file mode 100644 index 3c631ef77560..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list.jelly +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
${%Build}${%Description}${%Duration}${%Fail}${%Skip}${%Total}
- ${b.fullDisplayName} - - - - ${p.durationString}${p.failCount}${p.skipCount}${p.totalCount}
-
diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_da.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_da.properties deleted file mode 100644 index a1455c3c2b28..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_da.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Duration=Varighed -Build=Byg -Skip=Spring over -Total=I alt -Fail=Fejler -Description=Beskrivelse diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_de.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_de.properties deleted file mode 100644 index 54a28e53b964..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_de.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=Build -Description=Beschreibung -Duration=Dauer -Fail=Fehlgeschlagen -Skip=Ausgelassen -Total=Summe diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_es.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_es.properties deleted file mode 100644 index f81a05542120..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_es.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=Ejecucin -Description=Descripcin -Duration=Duracin -Fail=Fallo -Skip=Omitidos -Total=Total diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_ja.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_ja.properties deleted file mode 100644 index 33a6ec2da364..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_ja.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=\u30D3\u30EB\u30C9 -Description=\u30C6\u30B9\u30C8\u306E\u8AAC\u660E -Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 -Fail=\u5931\u6557 -Skip=\u30B9\u30AD\u30C3\u30D7 -Total=\u5408\u8A08 diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_pt_BR.properties deleted file mode 100644 index 70d29416fff3..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_pt_BR.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Skip=pular -Duration=Dura\u00e7\u00e3o -Total=Total -Build=Build -Fail=Falha -Description=Descri\u00e7\u00e3o diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_CN.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_CN.properties deleted file mode 100644 index 88ad2d20894b..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_CN.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Description=\u63CF\u8FF0 -Duration=\u8017\u65F6 -Fail=\u5931\u8D25 -Skip=\u8DF3\u8FC7 -Total=\u5408\u8BA1 diff --git a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_TW.properties b/core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_TW.properties deleted file mode 100644 index 840107a1c415..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/ClassResult/list_zh_TW.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=\u5efa\u7f6e -Duration=\u82b1\u8cbb\u6642\u9593 -Description=\u8aaa\u660e -Fail=\u5931\u6557 -Skip=\u7565\u904e -Total=\u7e3d\u8a08 diff --git a/core/src/main/resources/hudson/tasks/junit/History/index.jelly b/core/src/main/resources/hudson/tasks/junit/History/index.jelly deleted file mode 100644 index cda7a24512b9..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index.jelly +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - - - - - -

${%title(it.testObject.displayName)}

- - -
- [Duration graph] -
-
- show - count - -
-
- - ${%More than 1 builds are needed for the chart.} - -
- -
- - ${%Newer} - -   - - ${%Older} - -
-
-
-
\ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/History/index.properties b/core/src/main/resources/hudson/tasks/junit/History/index.properties deleted file mode 100644 index 5522823d115f..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title=History for {0} diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_da.properties b/core/src/main/resources/hudson/tasks/junit/History/index_da.properties deleted file mode 100644 index 1d4939e3b1a9..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_da.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=Mere end 1 byg er n\u00f8dvendigt for grafen. -title=Historik for {0} diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_de.properties b/core/src/main/resources/hudson/tasks/junit/History/index_de.properties deleted file mode 100644 index 06346a41da06..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title=Verlauf von {0} -More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=Fr ein Diagramm werden mindestens 2 Builds bentigt. -Older=lter -Newer=Neuer diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_es.properties b/core/src/main/resources/hudson/tasks/junit/History/index_es.properties deleted file mode 100644 index 77366f1ed179..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_es.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title=Historia para {0} -More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=Se necesitan mas de una ejecucin para generar el grfico -Older=Vieja -Newer=Nueva diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_fr.properties b/core/src/main/resources/hudson/tasks/junit/History/index_fr.properties deleted file mode 100644 index e8fa14cb909b..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_fr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Older=Plus anciens -title=Historique pour {0} diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_ja.properties b/core/src/main/resources/hudson/tasks/junit/History/index_ja.properties deleted file mode 100644 index d3aa17dcd6ff..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_ja.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2011, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title={0}\u306e\u5c65\u6b74 -More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=\ - \u30c1\u30e3\u30fc\u30c8\u3092\u8868\u793a\u3059\u308b\u306b\u306f\u30012\u500b\u4ee5\u4e0a\u306e\u30d3\u30eb\u30c9\u304c\u5fc5\u8981\u3067\u3059\u3002 -Newer=\u65b0\u3057\u3044\u5c65\u6b74\u3078 -Older=\u53e4\u3044\u5c65\u6b74\u3078 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_lv.properties b/core/src/main/resources/hudson/tasks/junit/History/index_lv.properties deleted file mode 100644 index 53e4f39a975e..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_lv.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title={0} v\u0113sture diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_pl.properties b/core/src/main/resources/hudson/tasks/junit/History/index_pl.properties deleted file mode 100644 index c44691a25126..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_pl.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -Newer=Nowszy -Older=Starszy diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/History/index_pt_BR.properties deleted file mode 100644 index 70eeca0f54a2..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_pt_BR.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=\u00c9 necess\u00e1rio mais de um build para esse gr\u00e1fico -# History for {0} -title=Hist\u00f3rico para {0} diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_ru.properties b/core/src/main/resources/hudson/tasks/junit/History/index_ru.properties deleted file mode 100644 index 0015664652e1..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_ru.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -Newer=\u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0435 -Older=\u0431\u043E\u043B\u0435\u0435 \u0441\u0442\u0430\u0440\u044B\u0435 -title=\u0418\u0441\u0442\u043E\u0440\u0438\u044F diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_sv_SE.properties b/core/src/main/resources/hudson/tasks/junit/History/index_sv_SE.properties deleted file mode 100644 index 2e47d79c2130..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_sv_SE.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -Older=\u00C4ldre -title=Historia f\u00F6r {0} diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_zh_CN.properties b/core/src/main/resources/hudson/tasks/junit/History/index_zh_CN.properties deleted file mode 100644 index f366a405bad4..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_zh_CN.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title={0}\u7684\u5386\u53F2 diff --git a/core/src/main/resources/hudson/tasks/junit/History/index_zh_TW.properties b/core/src/main/resources/hudson/tasks/junit/History/index_zh_TW.properties deleted file mode 100644 index cbbeea425d60..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/History/index_zh_TW.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -title={0} \u7684\u6b77\u7a0b -More\ than\ 1\ builds\ are\ needed\ for\ the\ chart.=\u81f3\u5c11\u8981\u6709\u5169\u6b21\u4ee5\u4e0a\u7684\u5efa\u7f6e\u8a18\u9304\u624d\u80fd\u7522\u51fa\u5716\u8868\u3002 -Newer=\u8f03\u65b0 -Older=\u8f03\u820a diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly deleted file mode 100644 index 11db04dd8bbf..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.jelly +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
-
diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties deleted file mode 100644 index 879461b97548..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description=\ -Fileset \u2018includes\u2019 \ -setting that specifies the generated raw XML report files, \ -such as \u2018myproject/target/test-reports/*.xml\u2019. \ -Basedir of the fileset is the workspace root. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_da.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_da.properties deleted file mode 100644 index e5db1f083a6c..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_da.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Retain\ long\ standard\ output/error=Bibehold lang standardoutput/error -description=Fils\u00e6t ''inkluderer'' -Test\ report\ XMLs=Test rapport XML filer diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties deleted file mode 100644 index b86d31d3e705..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_de.properties +++ /dev/null @@ -1,29 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Retain\ long\ standard\ output/error=Lange Standard-Out/-Error Ausgaben aufbewahren -Test\ report\ XMLs=Testberichte in XML-Format -description=\ - Es sind regul\u00E4re Ausdr\u00FCcke wie z.B. ''myproject/target/test-reports/*.xml'' erlaubt. \ - Das genaue Format k\u00F6nnen Sie \ - der Spezifikation f\u00FCr @includes eines Ant-Filesets entnehmen. \ - Das Ausgangsverzeichnis ist der Arbeitsbereich. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_es.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_es.properties deleted file mode 100644 index 7a84af483b5d..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_es.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description=\ - El atributo ''@includes'' de la etiqueta ''fileset'' \ - especifica d\u00F3nde est\u00E1n los ficheros XML generados, por ejemplo: ''myproject/target/test-reports/*.xml''. \ - El directorio base para la etiqueta ''fileset'' es el directorio ra\u00EDz del proyecto -Test\ report\ XMLs=Ficheros XML con los informes de tests -Retain\ long\ standard\ output/error=Guardar la salida estndard y de error aunque sea muy larga. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties deleted file mode 100644 index 6a5a03506b7f..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_fr.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ report\ XMLs=XML des rapports de test -description=\ -Une configuration du type Fileset ''includes'' \ -qui indique o\u00F9 se trouvent les fichiers XML des rapports de test, \ -par exemple ''myproject/target/test-reports/*.xml''. \ -Le r\u00E9pertoire de base (basedir) du fileset est la racine du workspace. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties deleted file mode 100644 index 4d6e5e4a0c6a..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ja.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2011, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ report\ XMLs=\u30c6\u30b9\u30c8\u7d50\u679cXML -description=\ -Ant\u306e\u30d5\u30a1\u30a4\u30eb\u30bb\u30c3\u30c8includes\u5c5e\u6027\u306e\u66f8\u5f0f\u306b\u5f93\u3063\u3066\u30d3\u30eb\u30c9\u304b\u3089\u751f\u6210\u3055\u308c\u308bXML\u30ec\u30dd\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u7fa4\u3092\u6307\u5b9a\u3057\u307e\u3059\uff08\u4f8b\uff1amyproject/target/test-reports/*.xml\uff09\u3002\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u30eb\u30fc\u30c8\u304b\u3089\u306e\u76f8\u5bfe\u30d1\u30b9\u3067\u3059\u3002 -Retain\ long\ standard\ output/error=\u9577\u3044\u6a19\u6e96/\u30a8\u30e9\u30fc\u51fa\u529b\u3092\u305d\u306e\u307e\u307e\u4fdd\u6301\u3059\u308b \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties deleted file mode 100644 index a77112d97ca8..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_nl.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description=\ -Fileset ''includes'' \ -setting that specifies the generated raw XML report files, \ -such as ''myproject/target/test-reports/*.xml''. \ -Basedir of the fileset is the workspace root. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties deleted file mode 100644 index 85f337ab699a..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -description=Descri\u00e7\u00e3o -Test\ report\ XMLs=Relat\u00f3rio XML do teste -Retain\ long\ standard\ output/error=Manter padr\u00e3o de erro de sa\u00edda -Test\ report\ XMLs=Relat\u00f3rio XML de teste diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties deleted file mode 100644 index f39e02c132a8..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_ru.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ report\ XMLs=XML \u0444\u0430\u0439\u043b\u044b \u0441 \u043e\u0442\u0447\u0435\u0442\u0430\u043c\u0438 \u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 -description= -\u041d\u0430\u0431\u043e\u0440 \u0444\u0430\u0439\u043b\u043e\u0432 ''includes'' \ -\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0438\u0439 \u0438\u043c\u0435\u043d\u0430 \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 XML \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u043e\u0442\u0447\u0435\u0442\u0430\u043c\u0438, \ -\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 ''myproject/target/test-reports/*.xml''. \ -\u041a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0435\u0439 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f. diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties deleted file mode 100644 index 1304eca95ba2..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_tr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ report\ XMLs=Test raporunun XML''i -#description=a\u00e7\u0131klama diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_CN.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_CN.properties deleted file mode 100644 index 201bac85940d..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_CN.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Retain\ long\ standard\ output/error=\u4FDD\u7559\u957F\u7684\u6807\u51C6\u8F93\u51FA/\u9519\u8BEF -Test\ report\ XMLs=\u6D4B\u8BD5\u62A5\u544A\uFF08XML\uFF09 diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_TW.properties b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_TW.properties deleted file mode 100644 index 0baa27cd741f..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/config_zh_TW.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ report\ XMLs=\u6e2c\u8a66\u5831\u544a XML -description=\ - \u7528\u4f86\u6307\u5b9a\u7522\u751f\u7684 XML \u5831\u544a\u539f\u59cb\u6a94\u7684 Fileset ''includes'' \u8a2d\u5b9a\uff0c\ - \u4f8b\u5982 ''myproject/target/test-reports/*.xml''\u3002\ - \u6a94\u6848\u96c6\u7684\u57fa\u5e95\u76ee\u9304\u5c31\u662f\u5de5\u4f5c\u5340\u76ee\u9304\u3002 -Retain\ long\ standard\ output/error=\u4fdd\u7559\u5b8c\u6574\u7684\u6a19\u6e96\u8f38\u51fa\u53ca\u6a19\u6e96\u932f\u8aa4\u5167\u5bb9 diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-healthScaleFactor.html b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-healthScaleFactor.html deleted file mode 100644 index 817b262730ef..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-healthScaleFactor.html +++ /dev/null @@ -1,17 +0,0 @@ -
- The amplification factor to apply to test failures when computing the test result contribution to the build health - score. -
- The default factor is 1.0 -
    -
  • A factor of 0.0 will disable the test result contribution to build health score.
  • -
  • A factor of 0.1 means that 10% of tests failing will score 99% health
  • -
  • A factor of 0.5 means that 10% of tests failing will score 95% health
  • -
  • A factor of 1.0 means that 10% of tests failing will score 10% health
  • -
  • A factor of 2.0 means that 10% of tests failing will score 20% health
  • -
  • A factor of 2.5 means that 10% of tests failing will score 25% health
  • -
  • A factor of 5.0 means that 10% of tests failing will score 50% health
  • -
  • A factor of 10.0 means that 10% of tests failing will score 0% health
  • -
- The factor is persisted with the build results, so changes will only be reflected in new builds. -
\ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio.html b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio.html deleted file mode 100644 index df35d41b500b..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio.html +++ /dev/null @@ -1,9 +0,0 @@ -
- If checked, any standard output or error from a test suite will be retained - in the test results after the build completes. (This refers only to additional - messages printed to console, not to a failure stack trace.) Such output is - always kept if the test failed, but by default lengthy output from passing - tests is truncated to save space. Check this option if you need to see every - log message from even passing tests, but beware that Jenkins's memory consumption - can substantially increase as a result, even if you never look at the test results! -
diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_de.html b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_de.html deleted file mode 100644 index 1087f588b811..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_de.html +++ /dev/null @@ -1,11 +0,0 @@ -
- Falls angewählt, werden alle Ausgaben eines Tests als Ergebnis aufbewahrt - nachdem der Build abgeschlossen wurde. (Dies bezieht sich nur auf zusätzliche - Meldungen, die an die Konsole ausgegeben werden, und nicht auf Stracktraces - bei Fehlschlägen.) Solche Ausgaben werden immer aufbewahrt, falls ein Test - fehlschlägt, werden jedoch normalerweise bei erfolgreichen Tests gekürzt, - um Speicherplatz zu sparen. Wählen Sie diese Option, falls Sie alle Log-Ausgaben - von allen erfolgreichen Tests benötigen. Seien Sie sich jedoch bewusst, dass damit - Jenkins Speicherverbrauch anwachsen kann, auch wenn Sie sich die Testergebnisse - nie anschauen! -
diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_ja.html b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_ja.html deleted file mode 100644 index f966efe3a9f5..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_ja.html +++ /dev/null @@ -1,7 +0,0 @@ -
- ビルド完了後のテスト結果に、テスト実行時の標準/エラー出力をそのまま保持します - (テスト失敗時のスタックトレースのことではなく、コンソールに出力される付加的なメッセージのことです)。 - 標準/エラー出力は、テスト失敗時には常に保持しますが、テストが成功した場合には冗長な出力を切り捨ててディスク容量を節約します。 - 成功したテストのログメッセージをすべて参照する必要があるなら、このオプションをチェックしてください。 - ただし、テスト結果を参照することがなくても、Jenkinsのメモリ使用量が相当増加することに注意してください。  -
diff --git a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_zh_TW.html b/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_zh_TW.html deleted file mode 100644 index 172390a02313..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/JUnitResultArchiver/help-keepLongStdio_zh_TW.html +++ /dev/null @@ -1,7 +0,0 @@ -
- 選用後,建置結束後,所有測試套件的標準輸出及標準錯誤內容都會被保留在測試結果中 - (只限印到主控台的額外訊息,不包括錯誤堆疊追蹤)。 - 如果測試失敗,無論如何都會將這類輸出結果保留下來; 通過的測試中,預設會將太長的輸出結果截掉,節省空間。 - 要是您連通過案例在內的全部訊息都想看到,就可以啟用這個選項。 - 但要小心,即使您連一次都沒看過那些測試結果,Jenkins 的記憶體用量也可能會大增! -
diff --git a/core/src/main/resources/hudson/tasks/junit/Messages.properties b/core/src/main/resources/hudson/tasks/junit/Messages.properties deleted file mode 100644 index c9a2d36ae627..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages.properties +++ /dev/null @@ -1,45 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=Test Result -TestResult.getChildTitle=Package -TestResult.getDisplayName=Test Results - -PackageResult.getTitle=Test Result : {0} -PackageResult.getChildTitle=Class - -ClassResult.getTitle=Test Result : {0} -JUnitParser.DisplayName=JUnit Parser -JUnitParser.TestResultLocationMessage=JUnit xml files: -JUnitParser.no_workspace_found=No workspace found for {0} -JUnitResultArchiver.DisplayName=Publish JUnit test result report -JUnitResultArchiver.NoTestReportFound=No test report files were found. Configuration error? -JUnitResultArchiver.Recording=Recording test results -JUnitResultArchiver.ResultIsEmpty=None of the test reports contained any result -JUnitResultArchiver.BadXML=Incorrect XML attributes for test results found in {0} -JUnitResultArchiver.HealthScaleFactorAnalysis={0}% failing tests scores as {1}% health. {2}% failing tests scores as {3}% health - -CaseResult.Status.Passed=Passed -CaseResult.Status.Failed=Failed -CaseResult.Status.Skipped=Skipped -CaseResult.Status.Fixed=Fixed -CaseResult.Status.Regression=Regression diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_da.properties b/core/src/main/resources/hudson/tasks/junit/Messages_da.properties deleted file mode 100644 index 61a5ae7024f4..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_da.properties +++ /dev/null @@ -1,38 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -CaseResult.Status.Passed=Best\u00e5et -CaseResult.Status.Skipped=Sprunget over -TestResult.getChildTitle=Package -JUnitResultArchiver.Recording=Opsamler testresultater -PackageResult.getChildTitle=Class -CaseResult.Status.Fixed=Rettet -CaseResult.Status.Regression=Regression -ClassResult.getTitle=Test Resultat : {0} -TestResult.getTitle=Test Resultat -JUnitResultArchiver.DisplayName=Publicer JUnit testrapport -TestResult.getDisplayName=Testresultater -CaseResult.Status.Failed=Fejlet -JUnitResultArchiver.BadXML=Ukorrekt XML attribut fundet for test resultater i {0} -JUnitResultArchiver.ResultIsEmpty=Ingen af testrapporterne indeholder resultater -JUnitResultArchiver.NoTestReportFound=Ingen testrapporter fundet. Konfigurationsfejl? -PackageResult.getTitle=Testresultat : {0} diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_de.properties b/core/src/main/resources/hudson/tasks/junit/Messages_de.properties deleted file mode 100644 index 1bd30c63b6c8..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_de.properties +++ /dev/null @@ -1,42 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=Testergebnisse -TestResult.getChildTitle=Package -TestResult.getDisplayName=Testergebnis - -PackageResult.getTitle=Testergebnis : {0} -PackageResult.getChildTitle=Klasse - -ClassResult.getTitle=Testergebnis : {0} -JUnitResultArchiver.DisplayName=Verffentliche JUnit-Testergebnisse. -JUnitResultArchiver.NoTestReportFound=Keine JUnit-Testergebnisse gefunden. Liegt vielleicht ein Konfigurationsfehler vor? -JUnitResultArchiver.Recording=Zeichne Testergebnisse auf. -JUnitResultArchiver.ResultIsEmpty=Testergebnisberichte enthalten keine Testergebnisse. - -CaseResult.Status.Passed=Erfolg -CaseResult.Status.Failed=Fehlschlag -CaseResult.Status.Skipped=Ausgelassen -CaseResult.Status.Fixed=Repariert -CaseResult.Status.Regression=Regression - -JUnitResultArchiver.BadXML=Testergebnisse enthalten ungltige XML-Attribute in {0} diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_es.properties b/core/src/main/resources/hudson/tasks/junit/Messages_es.properties deleted file mode 100644 index fb3f561d52eb..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_es.properties +++ /dev/null @@ -1,43 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=Resultados de los tests -TestResult.getChildTitle=Paquete -TestResult.getDisplayName=Resultado de tests - -PackageResult.getTitle=Resultado de tests : {0} -PackageResult.getChildTitle=Clases - -ClassResult.getTitle=Resultado de tests : {0} -JUnitResultArchiver.DisplayName=Publicar los resultadod de tests JUnit -JUnitResultArchiver.NoTestReportFound=No se encontraron ficheros con resultados de tests. Hay algun error en la configuracin? -JUnitResultArchiver.Recording=Grabando resultados de tests -JUnitResultArchiver.ResultIsEmpty=Ninguno de los informes de tests contiene resultados -JUnitResultArchiver.BadXML=Formato incorrecto en los atributos XML del fichero de resultados en {0} - -CaseResult.Status.Passed=Pasados -CaseResult.Status.Failed=Fallidos -CaseResult.Status.Skipped=Omitidos -CaseResult.Status.Fixed=Arreglados -CaseResult.Status.Regression=Regresin -JUnitParser.TestResultLocationMessage=Ubicacin de los ficheros XML de Junit: -JUnitParser.DisplayName=Analizador de resultados Junit diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_fr.properties b/core/src/main/resources/hudson/tasks/junit/Messages_fr.properties deleted file mode 100644 index fa9d33ab134a..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_fr.properties +++ /dev/null @@ -1,39 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=Rsultats des tests -TestResult.getChildTitle=Package - -PackageResult.getTitle=Rsultats des tests : {0} -PackageResult.getChildTitle=Class - -ClassResult.getTitle=Rsultats des tests : {0} -JUnitResultArchiver.DisplayName=Publier le rapport des rsultats des tests JUnit -JUnitResultArchiver.NoTestReportFound=Aucun fichier de rapport de test n''a t trouv. Erreur de configuration? -JUnitResultArchiver.Recording=Enregistrement des rsultats des tests -JUnitResultArchiver.ResultIsEmpty=Aucun des rapports de test ne contient de rsultat - -CaseResult.Status.Passed=En succs -CaseResult.Status.Failed=En chec -CaseResult.Status.Skipped=Non lancs -CaseResult.Status.Fixed=Corrigs -CaseResult.Status.Regression=Rgressions \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_ja.properties b/core/src/main/resources/hudson/tasks/junit/Messages_ja.properties deleted file mode 100644 index a35112a493c8..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_ja.properties +++ /dev/null @@ -1,44 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2012, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=\u30c6\u30b9\u30c8\u7d50\u679c -TestResult.getChildTitle=\u30d1\u30c3\u30b1\u30fc\u30b8 -TestResult.getDisplayName=\u30c6\u30b9\u30c8\u7d50\u679c - -PackageResult.getTitle=\u30c6\u30b9\u30c8\u7d50\u679c : {0} -PackageResult.getChildTitle=\u30af\u30e9\u30b9 - -ClassResult.getTitle=\u30c6\u30b9\u30c8\u7d50\u679c : {0} -JUnitParser.DisplayName=JUnit\u30d1\u30fc\u30b5\u30fc -JUnitParser.TestResultLocationMessage=JUnit\u306eXML\u30d5\u30a1\u30a4\u30eb : -JUnitParser.no_workspace_found={0}\u306e\u30ef\u30fc\u30af\u30b9\u30da\u30fc\u30b9\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3002 -JUnitResultArchiver.DisplayName=JUnit\u30c6\u30b9\u30c8\u7d50\u679c\u306e\u96c6\u8a08 -JUnitResultArchiver.NoTestReportFound=\u30c6\u30b9\u30c8\u306e\u30ec\u30dd\u30fc\u30c8\u30d5\u30a1\u30a4\u30eb\u304c\u898b\u3064\u304b\u308a\u307e\u305b\u3093\u3067\u3057\u305f\u3002\u8a2d\u5b9a\u30df\u30b9? -JUnitResultArchiver.Recording=\u30c6\u30b9\u30c8\u7d50\u679c\u3092\u4fdd\u5b58\u4e2d -JUnitResultArchiver.ResultIsEmpty=\u30c6\u30b9\u30c8\u306e\u30ec\u30dd\u30fc\u30c8\u306b\u4f55\u3082\u7d50\u679c\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u305b\u3093 -JUnitResultArchiver.BadXML={0} \u306b\u3001\u30c6\u30b9\u30c8\u7d50\u679c\u306eXML\u306b\u4e0d\u9069\u5207\u306a\u5c5e\u6027\u304c\u3042\u308a\u307e\u3059 - -CaseResult.Status.Passed=OK -CaseResult.Status.Failed=\u5931\u6557 -CaseResult.Status.Skipped=\u30b9\u30ad\u30c3\u30d7 -CaseResult.Status.Fixed=\u4fee\u6b63OK -CaseResult.Status.Regression=\u30ea\u30b0\u30ec\u30c3\u30b7\u30e7\u30f3 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_nl.properties b/core/src/main/resources/hudson/tasks/junit/Messages_nl.properties deleted file mode 100644 index d6295f2f8696..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_nl.properties +++ /dev/null @@ -1,33 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=Testresultaat -TestResult.getChildTitle=Pakket - -PackageResult.getTitle=Testresultaat : {0} -PackageResult.getChildTitle=Klasse - -ClassResult.getTitle=Testresulstaat : {0} -JUnitResultArchiver.DisplayName=Publiceer rapport van de JUnit-testresultaten -JUnitResultArchiver.NoTestReportFound=Er konden geen testrapportbestanden gevonden worden! Mogelijks is er een probleem in de configuratie! -JUnitResultArchiver.Recording=Recording test results -JUnitResultArchiver.ResultIsEmpty=Geen enkel testrapport bevatte gegevens! \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties b/core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties deleted file mode 100644 index 37cf0bff9157..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_pt_BR.properties +++ /dev/null @@ -1,50 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=Resultado de teste -TestResult.getChildTitle=Pacote - -PackageResult.getTitle=Resultado de teste : {0} -PackageResult.getChildTitle=Classe - -ClassResult.getTitle=Resultado de teste : {0}# Failed -CaseResult.Status.Failed= -# Regression -CaseResult.Status.Regression=Regress\u00e3o -# Recording test results -JUnitResultArchiver.Recording=Gravando o resultado dos testes -# Incorrect XML attributes for test results found in {0} -JUnitResultArchiver.BadXML=Atributos XML incorretos para teste de resultados em {0} -# Fixed -CaseResult.Status.Fixed=Fixo -# None of the test reports contained any result -JUnitResultArchiver.ResultIsEmpty=Nenhum dos relat\u00f3rios de teste cont\u00e9m resultado -# Passed -CaseResult.Status.Passed=Passou -# No test report files were found. Configuration error? -JUnitResultArchiver.NoTestReportFound=Nenhum arquivo de relat\u00f3rio foi encontrado. Erro de configura\u00e7\u00e3o? -# Skipped -CaseResult.Status.Skipped=Pulou -# Publish JUnit test result report -JUnitResultArchiver.DisplayName=Publicar relat\u00f3rio de testes do JUnit -# Test Results -TestResult.getDisplayName=Resultado de teste diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_ru.properties b/core/src/main/resources/hudson/tasks/junit/Messages_ru.properties deleted file mode 100644 index 86f79927bbd4..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_ru.properties +++ /dev/null @@ -1,29 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430 -TestResult.getChildTitle=\u041f\u0430\u043a\u0435\u0442 - -PackageResult.getTitle=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430: {0} -PackageResult.getChildTitle=\u041a\u043b\u0430\u0441\u0441 - -ClassResult.getTitle=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430: {0} \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_tr.properties b/core/src/main/resources/hudson/tasks/junit/Messages_tr.properties deleted file mode 100644 index bf12a5b6a7a4..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_tr.properties +++ /dev/null @@ -1,29 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=Test Sonucu -TestResult.getChildTitle=Paket - -PackageResult.getTitle=Test Sunucu : -PackageResult.getChildTitle=S\u0131n\u0131f - -ClassResult.getTitle=Test Sunucu : \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/junit/Messages_zh_TW.properties b/core/src/main/resources/hudson/tasks/junit/Messages_zh_TW.properties deleted file mode 100644 index ea9296357122..000000000000 --- a/core/src/main/resources/hudson/tasks/junit/Messages_zh_TW.properties +++ /dev/null @@ -1,44 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -TestResult.getTitle=\u6e2c\u8a66\u7d50\u679c -TestResult.getChildTitle=\u5957\u4ef6 -TestResult.getDisplayName=\u6e2c\u8a66\u7d50\u679c - -PackageResult.getTitle=\u6e2c\u8a66\u7d50\u679c: {0} -PackageResult.getChildTitle=\u985e\u5225 - -ClassResult.getTitle=\u6e2c\u8a66\u7d50\u679c: {0} -JUnitParser.DisplayName=JUnit \u5256\u6790\u7a0b\u5f0f -JUnitParser.TestResultLocationMessage=JUnit XML \u6a94: -JUnitParser.no_workspace_found=\u627e\u4e0d\u5230 {0} \u7684\u5de5\u4f5c\u5340 -JUnitResultArchiver.DisplayName=\u767c\u4f48 JUnit \u6e2c\u8a66\u7d50\u679c\u5831\u544a -JUnitResultArchiver.NoTestReportFound=\u627e\u4e0d\u5230\u6e2c\u8a66\u7d50\u679c\u5831\u544a\u3002\u8a2d\u5b9a\u932f\u4e86\u55ce? -JUnitResultArchiver.Recording=\u8a18\u9304\u6e2c\u8a66\u7d50\u679c -JUnitResultArchiver.ResultIsEmpty=\u6e2c\u8a66\u5831\u544a\u4e2d\u90fd\u6c92\u6709\u7d50\u679c -JUnitResultArchiver.BadXML=\u5728 {0} \u7684\u6e2c\u8a66\u7d50\u679c\u4e2d\u767c\u73fe\u932f\u8aa4\u7684 XML \u5c6c\u6027 - -CaseResult.Status.Passed=\u901a\u904e -CaseResult.Status.Failed=\u5931\u6557 -CaseResult.Status.Skipped=\u7565\u904e -CaseResult.Status.Fixed=\u4fee\u6b63 -CaseResult.Status.Regression=\u9000\u6b65 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly deleted file mode 100644 index 38bc5c55afe6..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary.jelly +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - ${it.displayName} - - - - - - - -
    - - - - - - - - - - - - - -
  • - - - - - -
  • -
    -
- - - - ${%Show all failed tests} ${">>>"} - -
- -
-
diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_bg.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_bg.properties deleted file mode 100644 index 407748687c09..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_bg.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -Show\ all\ failed\ tests=\u041F\u043E\u043A\u0430\u0436\u0438 \u0432\u0441\u0438\u0447\u043A\u0438 \u043D\u0435\u0443\u0441\u043F\u0435\u0448\u043D\u0438 \u0442\u0435\u0441\u0442\u043E\u0432\u0435 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_da.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_da.properties deleted file mode 100644 index e66991d6eb35..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_da.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Vis alle fejlede test diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties deleted file mode 100644 index f203d3fa0eb7..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_de.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Zeige alle fehlgeschlagenen Tests diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_es.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_es.properties deleted file mode 100644 index 5085dfbd71e4..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_es.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Mostrar todos los test que fallaron diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_fr.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_fr.properties deleted file mode 100644 index 4674591fceab..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_fr.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Montrer tous les tests en chec diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_he.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_he.properties deleted file mode 100644 index 1e2058e415c2..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_he.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -Show\ all\ failed\ tests=\u05D4\u05E6\u05D2 \u05D0\u05EA \u05DB\u05DC \u05D4\u05D1\u05D3\u05D9\u05E7\u05D5\u05EA \u05E9\u05E0\u05DB\u05E9\u05DC\u05D5 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_hi_IN.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_hi_IN.properties deleted file mode 100644 index 3cab6ea0ebc6..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_hi_IN.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -Show\ all\ failed\ tests=\u0938\u093E\u0930\u0947 \u0935\u093F\u092B\u0932 \u092A\u0930\u093F\u0915\u094D\u0937\u0923 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties deleted file mode 100644 index d8d1ddc98d26..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ja.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=\u5931\u6557\u3057\u305F\u3059\u3079\u3066\u306E\u30C6\u30B9\u30C8\u3092\u8868\u793A \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ko.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ko.properties deleted file mode 100644 index 5e12daaa9eae..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ko.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=\uBAA8\uB4E0 \uC2E4\uD328\uD55C \uD14C\uC2A4\uD2B8 \uC5F4\uB78C diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_lv.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_lv.properties deleted file mode 100644 index 71c9511ef259..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_lv.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -Show\ all\ failed\ tests=R\u0101d\u012Bt visus neveiksm\u012Bgos testus diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties deleted file mode 100644 index 811b0ef2b4d3..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_nl.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Gefaalde testen weergeven -Test\ Result=Testresultaat diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pl.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pl.properties deleted file mode 100644 index b7895d5e50b5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pl.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Poka\u017C wszystkie testy zako\u0144czone niepowodzeniem diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties deleted file mode 100644 index 96c334f5a190..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_pt_BR.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Mostrar todas as falhas diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ru.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ru.properties deleted file mode 100644 index 7fda5921b497..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_ru.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u0440\u043E\u0432\u0430\u043B\u0438\u0432\u0448\u0438\u0435\u0441\u044F \u0442\u0435\u0441\u0442\u044B -Test\ Result=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u0430 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sk.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sk.properties deleted file mode 100644 index 55886236e63f..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sk.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Uk\u00E1za\u0165 v\u0161etky ne\u00FAspe\u0161n\u00E9 testy diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sv_SE.properties deleted file mode 100644 index 1edf8ff7ace5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_sv_SE.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=Visa alla fallerande tester diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_tr.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_tr.properties deleted file mode 100644 index 297ab525bd0a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_tr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=T\u00FCm ba\u015Far\u0131s\u0131z testleri g\u00F6ster -Test\ Result=Test Sonu\u00e7lar\u0131 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_uk.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_uk.properties deleted file mode 100644 index cc5783216083..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_uk.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -Show\ all\ failed\ tests=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u0432\u0441\u0456 \u043D\u0435\u0432\u0434\u0430\u043B\u0456 \u0442\u0435\u0441\u0442\u0438 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_CN.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_CN.properties deleted file mode 100644 index 7174b44f706c..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_CN.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -Show\ all\ failed\ tests=\u663E\u793A\u5168\u90E8\u5931\u8D25\u5355\u5143\u6D4B\u8BD5 diff --git a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_TW.properties deleted file mode 100644 index 573df02437f6..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AbstractTestResultAction/summary_zh_TW.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Show\ all\ failed\ tests=\u986F\u793A\u6240\u6709\u5931\u6557\u6E2C\u8A66 diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index.jelly b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index.jelly deleted file mode 100644 index 81db55f00156..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index.jelly +++ /dev/null @@ -1,94 +0,0 @@ - - - - - - - -

${it.displayName}

- - - ${%Fingerprinting not enabled on this build. Test aggregation requires fingerprinting.} - - - -

${%Drill Down}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
${%Test}${%Fail}${%Total}
- - - ${i.failCount} - ${h.getDiffString2(' (',i.failCount-prev.failCount,')')} - - ${i.totalCount} - ${h.getDiffString2(' (',i.totalCount-prev.totalCount,')')} -
- ${i.fullDisplayName} - (${%test result not available}) - - ${%N/A} - - ${%N/A} -
- ${i.fullDisplayName} - (${%last successful job is not fingerprinted}) - - ${%N/A} - - ${%N/A} -
-
-
-
-
-
\ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_da.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_da.properties deleted file mode 100644 index 9badb722fcef..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_da.properties +++ /dev/null @@ -1,30 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=N/A -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=Filfingeraftryk er ikke sl\u00e5et til for dette byg, testresultatopsamling kr\u00e6ver filfingeraftryk. -Drill\ Down=Bor ned -last\ successful\ job\ is\ not\ fingerprinted=ingen filfingeraftryk for seneste succesfulde job -Test=Test -test\ result\ not\ available=test resultat ikke tilg\u00e6ngeligt -Total=I alt -Fail=Fejler diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_de.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_de.properties deleted file mode 100644 index 84728d3dd6e0..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_de.properties +++ /dev/null @@ -1,10 +0,0 @@ -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=\ - Aufzeichnung von Fingerabdrcken wurde fr diesen Build nicht aktiviert, ist aber \ - Voraussetzung fr das Zusammenfassen von Testergebnissen. -Drill\ Down=Detaillierte Darstellung -Test=Test -Fail=Fehlgeschlagen -Total=Summe -test\ result\ not\ available=Testergebnis nicht verfgbar -N/A=keine Angabe -last\ successful\ job\ is\ not\ fingerprinted=Vom letzen erfolgreichen Job liegen keine Fingerabdrcke vor. diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_es.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_es.properties deleted file mode 100644 index fc146b27affe..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_es.properties +++ /dev/null @@ -1,30 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=La opcin de guardar las firmas de los ficheros generados, no est habilitada para esta tarea. Para poder hacer agregacin de tests se requiere que esta funcionaliad est activa. -Drill\ Down=Ir hacia abajo -Test=Tests -Fail=Fallos -Total=Total -test\ result\ not\ available=Resultados de tests no disponible -N/A=N/D -last\ successful\ job\ is\ not\ fingerprinted=No se guardaron las firmas de los ficheros de la ltima ejecucin vlida. diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties deleted file mode 100644 index 26a85e8fbcdb..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_fr.properties +++ /dev/null @@ -1,30 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Drill\ Down=En profondeur -Test= -Fail=Echec -Total= -N/A= -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.= -test\ result\ not\ available=les derniers rsultats de test ne sont pas disponibles -last\ successful\ job\ is\ not\ fingerprinted=le dernier job execut avec succs n''a pas d''empreinte numrique diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ja.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ja.properties deleted file mode 100644 index 93b3b51981d9..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ja.properties +++ /dev/null @@ -1,31 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=\ - \u3053\u306E\u30D3\u30EB\u30C9\u3067\u306F\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u304C\u6709\u52B9\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30C6\u30B9\u30C8\u7D50\u679C\u306E\u96C6\u8A08\u306B\u306F\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u304C\u5FC5\u8981\u3067\u3059\u3002 -Drill\ Down=\u30C9\u30EA\u30EB\u30C0\u30A6\u30F3 -Test=\u30C6\u30B9\u30C8 -Fail=\u5931\u6557 -Total=\u30C8\u30FC\u30BF\u30EB -test\ result\ not\ available=\u30C6\u30B9\u30C8\u7D50\u679C\u306F\u5229\u7528\u3067\u304D\u307E\u305B\u3093\u3002 -N/A=N/A -last\ successful\ job\ is\ not\ fingerprinted=\u6700\u65B0\u306E\u6210\u529F\u30D3\u30EB\u30C9\u306E\u30D5\u30A1\u30A4\u30EB\u6307\u7D0B\u304C\u8A18\u9332\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_lv.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_lv.properties deleted file mode 100644 index 36b5c67f800b..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_lv.properties +++ /dev/null @@ -1,7 +0,0 @@ -# This file is under the MIT License by authors - -Drill\ Down=Izpild\u012Btie -Fail=Izg\u0101zu\u0161ies -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=Pirkstu Nospiedumi nav iesp\u0113joti \u0161im b\u016Bv\u0113jumam. Testu agreg\u0101cijai vajag pirkstu nospiedumus. -Test=Tests -Total=Kop\u0101 diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_pt_BR.properties deleted file mode 100644 index 16f78b209e75..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_pt_BR.properties +++ /dev/null @@ -1,31 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -N/A=N/A -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=Fingerprint desabilitado neste build. \ -Testes agregados precisam de fingerprint. -test\ result\ not\ available=Resultado de testes n\u00e3o dispon\u00edvel. -last\ successful\ job\ is\ not\ fingerprinted=\u00daltima job executado com sucesso n\u00e3o usou fingerprint. -Test=Teste -Total=Total -Drill\ Down= -Fail=Falha diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ru.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ru.properties deleted file mode 100644 index 8708f0282ead..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_ru.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -Fail=\u041E\u0448\u0438\u0431\u043A\u0438 -Test=\u0422\u0435\u0441\u0442\u044B -Total=\u0412\u0441\u0435\u0433\u043E diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_zh_TW.properties deleted file mode 100644 index 952a450eac10..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultAction/index_zh_TW.properties +++ /dev/null @@ -1,31 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Fingerprinting\ not\ enabled\ on\ this\ build.\ Test\ aggregation\ requires\ fingerprinting.=\ - \u5efa\u7f6e\u7684\u6307\u7d0b\u6309\u62bc\u529f\u80fd\u6c92\u6709\u555f\u7528\u3002\u6e2c\u8a66\u5f59\u7e3d\u9700\u8981\u7528\u5230\u6307\u7d0b\u529f\u80fd\u3002 -Drill\ Down=\u5411\u4e0b\u5207\u5165 -Test=\u6e2c\u8a66 -Fail=\u5931\u6557 -Total=\u7e3d\u8a08 -test\ result\ not\ available=\u6c92\u6709\u53ef\u7528\u7684\u6e2c\u8a66\u7d50\u679c -N/A=N/A -last\ successful\ job\ is\ not\ fingerprinted=\u6700\u8fd1\u4e00\u6b21\u6210\u529f\u7684\u4f5c\u696d\u6c92\u6709\u6309\u62bc\u6307\u7d0b diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain.jelly b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain.jelly deleted file mode 100644 index 00e7562eec7d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain.jelly +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - ${%Latest Aggregated Test Result} - - - - -
-
diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_de.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_de.properties deleted file mode 100644 index 2863cd725466..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_de.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Aggregated\ Test\ Result=Letzte zusammengefasste Testergebnisse diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_es.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_es.properties deleted file mode 100644 index ebbcbced606e..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_es.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Aggregated\ Test\ Result=ltimos resultados agregados de tests diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_ja.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_ja.properties deleted file mode 100644 index 7b4c008b8346..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_ja.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Aggregated\ Test\ Result=\u6700\u65b0\u306e\u96c6\u7d04\u3055\u308c\u305f\u30c6\u30b9\u30c8\u7d50\u679c diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_zh_TW.properties deleted file mode 100644 index 2bce7c5861bc..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/TestResultProjectAction/jobMain_zh_TW.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Aggregated\ Test\ Result=\u6700\u65b0\u5f59\u7e3d\u6e2c\u8a66\u7d50\u679c diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly deleted file mode 100644 index ca76344d5c8d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config.jelly +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - -
-
- - - -
diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_da.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_da.properties deleted file mode 100644 index 5aaa0d21a89f..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_da.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Jobs\ to\ aggregate=Jobs der skal samles -Automatically\ aggregate\ all\ downstream\ tests=Automatisk samling af alle downstream test diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties deleted file mode 100644 index afc09b63f60a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_de.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=Alle nachgelagerten Tests zusammenfassen -Jobs\ to\ aggregate=Zusammenzufassende Jobs -Include\ failed\ builds\ in\ results=Fehlgeschlagene Builds in Ergebnis erfassen diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_es.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_es.properties deleted file mode 100644 index f5db9510a766..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_es.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=Agregar automticamente todos los tests de projectos inferiores -Jobs\ to\ aggregate=Projectos para agregar -Include\ failed\ builds\ in\ results=Incluir en los resultados las tareas fallidas. diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties deleted file mode 100644 index fe75fe16b5a5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_fr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=Assembler automatiquement tous les tests en aval -Jobs\ to\ aggregate=Jobs consolider diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ja.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ja.properties deleted file mode 100644 index 6854789efba1..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ja.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2011, Sun Microsystems, Inc., Kohsuke Kawaguchi, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=\u5168\u4e0b\u6d41\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30c6\u30b9\u30c8\u3092\u81ea\u52d5\u7684\u306b\u96c6\u7d04 -Jobs\ to\ aggregate=\u96c6\u7d04\u3059\u308b\u30d7\u30ed\u30b8\u30a7\u30af\u30c8 -Include\ failed\ builds\ in\ results=\u30c6\u30b9\u30c8\u7d50\u679c\u306b\u5931\u6557\u30d3\u30eb\u30c9\u3092\u542b\u3080 \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties deleted file mode 100644 index 67e9d6e9e185..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_pt_BR.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=Agregar automaticamente todos os testes filho -Jobs\ to\ aggregate=Jobs a agregar diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ru.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ru.properties deleted file mode 100644 index 440e85c47ea8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_ru.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0432\u0441\u0435\u0445 \u043d\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 (downstream) \u0442\u0435\u0441\u0442\u043e\u0432 -Jobs\ to\ aggregate=\u0417\u0430\u0434\u0430\u0447\u0438 \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_sv_SE.properties deleted file mode 100644 index 9bba4324e828..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_sv_SE.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Jobs\ to\ aggregate=Jobb att aggregera diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties deleted file mode 100644 index e58c9927ee8c..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_tr.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=T\u00fcm downstream testleri otomatik olarak toparla -Jobs\ to\ aggregate=Toparlanacak i\u015fler diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_CN.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_CN.properties deleted file mode 100644 index 2bad7425cdcb..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_CN.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=\u81EA\u52A8\u6574\u5408\u6240\u6709\u7684downstream\u6D4B\u8BD5 -Include\ failed\ builds\ in\ results=\u5728\u7ED3\u6784\u4E2D\u5305\u542B\u5931\u8D25\u7684\u6784\u5EFA -Jobs\ to\ aggregate=\u5408\u5E76\u4EFB\u52A1 diff --git a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_TW.properties deleted file mode 100644 index 001f8b0672cc..000000000000 --- a/core/src/main/resources/hudson/tasks/test/AggregatedTestResultPublisher/config_zh_TW.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Automatically\ aggregate\ all\ downstream\ tests=\u81ea\u52d5\u5f59\u7e3d\u6240\u6709\u4e0b\u6e38\u7684\u6e2c\u8a66 -Jobs\ to\ aggregate=\u8981\u5f59\u7e3d\u7684\u4f5c\u696d -Include\ failed\ builds\ in\ results=\u5305\u542b\u5931\u6557\u7684\u5efa\u7f6e diff --git a/core/src/main/resources/hudson/tasks/test/Messages.properties b/core/src/main/resources/hudson/tasks/test/Messages.properties deleted file mode 100644 index bc4e9962ff88..000000000000 --- a/core/src/main/resources/hudson/tasks/test/Messages.properties +++ /dev/null @@ -1,39 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, Stephen Connolly, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -AbstractTestResultAction.getDisplayName=Test Result -AbstractTestResultAction.zeroTestDescription={0}: 0 tests in total. -AbstractTestResultAction.TestsDescription={0}: {1} {1,choice,0#tests|1#test|1 - - - - -

${%All Failed Tests}

- - - - - - - - - - - - - -
${%Test Name}${%Duration}${%Age}
- ${f.durationString} - - ${f.age} -
-
- - -

${%All Tests}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
${it.childTitle}${%Duration}${%Fail}(${%diff})${%Skip}(${%diff})${%Pass}(${%diff})${%Total}(${%diff})
- - - - - ${p.durationString}${p.failCount} - ${h.getDiffString2(p.failCount-prev.failCount)} - ${p.skipCount} - ${h.getDiffString2(p.skipCount-prev.skipCount)} - ${p.passCount} - ${h.getDiffString2(p.passCount-prev.passCount)} - ${p.totalCount} - ${h.getDiffString2(p.totalCount-prev.totalCount)} -
-
-
diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ar.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ar.properties deleted file mode 100644 index 21320446df6f..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ar.properties +++ /dev/null @@ -1,12 +0,0 @@ -# This file is under the MIT License by authors - -Age=\u0639\u0645\u0631 -All\ Failed\ Tests=\u062C\u0645\u064A\u0639 \u0627\u0644\u0641\u062D\u0648\u0635 \u0627\u0644\u0641\u0627\u0634\u0644\u0629 -All\ Tests=\u062C\u0645\u064A\u0639 \u0627\u0644\u0641\u062D\u0648\u0635 -Duration=\u0645\u062F\u0629 -Fail=\u0641\u0634\u0644 -Loading...=\u062A\u062D\u0645\u064A\u0644... -Skip=\u062A\u062E\u0637\u0649 -Test\ Name=\u0627\u0633\u0645 \u0627\u0644\u0641\u062D\u0635 -Total=\u0645\u062C\u0645\u0648\u0639 -diff=\u0641\u0631\u0642 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_bg.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_bg.properties deleted file mode 100644 index 3fbc33679aff..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_bg.properties +++ /dev/null @@ -1,12 +0,0 @@ -# This file is under the MIT License by authors - -Age=\u0441\u0442\u0430\u0440\u043E\u0441\u0442 -All\ Failed\ Tests=\u0412\u0441\u0438\u0447\u043A\u0438 \u043F\u0440\u043E\u0432\u0430\u043B\u0435\u043D\u0438 \u0442\u0435\u0441\u0442\u043E\u0432\u0435 -All\ Tests=\u0412\u0441\u0438\u0447\u043A\u0438 \u0422\u0435\u0441\u0442\u043E\u0432\u0435 -Duration=\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438\u0442\u0435\u043B\u043D\u043E\u0441\u0442 -Fail=\u043F\u0440\u043E\u0432\u0430\u043B -Loading...=\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435... -Skip=\u043D\u0435\u0438\u0437\u043F\u044A\u043B\u043D\u0435\u043D -Test\ Name=\u0418\u043C\u0435 \u043D\u0430 \u0442\u0435\u0441\u0442 -Total=\u041E\u0431\u0449\u043E -diff=\u0441\u0440\u0430\u0432\u043D\u044F\u0432\u0430\u043D\u0435 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_cs.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_cs.properties deleted file mode 100644 index 1ceedb88ea48..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_cs.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Age=V\u011Bk -All\ Failed\ Tests=V\u0161echny ne\u00FAsp\u011B\u0161n\u00E9 testy -All\ Tests=V\u0161echny testy -Duration=Trv\u00E1n\u00ED -Fail=Selh\u00E1n\u00ED -Loading...=Nahr\u00E1v\u00E1n\u00ED... -Skip=P\u0159esko\u010Deno -Test\ Name=N\u00E1zev testu -Total=Celkem -diff=zm\u011Bna diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_da.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_da.properties deleted file mode 100644 index 2d02270c3a8a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_da.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Name=Testnavn -Loading...=Indl\u00e6ser... -Duration=Varighed -All\ Failed\ Tests=Alle fejlede test -diff=diff -Age=Alder -Skip=Spring over -All\ Tests=Alle test -Total=I alt -Fail=Fejler diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_de.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_de.properties deleted file mode 100644 index ce77794f151c..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_de.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=Alle fehlgeschlagenen Tests -Test\ Name=Testname -Duration=Dauer -Age=Alter -All\ Tests=Alle Tests -Fail=Fehlgeschlagen -Skip=bersprungen -diff=Diff. -Total=Summe -Loading...=Lade Daten... diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_eo.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_eo.properties deleted file mode 100644 index 7fc2c55319db..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_eo.properties +++ /dev/null @@ -1,7 +0,0 @@ -# This file is under the MIT License by authors - -All\ Tests=\u0108iuj provoj -Duration=Da\u016Dro -Fail=Malsukceso -Total=Sumo -diff=dif diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_es.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_es.properties deleted file mode 100644 index b0e99ae14444..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_es.properties +++ /dev/null @@ -1,10 +0,0 @@ -Total=Total -Loading...=Cargando... -Age=Antigedad -All\ Tests=Todos los tests -Fail=Fallidos -diff=diferencias -Skip=Omitir -Duration=Duracin -Test\ Name=Nombre del test -All\ Failed\ Tests=Todos los test con fallos diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_et.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_et.properties deleted file mode 100644 index b9c866831cd8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_et.properties +++ /dev/null @@ -1,8 +0,0 @@ -# This file is under the MIT License by authors - -All\ Tests=K\u00F5ik testid -Duration=Kestus -Fail=Eba\u00F5nnestumisi -Skip=Vahele j\u00E4etud -Total=Kokku -diff=erinevus diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fi.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fi.properties deleted file mode 100644 index 514730efe9fa..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fi.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Age=Ik\u00E4 -All\ Failed\ Tests=Kaikki ep\u00E4onnistuneet testit -All\ Tests=Kaikki testit -Duration=Kesto -Fail=Ep\u00E4onnistui -Loading...=Ladataan... -Skip=Ohitettiin -Test\ Name=Testin nimi -Total=Yhteens\u00E4 -diff=muutos diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fr.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fr.properties deleted file mode 100644 index 4fd0447066b5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_fr.properties +++ /dev/null @@ -1,31 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=Tous les tests qui ont \u00E9chou\u00E9 -Loading...=Chargement... -Skip=Saut\u00E9 -Test\ Name=Nom du test -Duration=Dur\u00E9e -Age=Age -All\ Tests=Tous les tests -Fail=\u00C9chec -Total=Total diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_it.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_it.properties deleted file mode 100644 index 6b7ead0db8a2..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_it.properties +++ /dev/null @@ -1,10 +0,0 @@ -# This file is under the MIT License by authors - -All\ Failed\ Tests=Tutti i test falliti -All\ Tests=Tutti i test -Duration=Durata -Fail=Falliti -Loading...=Caricamento... -Skip=Saltati -Test\ Name=Nome test -Total=Totali diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ja.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ja.properties deleted file mode 100644 index 3a58e63d48a7..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ja.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman, Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=\u5931\u6557\u3057\u305F\u3059\u3079\u3066\u306E\u30C6\u30B9\u30C8 -Test\ Name=\u30C6\u30B9\u30C8\u540D -Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 -Age=\u6642\u671F -All\ Tests=\u3059\u3079\u3066\u306E\u30C6\u30B9\u30C8 -Fail=\u5931\u6557 -Skip=\u30B9\u30AD\u30C3\u30D7 -diff=\u5DEE\u5206 -Total=\u5408\u8A08 -Loading...=\u30ED\u30FC\u30C9\u4E2D... diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ko.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ko.properties deleted file mode 100644 index 0fcb3ff96ccf..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ko.properties +++ /dev/null @@ -1,10 +0,0 @@ -# This file is under the MIT License by authors - -All\ Failed\ Tests=\uC2E4\uD328\uD55C \uBAA8\uB4E0 \uD14C\uC2A4\uD2B8 -All\ Tests=\uBAA8\uB4E0 \uD14C\uC2A4\uD2B8 -Duration=\uC2E4\uD589\uC2DC\uAC04 -Fail=\uC2E4\uD328 -Skip=\uAC74\uB108\uB700 -Test\ Name=\uD14C\uC2A4\uD2B8 \uBA85 -Total=\uCD1D -diff=\uBE44\uAD50 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_lv.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_lv.properties deleted file mode 100644 index 65f56ff9a489..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_lv.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Age=Vecums -All\ Failed\ Tests=Visi Izg\u0101zu\u0161ies Testi -All\ Tests=Visi Testi -Duration=Ilgums -Fail=Izg\u0101z\u0161an\u0101s -Loading...=Iel\u0101d\u0113ju... -Skip=Izlaists -Test\ Name=Testa nosaukums -Total=Kop\u0101 -diff=diff diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nb_NO.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nb_NO.properties deleted file mode 100644 index ce428af74b84..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nb_NO.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Age=Alder -All\ Failed\ Tests=Alle feilede tester -All\ Tests=Alle testene -Duration=Varighet -Fail=Feilet -Loading...=Laster.. -Skip=Ignorer -Test\ Name=Testnavn -Total=Total -diff=Differanse diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nl.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nl.properties deleted file mode 100644 index bce3db66a45c..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_nl.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Loading...=Laden... -Skip=Overgeslagen -Test\ Name=Naam van de test -Duration=Duur -Age=Leeftijd -All\ Failed\ Tests=Alle gefaalde testen -All\ Tests=Alle tests -Total=Totaal -Fail=Gefaald -diff=delta diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pl.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pl.properties deleted file mode 100644 index 82601ec87723..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pl.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Age=Wiek -All\ Failed\ Tests=Wszystkie testy zako\u0144czone niepowodzeniem -All\ Tests=Wszystkie Testy -Duration=Czas Trwania -Fail=B\u0142\u0119d\u00F3w -Loading...=\u0141adowanie... -Skip=Pomini\u0119tych -Test\ Name=Nazwa Testu -Total=Wszystkie -diff=zmiana diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_BR.properties deleted file mode 100644 index fee0a31e3714..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_BR.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=Todos os testes que falharam -Test\ Name=Nome do teste -Duration=Dura\u00e7\u00e3o -Age=Idade -All\ Tests=Todos os testes -Fail=Falha -diff=Diferen\u00e7a -Total=Total -Skip=Pular -Loading...=Carregando... diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_PT.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_PT.properties deleted file mode 100644 index dc6d4616a808..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_pt_PT.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -Duration=Dura\u00E7\u00E3o -Test\ Name=Nome do teste diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ro.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ro.properties deleted file mode 100644 index 537397a73e8d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ro.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file is under the MIT License by authors - -Age=Varsta -All\ Failed\ Tests=Toate testele gresite -All\ Tests=Toate testele -Duration=Durata -Fail=Gresit -Loading...=Se incarca... -Skip=Sari peste -Test\ Name=Nume test -diff=Differente diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ru.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ru.properties deleted file mode 100644 index 1e60a9a153ee..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_ru.properties +++ /dev/null @@ -1,32 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=\u0412\u0441\u0435 \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u0432\u0448\u0438\u0435\u0441\u044f \u0442\u0435\u0441\u0442\u044b -Loading...=\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430... -Skip=\u041F\u0440\u043E\u043F\u0443\u0449\u0435\u043D\u043E -Test\ Name=\u0418\u043c\u044f \u0442\u0435\u0441\u0442\u0430 -Duration=\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c -Age=\u0412\u043e\u0437\u0440\u0430\u0441\u0442 -All\ Tests=\u0412\u0441\u0435 \u0442\u0435\u0441\u0442\u044b -Fail=\u041D\u0435 \u043F\u0440\u043E\u0439\u0434\u0435\u043D\u043E -diff=\u0438\u0437\u043C. -Total=\u0412\u0441\u0435\u0433\u043E diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sl.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sl.properties deleted file mode 100644 index 6ce7616b7ec8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sl.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file is under the MIT License by authors - -All\ Failed\ Tests=Vsi neuspeli testi -All\ Tests=Vsi testi -Duration=Trajanje -Fail=Neuspelo -Loading...=Nalaganje... -Skip=Izpu\u0161\u010Deno -Test\ Name=Ime testa -Total=Skupaj -diff=razlika diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sv_SE.properties deleted file mode 100644 index 8d43af1ab0b2..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_sv_SE.properties +++ /dev/null @@ -1,11 +0,0 @@ -# This file is under the MIT License by authors - -Age=\u00C5lder -All\ Failed\ Tests=Alla misslyckade tester -All\ Tests=Alla tester -Duration=L\u00E4ngd -Fail=Misslyckades -Loading...=Laddar -Skip=Ignorerade -Test\ Name=Testnamn -diff=Differens diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_tr.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_tr.properties deleted file mode 100644 index 78bf814f1a45..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_tr.properties +++ /dev/null @@ -1,30 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=T\u00fcm Ba\u015far\u0131s\u0131z Testler -Test\ Name=Test Ad\u0131 -Duration=S\u00fcre -Age=Ya\u015f -All\ Tests=T\u00fcm Testler -Fail=Ba\u015far\u0131s\u0131z -diff=fark -Total=Toplam diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_CN.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_CN.properties deleted file mode 100644 index 1372abf749d7..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_CN.properties +++ /dev/null @@ -1,12 +0,0 @@ -# This file is under the MIT License by authors - -Age=\u5BFF\u547D -All\ Failed\ Tests=\u6240\u6709\u5931\u8D25\u7684\u6D4B\u8BD5 -All\ Tests=\u6240\u6709\u7684\u6D4B\u8BD5 -Duration=\u82B1\u7684\u65F6\u95F4 -Fail=\u5931\u8D25 -Loading...=\u8C03\u7528\u4E2D -Skip=\u8DF3\u8FC7 -Test\ Name=\u6D4B\u8BD5\u7684\u540D\u79F0 -Total=\u603B\u6570 -diff=\u533A\u522B diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_TW.properties deleted file mode 100644 index 4ac26f005942..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/body_zh_TW.properties +++ /dev/null @@ -1,35 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2013, Sun Microsystems, Inc., Chunghwa Telecom Co., Ltd., -# and Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -All\ Failed\ Tests=\u6240\u6709\u5931\u6557\u7684\u6e2c\u8a66 -Test\ Name=\u6e2c\u8a66\u540d\u7a31 -Duration=\u82b1\u8cbb\u6642\u9593 -Age=\u7d2f\u7a4d\u6b21\u6578 - -Loading...=\u8f09\u5165\u4e2d... - -All\ Tests=\u6240\u6709\u6e2c\u8a66 -diff=\u5dee\u7570 -Fail=\u5931\u6557 -Skip=\u7565\u904e -Total=\u7e3d\u8a08 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list.jelly b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list.jelly deleted file mode 100644 index 277272f56055..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list.jelly +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
${%Build}${%Description}${%Duration}${%Fail}${%Skip}${%Total}
- ${b.fullDisplayName} - - - - ${p.durationString}${p.failCount}${p.skipCount}${p.totalCount}
-
diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_da.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_da.properties deleted file mode 100644 index a1455c3c2b28..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_da.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Duration=Varighed -Build=Byg -Skip=Spring over -Total=I alt -Fail=Fejler -Description=Beskrivelse diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_de.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_de.properties deleted file mode 100644 index 4f7d693abaf3..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_de.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Total=Summe -Build=Build -Fail=Fehlgeschlagen -Skip=bersprungen -Duration=Dauer -Description=Beschreibung diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_es.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_es.properties deleted file mode 100644 index f4154b3509f4..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_es.properties +++ /dev/null @@ -1,6 +0,0 @@ -Total=Total -Build=Ejecucin -Fail=Fallida -Skip=Omitir -Duration=Duracin -Description=Descripcin diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_fr.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_fr.properties deleted file mode 100644 index 555a00ec6a87..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_fr.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -Build=Construction -Duration=Dur\u00E9e -Fail=Echecs -Skip=Non pass\u00E9s diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ja.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ja.properties deleted file mode 100644 index 33a6ec2da364..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ja.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=\u30D3\u30EB\u30C9 -Description=\u30C6\u30B9\u30C8\u306E\u8AAC\u660E -Duration=\u30C6\u30B9\u30C8\u6240\u8981\u6642\u9593 -Fail=\u5931\u6557 -Skip=\u30B9\u30AD\u30C3\u30D7 -Total=\u5408\u8A08 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_lv.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_lv.properties deleted file mode 100644 index 0ad7abedfda2..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_lv.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=B\u016Bv\u0113jums -Description=Apraksts -Duration=Ilgums -Fail=Izg\u0101z\u0161an\u0101s -Skip=Izlaists -Total=Kop\u0101 diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_pt_BR.properties deleted file mode 100644 index 0d389102ed60..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_pt_BR.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Skip=Pular -Duration=Dura\u00e7\u00e3o -Total=Total -Build=Build -Fail=Falha -Description=Descri\u00e7\u00e3o diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ru.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ru.properties deleted file mode 100644 index b8799d337bd0..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_ru.properties +++ /dev/null @@ -1,8 +0,0 @@ -# This file is under the MIT License by authors - -Build=\u0421\u0431\u043E\u0440\u043A\u0430 -Description=\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435 -Duration=\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u0435\u043B\u044C\u043D\u043E\u0441\u0442\u044C -Fail=\u041E\u0448\u0438\u0431\u043E\u043A -Skip=\u041F\u0440\u043E\u043F\u0443\u0448\u0435\u043D\u043E -Total=\u0412\u0441\u0435\u0433\u043E diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_sv_SE.properties deleted file mode 100644 index ee8f2c7c7647..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_sv_SE.properties +++ /dev/null @@ -1,8 +0,0 @@ -# This file is under the MIT License by authors - -Build=Bygge -Description=Beskrivning -Duration=Tids\u00E5tg\u00E5ng -Fail=Misslyckad -Skip=Hoppat \u00F6ver -Total=Totalt diff --git a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_zh_TW.properties deleted file mode 100644 index c213f0a42779..000000000000 --- a/core/src/main/resources/hudson/tasks/test/MetaTabulatedResult/list_zh_TW.properties +++ /dev/null @@ -1,28 +0,0 @@ -# The MIT License -# -# Copyright (c) 2013, Chunghwa Telecom Co., Ltd., Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Build=\u5efa\u7f6e -Description=\u8aaa\u660e -Duration=\u82b1\u8cbb\u6642\u9593 -Fail=\u5931\u6557 -Skip=\u7565\u904e -Total=\u7e3d\u8a08 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel.jelly b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel.jelly deleted file mode 100644 index d6578f0e9919..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel.jelly +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ar.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ar.properties deleted file mode 100644 index fa7bd611ff86..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ar.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -History=\u0633\u062C\u0644 -Next\ Build=\u0628\u0646\u0627\u0621 \u062A\u0627\u0644\u064A -Previous\ Build=\u0628\u0646\u0627\u0621 \u0633\u0627\u0628\u0642 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_bg.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_bg.properties deleted file mode 100644 index 13f7729c6bb4..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_bg.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -History=\u0418\u0441\u0442\u043E\u0440\u0438\u044F -Next\ Build=\u0421\u043B\u0435\u0434\u0432\u0430\u0449 \u0411\u0438\u043B\u0434 -Previous\ Build=\u041F\u0440\u0435\u0434\u0438\u0448\u0435\u043D \u0431\u0438\u043B\u0434 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_cs.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_cs.properties deleted file mode 100644 index f901de30ce1d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_cs.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=Historie -Previous\ Build=P\u0159edchoz\u00ED build diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_da.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_da.properties deleted file mode 100644 index f93b70291adb..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_da.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Previous\ Build=Foreg\u00e5ende Byg -History=Historik -Next\ Build=N\u00e6ste Byg diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_de.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_de.properties deleted file mode 100644 index b644627a0933..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_de.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=Verlauf -Previous\ Build=Vorheriger Build -Next\ Build=Nachfolgender Build diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_eo.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_eo.properties deleted file mode 100644 index d9b41d481e47..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_eo.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -History=Kronologio -Previous\ Build=Anta\u016Da konstruo diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_es.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_es.properties deleted file mode 100644 index 577f4efae8bb..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_es.properties +++ /dev/null @@ -1,3 +0,0 @@ -Previous\ Build=Ejecucin anterior -History=Historia -Next\ Build=Ejecucin siguiente diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_et.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_et.properties deleted file mode 100644 index 9e0302928bf6..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_et.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -History=Ajalugu -Next\ Build=J\u00E4rgmine versioon -Previous\ Build=Eelmine versioon diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fi.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fi.properties deleted file mode 100644 index af2efb33cd0d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fi.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=Historia -Next\ Build=Seuraava k\u00E4\u00E4nn\u00F6s -Previous\ Build=Edellinen k\u00E4\u00E4nn\u00F6s diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fr.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fr.properties deleted file mode 100644 index f9a87f663f4c..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_fr.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=Historique -Next\ Build=Build suivante -Previous\ Build=Build Pr\u00E9c\u00E9dent diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_he.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_he.properties deleted file mode 100644 index 691b8b53acd8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_he.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -History=\u05D4\u05E1\u05D8\u05D5\u05E8\u05D9\u05D4 -Next\ Build=\u05D4\u05D1\u05E0\u05D9\u05D4 \u05D4\u05D1\u05D0\u05D4 -Previous\ Build=\u05D4\u05D1\u05E0\u05D9\u05D4 \u05D4\u05E7\u05D5\u05D3\u05DE\u05EA diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hi_IN.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hi_IN.properties deleted file mode 100644 index 5ef29e692dde..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hi_IN.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -History=\u0907\u0924\u093F\u0939\u093E\u0938 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hu.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hu.properties deleted file mode 100644 index a38e049148aa..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_hu.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=T\u00F6rt\u00E9net -Previous\ Build=El\u0151z\u0151 \u00E9p\u00EDt\u00E9s diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_it.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_it.properties deleted file mode 100644 index d8a7564c999f..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_it.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -History=Storia -Next\ Build=Build successiva -Previous\ Build=Build precedente diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ja.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ja.properties deleted file mode 100644 index 76a09eb8f7a5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ja.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=\u30C6\u30B9\u30C8\u5C65\u6B74 -Previous\ Build=\u524D\u306E\u30D3\u30EB\u30C9 -Next\ Build=\u6B21\u306E\u30D3\u30EB\u30C9 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ko.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ko.properties deleted file mode 100644 index e5dc694bf876..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ko.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -History=\uB0B4\uC5ED -Next\ Build=\uB2E4\uC74C \uBE4C\uB4DC -Previous\ Build=\uC774\uC804 \uB0B4\uC5ED diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lt.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lt.properties deleted file mode 100644 index 7ddf60258e25..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lt.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -History=Istorija diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lv.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lv.properties deleted file mode 100644 index 09c1ff7ccf14..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_lv.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=V\u0113sture -Next\ Build=N\u0101kamais b\u016Bv\u0113jums -Previous\ Build=Iepriek\u0161\u0113jais b\u016Bv\u0113jums diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nb_NO.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nb_NO.properties deleted file mode 100644 index 2791eb18af55..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nb_NO.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=Historie -Previous\ Build=Forrige bygg diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nl.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nl.properties deleted file mode 100644 index 85606083b9ec..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_nl.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=Geschiedenis -Previous\ Build=Vorige bouwpoging diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pl.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pl.properties deleted file mode 100644 index 36fd5549c695..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pl.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=Historia -Next\ Build=Nast\u0119pny build -Previous\ Build=Poprzednia budowa diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_BR.properties deleted file mode 100644 index 38ef241641bf..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_BR.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Previous\ Build=builds anterior -History=Hist\u00f3rico -Next\ Build=Pr\u00f3ximo build diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_PT.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_PT.properties deleted file mode 100644 index 3eede2aff83b..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_pt_PT.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -History=Hist\u00F3rico diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ro.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ro.properties deleted file mode 100644 index 5aed2b25781a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ro.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -History=Istoric -Previous\ Build=Build anterior diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ru.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ru.properties deleted file mode 100644 index 326482285114..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_ru.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=\u0418\u0441\u0442\u043E\u0440\u0438\u044F -Next\ Build=\u0421\u043B\u0435\u0434\u0443\u044E\u0449\u0430\u044F \u0421\u0431\u043E\u0440\u043A\u0430 -Previous\ Build=\u041F\u0440\u0435\u0434\u044B\u0434\u0443\u0449\u0430\u044F \u0441\u0431\u043E\u0440\u043A\u0430 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sl.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sl.properties deleted file mode 100644 index 08a50a399dfe..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sl.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -History=Zgodovina diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sv_SE.properties deleted file mode 100644 index 9ee018ce8f2a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_sv_SE.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -History=Historik -Next\ Build=N\u00E4sta bygge -Previous\ Build=F\u00F6reg\u00E5ende Bygge diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_uk.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_uk.properties deleted file mode 100644 index f29964e18dab..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_uk.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -History=\u0406\u0441\u0442\u043E\u0440\u0456\u044F -Previous\ Build=\u041F\u043E\u043F\u0435\u0440\u0435\u0434\u043D\u044F \u0437\u0431\u0456\u0440\u043A\u0430 diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_CN.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_CN.properties deleted file mode 100644 index c5d3f86cc8b5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_CN.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=\u5386\u53F2\u8BB0\u5F55 -Next\ Build=\u540E\u4E00\u6B21\u6784\u5EFA -Previous\ Build=\u4E0A\u4E00\u6B21\u6784\u5EFA diff --git a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_TW.properties deleted file mode 100644 index fc2bbbe9ac31..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestObject/sidepanel_zh_TW.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -History=\u6B77\u7A0B -Next\ Build=\u4E0B\u4E00\u6B21\u5EFA\u7F6E -Previous\ Build=\u4E0A\u4E00\u6B21\u5EFA\u7F6E diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index.jelly b/core/src/main/resources/hudson/tasks/test/TestResult/index.jelly deleted file mode 100644 index 1022814bf364..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index.jelly +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - -

- - - - - - - - - - - - - -
- - -
-
-
diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index.properties deleted file mode 100644 index 30e0a0969d7d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Took {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_ar.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_ar.properties deleted file mode 100644 index 2ac59cd357f8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_ar.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=\u0627\u0633\u062A\u063A\u0631\u0642 {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_bg.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_bg.properties deleted file mode 100644 index 532a24bdcca0..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_bg.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=\u043E\u0442\u043D\u0435 diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_cs.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_cs.properties deleted file mode 100644 index 2be98c1820b3..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_cs.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Trval {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_da.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_da.properties deleted file mode 100644 index cacb65f2dbd9..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_da.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Tog {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_de.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_de.properties deleted file mode 100644 index 2f07fa872946..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_de.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Dauer: {0} diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_eo.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_eo.properties deleted file mode 100644 index aae62d6f651d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_eo.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=Da\u016Dris {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_es.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_es.properties deleted file mode 100644 index 5ee020d5b9e8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_es.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -# Took {0}. -took=Tard {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_et.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_et.properties deleted file mode 100644 index c2fc660646f3..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_et.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=Aega v\u00F5ttis {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_fi.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_fi.properties deleted file mode 100644 index 729d4cb3ba4a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_fi.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Aikaa kului {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_fr.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_fr.properties deleted file mode 100644 index 9a64783a97d5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_fr.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=A pris {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_it.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_it.properties deleted file mode 100644 index efed04b343b7..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_it.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=Durata {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_ja.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_ja.properties deleted file mode 100644 index 4de8023d99bb..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_ja.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Seiji Sogabe -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=\u6240\u8981\u6642\u9593 {0} diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_lv.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_lv.properties deleted file mode 100644 index 1a65f9b78bcc..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_lv.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Ilga {0} diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_nb_NO.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_nb_NO.properties deleted file mode 100644 index c5b769312ce1..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_nb_NO.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Tok {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_nl.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_nl.properties deleted file mode 100644 index 9ac7efe9d9d8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_nl.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=duurde {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_pl.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_pl.properties deleted file mode 100644 index 29c43c4c72ef..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_pl.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=Zaj\u0119\u0142o {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_pt_BR.properties deleted file mode 100644 index 6eb3a6054ecf..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_pt_BR.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc., Cleiber Silva -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -# Took {0}. -took=Levou {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_ro.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_ro.properties deleted file mode 100644 index efed04b343b7..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_ro.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=Durata {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_ru.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_ru.properties deleted file mode 100644 index ffdab41244b3..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_ru.properties +++ /dev/null @@ -1,23 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=\u0417\u0430\u043d\u044f\u043b\u043e {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_sl.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_sl.properties deleted file mode 100644 index 8e8ff118cedc..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_sl.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=Trajalo je {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_sv_SE.properties deleted file mode 100644 index ff19ef9dcec9..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_sv_SE.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=Tog {0}. diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_CN.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_CN.properties deleted file mode 100644 index c84c6904dda5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_CN.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -took=\u82B1\u4E86 diff --git a/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_TW.properties deleted file mode 100644 index d6958ba48030..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResult/index_zh_TW.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2013, Sun Microsystems, Inc., Chunghwa Telecom Co., Ltd., -# and Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -took=\u82b1\u8cbb {0}\u3002 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly deleted file mode 100644 index 3f6f158e1188..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox.jelly +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - -
- - - - - -
- ${%Test Result Trend} -
-
- [Test result trend chart] -
- -
-
-
\ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_bg.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_bg.properties deleted file mode 100644 index fcd0fc1bc56d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_bg.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=\u0422\u0435\u043D\u0434\u0435\u043D\u0446\u0438\u044F \u043D\u0430 \u0442\u0435\u0441\u0442\u043E\u0432\u0438\u0442\u0435 \u0440\u0435\u0437\u0443\u043B\u0442\u0430\u0442\u0438 -enlarge=\u0443\u0433\u043E\u043B\u0435\u043C\u0438 -just\ show\ failures=\u043F\u043E\u043A\u0430\u0436\u0438 \u0441\u0430\u043C\u043E \u043F\u0440\u043E\u043F\u0430\u0434\u0430\u0449\u0438 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ca.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ca.properties deleted file mode 100644 index d4c2bf096f08..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ca.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Tend\u00E8ncia resultats de test -enlarge=engrandir -just\ show\ failures=nom\u00E9s veure fallades diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_cs.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_cs.properties deleted file mode 100644 index 6bab5db34226..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_cs.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Trend v\u00FDsledk\u016F test\u016F -enlarge=zv\u011Bt\u0161it -just\ show\ failures=zobrazit pouze chyby diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_da.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_da.properties deleted file mode 100644 index 4f2971e01928..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_da.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -show\ test\ \#\ and\ failure\ \#=vis # test og antal fejlede -just\ show\ failures=vis kun fejlede -Test\ Result\ Trend=Testresultat-trend -enlarge=forst\u00F8r diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_de.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_de.properties deleted file mode 100644 index 8dc1249ceeca..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Trend der Testergebnisse -show\ test\ \#\ and\ failure\ \#=Anzahl der Tests und Fehlschlge anzeigen -just\ show\ failures=Nur Fehlschlge anzeigen -enlarge=Vergrern diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es.properties deleted file mode 100644 index cd7ba7734324..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Tendencia de los resultados de pruebas -show\ test\ \#\ and\ failure\ \#=Mostrar todos los tests -just\ show\ failures=solo mostrar fallos -enlarge=agrandar - diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es_AR.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es_AR.properties deleted file mode 100644 index 4cce3aaa9f3d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_es_AR.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -Test\ Result\ Trend=Tendencia de los resultados de los test -enlarge=Estirar -just\ show\ failures=Solo mostrar fallos diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_et.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_et.properties deleted file mode 100644 index 25913ea4e4da..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_et.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -Test\ Result\ Trend=Testimistulemuste trend -enlarge=suurenda -just\ show\ failures=n\u00E4ita ainult vigu -show\ test\ #\ and\ failure\ #=n\u00E4ita k\u00F5iki- ja eba\u00F5nnestunud teste diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fi.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fi.properties deleted file mode 100644 index d86922b6e67d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fi.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -Test\ Result\ Trend=Testitulosten trendi -enlarge=suurenna -just\ show\ failures=n\u00E4yt\u00E4 vain virheet diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fr.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fr.properties deleted file mode 100644 index e41a29186a9b..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_fr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -show\ test\ \#\ and\ failure\ \#=montrer tous les rsultats des tests -just\ show\ failures=montrer les checs seulement -enlarge=agrandir -Test\ Result\ Trend=R\u00E9sultats des tests diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_he.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_he.properties deleted file mode 100644 index a091f41ea81a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_he.properties +++ /dev/null @@ -1,6 +0,0 @@ -# This file is under the MIT License by authors - -Test\ Result\ Trend=\u05DE\u05D2\u05DE\u05EA \u05EA\u05D5\u05E6\u05D0\u05D5\u05EA \u05D4\u05D1\u05D3\u05D9\u05E7\u05D5\u05EA -enlarge=\u05D4\u05D2\u05D3\u05DC -just\ show\ failures=\u05D4\u05E8\u05D0\u05D4 \u05E8\u05E7 \u05DB\u05E9\u05DC\u05D5\u05E0\u05D5\u05EA -show\ test\ #\ and\ failure\ #=\u05D4\u05E8\u05D0\u05D4 \u05DE\u05E1\u05E4\u05E8 \u05D1\u05D3\u05D9\u05E7\u05D5\u05EA \u05D5\u05DB\u05E9\u05DC\u05D5\u05E0\u05D5\u05EA diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_hu.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_hu.properties deleted file mode 100644 index bd7d8d72f5de..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_hu.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Teszt eredm\u00E9nyek -enlarge=nagy\u00EDt -just\ show\ failures=csak a hib\u00E1k diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_it.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_it.properties deleted file mode 100644 index b5dc696e5343..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_it.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Andamento risultati dei test -enlarge=ingrandisci -just\ show\ failures=mostra solo fallimenti -show\ test\ #\ and\ failure\ #=mostra test # e fallimenti # diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties deleted file mode 100644 index ab062d7e12fa..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ja.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:cactusman -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=\u30C6\u30B9\u30C8\u7D50\u679C\u306E\u63A8\u79FB -show\ test\ \#\ and\ failure\ \#=\u30C6\u30B9\u30C8 # \u3068\u5931\u6557 #\u3092\u8868\u793A -just\ show\ failures=\u5931\u6557\u306E\u307F\u3092\u8868\u793A -enlarge=\u62E1\u5927 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ko.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ko.properties deleted file mode 100644 index b3b4c3cd6e4d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ko.properties +++ /dev/null @@ -1,5 +0,0 @@ -# This file is under the MIT License by authors - -Test\ Result\ Trend=\uD14C\uC2A4\uD2B8 \uACB0\uACFC \uD604\uD669 -enlarge=\uD06C\uAC8C\uBCF4\uAE30 -just\ show\ failures=\uC2E4\uD328\uD55C \uD14C\uC2A4\uD2B8\uB9CC \uBCF4\uAE30 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lt.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lt.properties deleted file mode 100644 index a60d59bc4410..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lt.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -enlarge=padidinti -just\ show\ failures=rodyti tik klaidas diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lv.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lv.properties deleted file mode 100644 index b7e157be2fd3..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_lv.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Testa rezult\u0101tu tendence -enlarge=palielin\u0101t -just\ show\ failures=r\u0101d\u012Bt tikai k\u013C\u016Bmes diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nb_NO.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nb_NO.properties deleted file mode 100644 index c91cd92f7b4e..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nb_NO.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Test resultatstrenden -enlarge=forst\u00F8rr -just\ show\ failures=bare vis feil -show\ test\ #\ and\ failure\ #=vis test # og feil # diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nl.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nl.properties deleted file mode 100644 index 63b00b091ad0..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_nl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Testresultaten Trend -show\ test\ \#\ and\ failure\ \#=toon # testen en # fouten -just\ show\ failures=toon enkel fouten -enlarge=vergroot diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pl.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pl.properties deleted file mode 100644 index 6e83fbdb75e5..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Zmiany wynik\u00F3w test\u00F3w -enlarge=Powi\u0119ksz -just\ show\ failures=Poka\u017C jedynie b\u0142\u0119dy -show\ test\ #\ and\ failure\ #=poka\u017C ilo\u015B\u0107 test\u00F3w i pora\u017Cek diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pt_BR.properties deleted file mode 100644 index eb1d093b05b2..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva, Fernando Boaglio -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Tend\u00EAncia de resultados de teste -show\ test\ \#\ and\ failure\ \#=Mostrar o n\u00famero de testes e de falhas -just\ show\ failures=mostrar apenas as falhas -enlarge=Ampliar diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ro.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ro.properties deleted file mode 100644 index 29852b2c3f93..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ro.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Evolutia rezultatelor -enlarge=mareste -just\ show\ failures=arata esecurile diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties deleted file mode 100644 index 78e365d9d6ad..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_ru.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=\u0413\u0440\u0430\u0444\u0438\u043A \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432 \u0442\u0435\u0441\u0442\u043E\u0432 -show\ test\ \#\ and\ failure\ \#=\u041f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u0435\u0441\u0442\u043e\u0432 \u0438 \u043e\u0448\u0438\u0431\u043e\u043a -just\ show\ failures=\u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u0442\u043E\u043B\u044C\u043A\u043E \u043D\u0435\u0443\u0434\u0430\u0447\u0438 -enlarge=\u0443\u0432\u0435\u043B\u0438\u0447\u0438\u0442\u044C diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sl.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sl.properties deleted file mode 100644 index 57cc7e4d7585..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sl.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -enlarge=Pove\u010Dava -just\ show\ failures=Samo poka\u017Ei napake diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sv_SE.properties deleted file mode 100644 index ebb22ab25fea..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_sv_SE.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Testresultat Trend -enlarge=f\u00F6rstora -just\ show\ failures=visa endast misslyckade -show\ test\ #\ and\ failure\ #=visa test # och fallerande # diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_tr.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_tr.properties deleted file mode 100644 index 36e3c5747131..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_tr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=Test Sonu\u00e7lar\u0131 E\u011filimi -show\ test\ \#\ and\ failure\ \#=Test ve ba\u015faras\u0131zl\u0131k say\u0131s\u0131n\u0131 g\u00f6ster -just\ show\ failures=sadece ba\u015far\u0131s\u0131z olanlar\u0131 g\u00f6ster -enlarge=b\u00fcy\u00fct diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_uk.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_uk.properties deleted file mode 100644 index 101c3ccb2001..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_uk.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=\u0422\u0440\u0435\u043D\u0434 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0456\u0432 \u0442\u0435\u0441\u0442\u0456\u0432 -enlarge=\u0437\u0431\u0456\u043B\u044C\u0448\u0438\u0442\u0438 -just\ show\ failures=\u043F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438 \u0442\u0456\u043B\u044C\u043A\u0438 \u043D\u0435\u0432\u0434\u0430\u0447\u0456 -show\ test\ #\ and\ failure\ #=\u041F\u043E\u043A\u0430\u0437\u0430\u0442\u0438 \u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C \u0442\u0435\u0441\u0442\u0456\u0432 \u0442\u0430 \u043D\u0435\u0432\u0434\u0430\u0447 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_CN.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_CN.properties deleted file mode 100644 index 3e5a8070755e..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_CN.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=\u6D4B\u8BD5\u7ED3\u679C\u8D8B\u52BF -enlarge=\u653E\u5927 -just\ show\ failures=\u53EA\u663E\u793A\u5931\u8D25 -show\ test\ #\ and\ failure\ #=\u663E\u793A\u6D4B\u8BD5\u548C\u5931\u8D25\u6570\u76EE diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_TW.properties deleted file mode 100644 index 2bbc47d0fe40..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/floatingBox_zh_TW.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2013, Sun Microsystems, Inc., Chunghwa Telecom Co., Ltd., -# and Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -Test\ Result\ Trend=\u6e2c\u8a66\u7d50\u679c\u8da8\u52e2 -show\ test\ \#\ and\ failure\ \#=\u540c\u6642\u986f\u793a\u6e2c\u8a66\u53ca\u5931\u6557\u6848\u4f8b\u6578 -just\ show\ failures=\u53ea\u986f\u793a\u5931\u6557\u7684 -enlarge=\u653e\u5927 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/index.jelly b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/index.jelly deleted file mode 100644 index e63803a6facf..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/index.jelly +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - -
- [Test result trend chart] -
-
-
-
\ No newline at end of file diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain.jelly b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain.jelly deleted file mode 100644 index 1fc26a0a029d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain.jelly +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - ${%Latest Test Result} - - - - -
-
diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ar.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ar.properties deleted file mode 100644 index dd62933f4847..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ar.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\u0627\u062E\u0631 \u0646\u062A\u064A\u062C\u0629 \u0627\u062E\u062A\u0628\u0627\u0631 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ca.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ca.properties deleted file mode 100644 index 002ba63eec16..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ca.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Darrer resultat dels tests diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_cs.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_cs.properties deleted file mode 100644 index 95aed26083f7..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_cs.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=V\u00FDsledky posledn\u00EDho testu diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_da.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_da.properties deleted file mode 100644 index dc30e2958fe7..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_da.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Seneste testresultat diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_de.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_de.properties deleted file mode 100644 index 31ccbc1aab1c..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_de.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Letztes Testergebnis diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_es.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_es.properties deleted file mode 100644 index eacbcb5cfad8..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_es.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=ltimos resultados de tests diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_et.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_et.properties deleted file mode 100644 index f2226b49a356..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_et.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Viimaste testide tulemused diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fi.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fi.properties deleted file mode 100644 index e18db21fdb79..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fi.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Viimeisin testitulos diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fr.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fr.properties deleted file mode 100644 index b10e674c341a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_fr.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Derniers rsultats des tests diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_hu.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_hu.properties deleted file mode 100644 index 17837945b586..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_hu.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=A legut\u00F3bbi teszteredm\u00E9nyek diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_it.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_it.properties deleted file mode 100644 index 3d942ee18554..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_it.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Ultimo Risultato dei Test diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ja.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ja.properties deleted file mode 100644 index 45df7b46bd09..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ja.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\u6700\u65b0\u306e\u30c6\u30b9\u30c8\u7d50\u679c diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ko.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ko.properties deleted file mode 100644 index e586835e9de4..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ko.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\uAC00\uC7A5 \uCD5C\uADFC \uD14C\uC2A4\uD2B8 \uACB0\uACFC diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_lv.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_lv.properties deleted file mode 100644 index 8f729222518a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_lv.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=P\u0113d\u0113jie testa rezult\u0101ti diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nb_NO.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nb_NO.properties deleted file mode 100644 index 2bc059483c33..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nb_NO.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Siste testresultater diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nl.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nl.properties deleted file mode 100644 index 73bd6c2c9f33..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_nl.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Laatste testresultaten diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pl.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pl.properties deleted file mode 100644 index c0b3e87b400e..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pl.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Ostatni wynik test\u00F3w diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pt_BR.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pt_BR.properties deleted file mode 100644 index cb42f197a136..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_pt_BR.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\u00daltimo resultado de teste diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ro.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ro.properties deleted file mode 100644 index 170b6904f86f..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ro.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Ultimele rezultate diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ru.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ru.properties deleted file mode 100644 index 2d3888eef54b..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_ru.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_sv_SE.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_sv_SE.properties deleted file mode 100644 index 0b2b9cd3115d..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_sv_SE.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=Senaste testresultat diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_tr.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_tr.properties deleted file mode 100644 index 15af5b6287aa..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_tr.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=En Son Test Sonu\u00e7lar\u0131 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_uk.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_uk.properties deleted file mode 100644 index 40a30e75ad6a..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_uk.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0438 \u043E\u0441\u0442\u0430\u043D\u043D\u0456\u0445 \u0442\u0435\u0441\u0442\u0456\u0432 diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_CN.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_CN.properties deleted file mode 100644 index ed6efba27d4f..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_CN.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\u6700\u65B0\u6D4B\u8BD5\u7ED3\u679C diff --git a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_TW.properties b/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_TW.properties deleted file mode 100644 index 4e7cc3991294..000000000000 --- a/core/src/main/resources/hudson/tasks/test/TestResultProjectAction/jobMain_zh_TW.properties +++ /dev/null @@ -1 +0,0 @@ -Latest\ Test\ Result=\u6700\u65b0\u6e2c\u8a66\u7d50\u679c diff --git a/core/src/main/resources/lib/hudson/aggregated-failed-tests.jelly b/core/src/main/resources/lib/hudson/aggregated-failed-tests.jelly index 7e363c3d353f..3510e1def73c 100644 --- a/core/src/main/resources/lib/hudson/aggregated-failed-tests.jelly +++ b/core/src/main/resources/lib/hudson/aggregated-failed-tests.jelly @@ -25,40 +25,7 @@ THE SOFTWARE. - Display links to failed test from all child reports. - @since 1.538 - - Aggregated action. - + DEPRECATED - - -
-

Failed Tests

- - - - -

- - ${report.child.project.name} -

- - - - - - - - - - - - - - -
Test NameDurationAge
${f.duration}${f.age}
-
-
-
+
diff --git a/core/src/main/resources/lib/hudson/test-result.jelly b/core/src/main/resources/lib/hudson/test-result.jelly index 890f4c278986..007c26bb9098 100644 --- a/core/src/main/resources/lib/hudson/test-result.jelly +++ b/core/src/main/resources/lib/hudson/test-result.jelly @@ -25,23 +25,7 @@ THE SOFTWARE. - Evaluates to a sstring that reports the test result number in text, like "(5 failures / +3)". - - Either the "it" has to be available in the context or specified as an attribute. - + DEPRECATED - - - (${%no tests}) - - - (${%no failures}) - - - (${%1failure(it.failureDiffString)}) - - - (${%multifailures(it.failCount,it.failureDiffString)}) - - - \ No newline at end of file + + diff --git a/core/src/main/resources/lib/hudson/test-result.properties b/core/src/main/resources/lib/hudson/test-result.properties deleted file mode 100644 index ea4d07817641..000000000000 --- a/core/src/main/resources/lib/hudson/test-result.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -1failure=1 failure {0} -multifailures={0} failures {1} \ No newline at end of file diff --git a/core/src/main/resources/lib/hudson/test-result_ar.properties b/core/src/main/resources/lib/hudson/test-result_ar.properties deleted file mode 100644 index 758a15a8c291..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_ar.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -no\ failures=\u0644\u0627 \u064A\u0648\u062C\u062F \u0641\u0634\u0644 diff --git a/core/src/main/resources/lib/hudson/test-result_bg.properties b/core/src/main/resources/lib/hudson/test-result_bg.properties deleted file mode 100644 index 16fc3dbe91dd..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_bg.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -multifailures="{0} \u043D\u0435\u0443\u0441\u043F\u0435\u0448\u043D\u0438 {1}" diff --git a/core/src/main/resources/lib/hudson/test-result_ca.properties b/core/src/main/resources/lib/hudson/test-result_ca.properties deleted file mode 100644 index c3ce3c5b08e9..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_ca.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -no\ failures=Sense errors diff --git a/core/src/main/resources/lib/hudson/test-result_cs.properties b/core/src/main/resources/lib/hudson/test-result_cs.properties deleted file mode 100644 index af3a796d8cd2..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_cs.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -multifailures="{0} ne\u00FAsp\u011B\u0161n\u00FDch {1}" -no\ failures=\u017E\u00E1dn\u00E9 chyby -no\ tests=\u017E\u00E1dn\u00E9 testy diff --git a/core/src/main/resources/lib/hudson/test-result_da.properties b/core/src/main/resources/lib/hudson/test-result_da.properties deleted file mode 100644 index 466fc050c00f..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_da.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. Kohsuke Kawaguchi. Knud Poulsen. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ failures=ingen fejlede -1failure=1 fejlet {0} -multifailures={0} fejlede {1} -no\ tests=ingen test diff --git a/core/src/main/resources/lib/hudson/test-result_de.properties b/core/src/main/resources/lib/hudson/test-result_de.properties deleted file mode 100644 index ca22cdee7beb..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_de.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Simon Wiest -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ tests=Keine Tests -no\ failures=Kein Test fehlgeschlagen. -1failure=1 fehlgeschlagener Test {0} -multifailures={0} fehlgeschlagene Tests {1} diff --git a/core/src/main/resources/lib/hudson/test-result_es.properties b/core/src/main/resources/lib/hudson/test-result_es.properties deleted file mode 100644 index 73224aea5ae9..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_es.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -1failure=1 fallo {0} -multifailures={0} fallos {1} -no\ failures=Sin fallas -no\ tests=Sin pruebas diff --git a/core/src/main/resources/lib/hudson/test-result_es_AR.properties b/core/src/main/resources/lib/hudson/test-result_es_AR.properties deleted file mode 100644 index 2970e02d1929..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_es_AR.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -no\ failures=Sin fallos diff --git a/core/src/main/resources/lib/hudson/test-result_et.properties b/core/src/main/resources/lib/hudson/test-result_et.properties deleted file mode 100644 index 797b62f7632a..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_et.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -no\ failures=vigu pole diff --git a/core/src/main/resources/lib/hudson/test-result_fi.properties b/core/src/main/resources/lib/hudson/test-result_fi.properties deleted file mode 100644 index 14ac93b17956..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_fi.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -1failure=1 ep\u00E4onnistunut {0} -no\ failures=ei virheit\u00E4 -no\ tests=ei testej\u00E4 diff --git a/core/src/main/resources/lib/hudson/test-result_fr.properties b/core/src/main/resources/lib/hudson/test-result_fr.properties deleted file mode 100644 index f449293ef940..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_fr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Eric Lefevre-Ardant -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ tests=pas de test -no\ failures=aucune erreur -1failure=1 chec {0} -multifailures={0} checs {1} diff --git a/core/src/main/resources/lib/hudson/test-result_he.properties b/core/src/main/resources/lib/hudson/test-result_he.properties deleted file mode 100644 index 7c13d8fe4021..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_he.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -multifailures="{0} \u05DB\u05E9\u05DC\u05D5\u05E0\u05D5\u05EA {1}" -no\ failures=\u05D0\u05D9\u05DF \u05DB\u05E9\u05DC\u05D5\u05E0\u05D5\u05EA diff --git a/core/src/main/resources/lib/hudson/test-result_hi_IN.properties b/core/src/main/resources/lib/hudson/test-result_hi_IN.properties deleted file mode 100644 index 170c8d427387..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_hi_IN.properties +++ /dev/null @@ -1,3 +0,0 @@ -# This file is under the MIT License by authors - -multifailures="{0} \u0935\u093F\u092B\u0932\u0924\u093E\u090F {1}" diff --git a/core/src/main/resources/lib/hudson/test-result_hu.properties b/core/src/main/resources/lib/hudson/test-result_hu.properties deleted file mode 100644 index b326fa351686..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_hu.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -multifailures={0} hiba {1} -no\ failures=hibamentes diff --git a/core/src/main/resources/lib/hudson/test-result_it.properties b/core/src/main/resources/lib/hudson/test-result_it.properties deleted file mode 100644 index 18a231612dc3..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_it.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -multifailures="{0} fallimenti {1}" -no\ failures=nessun errore diff --git a/core/src/main/resources/lib/hudson/test-result_ja.properties b/core/src/main/resources/lib/hudson/test-result_ja.properties deleted file mode 100644 index a8bee2c14634..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_ja.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ tests=\u30c6\u30b9\u30c8\u306a\u3057 -no\ failures=\u5168\u3066\u6210\u529f -1failure=1\u500b\u306e\u5931\u6557 {0} -multifailures={0}\u500b\u306e\u5931\u6557 {1} diff --git a/core/src/main/resources/lib/hudson/test-result_ko.properties b/core/src/main/resources/lib/hudson/test-result_ko.properties deleted file mode 100644 index 4bc8e3a95982..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_ko.properties +++ /dev/null @@ -1,4 +0,0 @@ -# This file is under the MIT License by authors - -multifailures="{0} \uC2E4\uD328 {1}" -no\ failures=\uC2E4\uD328\uAC00 \uC5C6\uC2B5\uB2C8\uB2E4 diff --git a/core/src/main/resources/lib/hudson/test-result_lv.properties b/core/src/main/resources/lib/hudson/test-result_lv.properties deleted file mode 100644 index 2080abcfbda3..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_lv.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -multifailures="{0} izg\u0101z\u0161an\u0101s {1}" -no\ failures=nav k\u013C\u016Bmju -no\ tests=testu nav diff --git a/core/src/main/resources/lib/hudson/test-result_nb_NO.properties b/core/src/main/resources/lib/hudson/test-result_nb_NO.properties deleted file mode 100644 index acb2065c6ab0..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_nb_NO.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -multifailures="{0} feil {1}" -no\ failures=ingen feil diff --git a/core/src/main/resources/lib/hudson/test-result_nl.properties b/core/src/main/resources/lib/hudson/test-result_nl.properties deleted file mode 100644 index 0a2d14455663..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_nl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, id:sorokh -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ tests=Geen testen beschikbaar -no\ failures=geen gefaalde testen -1failure=Er faalde 1 test: {0} -multifailures= {0} gefaalde testen {1} diff --git a/core/src/main/resources/lib/hudson/test-result_pl.properties b/core/src/main/resources/lib/hudson/test-result_pl.properties deleted file mode 100644 index efd0a0dc81e1..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_pl.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -1failure=1 pora\u017Cka {0} -multifailures="{0} b\u0142\u0119d\u00F3w {1}" -no\ failures=Bez b\u0142\u0119d\u00F3w -no\ tests=Brak test\u00F3w diff --git a/core/src/main/resources/lib/hudson/test-result_pt_BR.properties b/core/src/main/resources/lib/hudson/test-result_pt_BR.properties deleted file mode 100644 index 781bd38bcb46..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_pt_BR.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Reginaldo L. Russinholi, Cleiber Silva -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ tests=nenhum teste -no\ failures=nenhuma falha -1failure=1 falha {0} -multifailures={0} falhas {1} diff --git a/core/src/main/resources/lib/hudson/test-result_ro.properties b/core/src/main/resources/lib/hudson/test-result_ro.properties deleted file mode 100644 index b5b43f7f79eb..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_ro.properties +++ /dev/null @@ -1,24 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -multifailures="{0} esecuri {1}" -no\ tests=nici un test diff --git a/core/src/main/resources/lib/hudson/test-result_ru.properties b/core/src/main/resources/lib/hudson/test-result_ru.properties deleted file mode 100644 index 5c8f42032777..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_ru.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Mike Salnikov -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ tests=\u041d\u0435\u0442 \u0442\u0435\u0441\u0442\u043e\u0432 -no\ failures=\u041D\u0435\u0442 \u043E\u0448\u0438\u0431\u043E\u043A. -1failure=1 \u043e\u0448\u0438\u0431\u043a\u0430 {0} -multifailures={0} \u043e\u0448\u0438\u0431\u043e\u043a {1} diff --git a/core/src/main/resources/lib/hudson/test-result_sk.properties b/core/src/main/resources/lib/hudson/test-result_sk.properties deleted file mode 100644 index e9af453afb3b..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_sk.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -1failure=1 ne\u00FAspe\u0161n\u00FD {0} -multifailures=zlyhania {0} {1} -no\ failures=Bez zlyhania diff --git a/core/src/main/resources/lib/hudson/test-result_sv_SE.properties b/core/src/main/resources/lib/hudson/test-result_sv_SE.properties deleted file mode 100644 index 8a6a79f2d7d2..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_sv_SE.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -1failure=1 fel {0} -multifailures="{0} fel {1}" -no\ failures=inga fallerande tester -no\ tests=inga tester diff --git a/core/src/main/resources/lib/hudson/test-result_tr.properties b/core/src/main/resources/lib/hudson/test-result_tr.properties deleted file mode 100644 index d3f09b06f75d..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_tr.properties +++ /dev/null @@ -1,26 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Oguz Dag -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -1failure=1 ba\u015far\u0131s\u0131z {0} -multifailures={0} ba\u015far\u0131s\u0131z {1} -no\ tests=test\ yok -no\ failures=ba\u015far\u0131s\u0131z durum yok diff --git a/core/src/main/resources/lib/hudson/test-result_uk.properties b/core/src/main/resources/lib/hudson/test-result_uk.properties deleted file mode 100644 index aa8f9f60b82b..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_uk.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -multifailures="{0} \u043D\u0435\u0432\u0434\u0430\u0447 {1}" -no\ failures=\u0431\u0435\u0437 \u043F\u043E\u043C\u0438\u043B\u043E\u043A -no\ tests=\u043D\u0435\u043C\u0430\u0454 diff --git a/core/src/main/resources/lib/hudson/test-result_zh_CN.properties b/core/src/main/resources/lib/hudson/test-result_zh_CN.properties deleted file mode 100644 index 9bad90527480..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_zh_CN.properties +++ /dev/null @@ -1,25 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2010, Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -multifailures=\u5931\u8D25 -no\ failures=\u6CA1\u6709\u5931\u8D25 -no\ tests=\u6CA1\u6709\u6D4B\u8BD5\u7528\u4F8B diff --git a/core/src/main/resources/lib/hudson/test-result_zh_TW.properties b/core/src/main/resources/lib/hudson/test-result_zh_TW.properties deleted file mode 100644 index 73f0c8793504..000000000000 --- a/core/src/main/resources/lib/hudson/test-result_zh_TW.properties +++ /dev/null @@ -1,27 +0,0 @@ -# The MIT License -# -# Copyright (c) 2004-2013, Sun Microsystems, Inc., Chunghwa Telecom Co., Ltd., -# and Pei-Tang Huang -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -no\ tests=\u6c92\u6709\u6e2c\u8a66\u6848\u4f8b -no\ failures=\u7121\u5931\u6557 -1failure=1 \u9805\u5931\u6557 {0} -multifailures={0} \u9805\u5931\u6557 {1} diff --git a/test/src/test/java/hudson/model/BuildStatusSummaryTest.java b/core/src/test/java/hudson/model/BuildStatusSummaryTest.java similarity index 62% rename from test/src/test/java/hudson/model/BuildStatusSummaryTest.java rename to core/src/test/java/hudson/model/BuildStatusSummaryTest.java index 1da090d54d7e..6cb1ee5da85d 100644 --- a/test/src/test/java/hudson/model/BuildStatusSummaryTest.java +++ b/core/src/test/java/hudson/model/BuildStatusSummaryTest.java @@ -6,12 +6,9 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import hudson.model.Run.Summary; -import hudson.tasks.test.AbstractTestResultAction; import org.junit.Before; -import org.junit.Rule; import org.junit.Test; -import org.jvnet.hudson.test.JenkinsRule; /** * Tests {@link Run#getBuildStatusSummary()}. @@ -21,8 +18,6 @@ @SuppressWarnings("rawtypes") public class BuildStatusSummaryTest { - @Rule public JenkinsRule r = new JenkinsRule(); // TODO only necessary to load AbstractTestResultAction.Summarizer - private Run build; private Run prevBuild; @@ -160,99 +155,6 @@ public void testUnstableAfterFailure() { assertEquals(Messages.Run_Summary_Unstable(), summary.message); } - @Test - public void testBuildGotAFailingTest() { - // previous build has no tests at all - mockBuilds(AbstractBuild.class); - - when(this.build.getResult()).thenReturn(Result.UNSTABLE); - when(this.prevBuild.getResult()).thenReturn(Result.SUCCESS); - - buildHasTestResult((AbstractBuild) this.build, 1); - - Summary summary = this.build.getBuildStatusSummary(); - - assertTrue(summary.isWorse); - assertEquals(hudson.tasks.test.Messages.Run_Summary_TestFailures(1), summary.message); - - - // same thing should happen if previous build has tests, but no failing ones: - buildHasTestResult((AbstractBuild) this.prevBuild, 0); - summary = this.build.getBuildStatusSummary(); - assertTrue(summary.isWorse); - assertEquals(hudson.tasks.test.Messages.Run_Summary_TestsStartedToFail(1), summary.message); - } - - @Test - public void testBuildGotNoTests() { - // previous build has no tests at all - mockBuilds(AbstractBuild.class); - - when(this.build.getResult()).thenReturn(Result.UNSTABLE); - when(this.prevBuild.getResult()).thenReturn(Result.UNSTABLE); - // Null test result action recorded - when(((AbstractBuild) this.build).getAction(AbstractTestResultAction.class)).thenReturn(null); - - Summary summary = this.build.getBuildStatusSummary(); - - assertFalse(summary.isWorse); - assertEquals(Messages.Run_Summary_Unstable(), summary.message); - - // same thing should happen if previous build has tests, but no failing ones: - buildHasTestResult((AbstractBuild) this.prevBuild, 0); - summary = this.build.getBuildStatusSummary(); - assertFalse(summary.isWorse); - assertEquals(Messages.Run_Summary_Unstable(), summary.message); - } - - @Test - public void testBuildEqualAmountOfTestsFailing() { - mockBuilds(AbstractBuild.class); - - when(this.build.getResult()).thenReturn(Result.UNSTABLE); - when(this.prevBuild.getResult()).thenReturn(Result.UNSTABLE); - - buildHasTestResult((AbstractBuild) this.prevBuild, 1); - buildHasTestResult((AbstractBuild) this.build, 1); - - Summary summary = this.build.getBuildStatusSummary(); - - assertFalse(summary.isWorse); - assertEquals(hudson.tasks.test.Messages.Run_Summary_TestsStillFailing(1), summary.message); - } - - @Test - public void testBuildGotMoreFailingTests() { - mockBuilds(AbstractBuild.class); - - when(this.build.getResult()).thenReturn(Result.UNSTABLE); - when(this.prevBuild.getResult()).thenReturn(Result.UNSTABLE); - - buildHasTestResult((AbstractBuild) this.prevBuild, 1); - buildHasTestResult((AbstractBuild) this.build, 2); - - Summary summary = this.build.getBuildStatusSummary(); - - assertTrue(summary.isWorse); - assertEquals(hudson.tasks.test.Messages.Run_Summary_MoreTestsFailing(1, 2), summary.message); - } - - @Test - public void testBuildGotLessFailingTests() { - mockBuilds(AbstractBuild.class); - - when(this.build.getResult()).thenReturn(Result.UNSTABLE); - when(this.prevBuild.getResult()).thenReturn(Result.UNSTABLE); - - buildHasTestResult((AbstractBuild) this.prevBuild, 2); - buildHasTestResult((AbstractBuild) this.build, 1); - - Summary summary = this.build.getBuildStatusSummary(); - - assertFalse(summary.isWorse); - assertEquals(hudson.tasks.test.Messages.Run_Summary_LessTestsFailing(1, 1), summary.message); - } - @Test public void testNonTestRelatedUnstable() { when(this.build.getResult()).thenReturn(Result.UNSTABLE); @@ -293,10 +195,4 @@ public void testNotBuilt() { assertEquals(Messages.Run_Summary_NotBuilt(), summary.message); } - private void buildHasTestResult(AbstractBuild build, int failedTests) { - AbstractTestResultAction testResult = mock(AbstractTestResultAction.class); - when(testResult.getFailCount()).thenReturn(failedTests); - - when(build.getAction(AbstractTestResultAction.class)).thenReturn(testResult); - } } diff --git a/core/src/test/java/hudson/tasks/junit/CaseResultTest.java b/core/src/test/java/hudson/tasks/junit/CaseResultTest.java deleted file mode 100644 index 786a790da6c7..000000000000 --- a/core/src/test/java/hudson/tasks/junit/CaseResultTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * The MIT License - * - * Copyright 2010 Jesse Glick. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package hudson.tasks.junit; - -import java.util.Locale; -import java.util.concurrent.atomic.AtomicReference; -import junit.framework.TestCase; -import org.jvnet.localizer.LocaleProvider; - -public class CaseResultTest extends TestCase { - - public CaseResultTest(String name) { - super(name); - } - - // @Bug(6824) - public void testLocalizationOfStatus() throws Exception { - LocaleProvider old = LocaleProvider.getProvider(); - try { - final AtomicReference locale = new AtomicReference(); - LocaleProvider.setProvider(new LocaleProvider() { - public @Override Locale get() { - return locale.get(); - } - }); - locale.set(Locale.GERMANY); - assertEquals("Erfolg", CaseResult.Status.PASSED.getMessage()); - locale.set(Locale.US); - assertEquals("Passed", CaseResult.Status.PASSED.getMessage()); - } finally { - LocaleProvider.setProvider(old); - } - } - -} diff --git a/core/src/test/java/hudson/tasks/junit/ClassResultTest.java b/core/src/test/java/hudson/tasks/junit/ClassResultTest.java deleted file mode 100644 index 96e5b1dbf12d..000000000000 --- a/core/src/test/java/hudson/tasks/junit/ClassResultTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package hudson.tasks.junit; - -import hudson.tasks.test.TestResult; -import junit.framework.TestCase; - -public class ClassResultTest extends TestCase { - - public void testFindCorrespondingResult() { - ClassResult classResult = new ClassResult(null, "com.example.ExampleTest"); - - CaseResult caseResult = new CaseResult(null, "testCase", null); - - classResult.add(caseResult); - - TestResult result = classResult.findCorrespondingResult("extraprefix.com.example.ExampleTest.testCase"); - assertEquals(caseResult, result); - } - - public void testFindCorrespondingResultWhereClassResultNameIsNotSubstring() { - ClassResult classResult = new ClassResult(null, "aaaa"); - - CaseResult caseResult = new CaseResult(null, "tc_bbbb", null); - - classResult.add(caseResult); - - TestResult result = classResult.findCorrespondingResult("tc_bbbb"); - assertEquals(caseResult, result); - } - - public void testFindCorrespondingResultWhereClassResultNameIsLastInCaseResultName() { - ClassResult classResult = new ClassResult(null, "aaaa"); - - CaseResult caseResult = new CaseResult(null, "tc_aaaa", null); - - classResult.add(caseResult); - - TestResult result = classResult.findCorrespondingResult("tc_aaaa"); - assertEquals(caseResult, result); - } - -} diff --git a/core/src/test/java/hudson/tasks/junit/SuiteResultTest.java b/core/src/test/java/hudson/tasks/junit/SuiteResultTest.java deleted file mode 100644 index 5e9d48645958..000000000000 --- a/core/src/test/java/hudson/tasks/junit/SuiteResultTest.java +++ /dev/null @@ -1,247 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Erik Ramfelt, Xavier Le Vourch, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import edu.umd.cs.findbugs.annotations.SuppressWarnings; -import java.io.File; -import java.util.List; -import java.net.URISyntaxException; - -import hudson.XmlFile; - -import org.jvnet.hudson.test.Bug; - -import java.io.FileWriter; -import java.io.PrintWriter; -import java.io.Writer; - -import junit.framework.TestCase; - -/** - * Test cases for parsing JUnit report XML files. - * As there are no XML schema for JUnit xml files, Hudson needs to handle - * varied xml files. - * - * @author Erik Ramfelt - * @author Christoph Kutzinski - */ -public class SuiteResultTest extends TestCase { - - private File getDataFile(String name) throws URISyntaxException { - return new File(SuiteResultTest.class.getResource(name).toURI()); - } - - private SuiteResult parseOne(File file) throws Exception { - List results = SuiteResult.parse(file, false); - assertEquals(1,results.size()); - return results.get(0); - } - - private List parseSuites(File file) throws Exception { - return SuiteResult.parse(file, false); - } - - @Bug(1233) - public void testIssue1233() throws Exception { - SuiteResult result = parseOne(getDataFile("junit-report-1233.xml")); - - List cases = result.getCases(); - assertEquals("Class name is incorrect", "test.foo.bar.DefaultIntegrationTest", cases.get(0).getClassName()); - assertEquals("Class name is incorrect", "test.foo.bar.BundleResolverIntegrationTest", cases.get(1).getClassName()); - assertEquals("Class name is incorrect", "test.foo.bar.BundleResolverIntegrationTest", cases.get(2).getClassName()); - assertEquals("Class name is incorrect", "test.foo.bar.ProjectSettingsTest", cases.get(3).getClassName()); - assertEquals("Class name is incorrect", "test.foo.bar.ProjectSettingsTest", cases.get(4).getClassName()); - } - /** - * JUnit report file is generated by SoapUI Pro 1.7.6 - */ - @Bug(1463) - public void testIssue1463() throws Exception { - SuiteResult result = parseOne(getDataFile("junit-report-1463.xml")); - - List cases = result.getCases(); - for (CaseResult caseResult : cases) { - assertEquals("Test class name is incorrect in " + caseResult.getName(), "WLI-FI-Tests-Fake", caseResult.getClassName()); - } - assertEquals("Test name is incorrect", "IF_importTradeConfirmationToDwh", cases.get(0).getName()); - assertEquals("Test name is incorrect", "IF_getAmartaDisbursements", cases.get(1).getName()); - assertEquals("Test name is incorrect", "IF_importGLReconDataToDwh", cases.get(2).getName()); - assertEquals("Test name is incorrect", "IF_importTradeInstructionsToDwh", cases.get(3).getName()); - assertEquals("Test name is incorrect", "IF_getDeviationTradeInstructions", cases.get(4).getName()); - assertEquals("Test name is incorrect", "IF_getDwhGLData", cases.get(5).getName()); - } - - /** - * JUnit report produced by TAP (Test Anything Protocol) - */ - @Bug(1472) - public void testIssue1472() throws Exception { - List results = SuiteResult.parse(getDataFile("junit-report-1472.xml"), false); - assertTrue(results.size()>20); // lots of data here - - SuiteResult sr0 = results.get(0); - SuiteResult sr1 = results.get(1); - assertEquals("make_test.t_basic_lint_t",sr0.getName()); - assertEquals("make_test.t_basic_meta_t",sr1.getName()); - assertTrue(!sr0.getStdout().equals(sr1.getStdout())); - } - - @Bug(2874) - public void testIssue2874() throws Exception { - SuiteResult result = parseOne(getDataFile("junit-report-2874.xml")); - - assertEquals("test suite name", "DummyTest", result.getName()); - } - - public void testErrorDetails() throws Exception { - SuiteResult result = parseOne(getDataFile("junit-report-errror-details.xml")); - - List cases = result.getCases(); - for (CaseResult caseResult : cases) { - assertEquals("Test class name is incorrect in " + caseResult.getName(), "some.package.somewhere.WhooHoo", caseResult.getClassName()); - } - assertEquals("this normally has the string like, expected mullet, but got bream", cases.get(0).getErrorDetails()); - } - - public void testSuiteResultPersistence() throws Exception { - SuiteResult source = parseOne(getDataFile("junit-report-1233.xml")); - - File dest = File.createTempFile("testSuiteResultPersistence", ".xml"); - try { - XmlFile xmlFile = new XmlFile(dest); - xmlFile.write(source); - - SuiteResult result = (SuiteResult)xmlFile.read(); - assertNotNull(result); - - assertEquals(source.getName(), result.getName()); - assertEquals(source.getTimestamp(), result.getTimestamp()); - assertEquals(source.getDuration(), result.getDuration()); - assertEquals(source.getStderr(), result.getStderr()); - assertEquals(source.getStdout(), result.getStdout()); - assertEquals(source.getCases().size(), result.getCases().size()); - assertNotNull(result.getCase("testGetBundle")); - } finally { - dest.delete(); -} - } - - //@Bug(6516) - public void testSuiteStdioTrimming() throws Exception { - File data = File.createTempFile("testSuiteStdioTrimming", ".xml"); - try { - Writer w = new FileWriter(data); - try { - PrintWriter pw = new PrintWriter(w); - pw.println(""); - pw.println(""); - pw.println(""); - pw.println(""); - pw.print(""); - pw.println(""); - pw.println(""); - pw.flush(); - } finally { - w.close(); - } - SuiteResult sr = parseOne(data); - assertEquals(sr.getStderr(), 1030, sr.getStderr().length()); - } finally { - data.delete(); - } - } - - @SuppressWarnings({"RV_RETURN_VALUE_IGNORED_BAD_PRACTICE", "DM_DEFAULT_ENCODING", "OS_OPEN_STREAM"}) - public void testSuiteStdioTrimmingSurefire() throws Exception { - File data = File.createTempFile("TEST-", ".xml"); - try { - Writer w = new FileWriter(data); - try { - PrintWriter pw = new PrintWriter(w); - pw.println(""); - pw.println(""); - pw.println(""); - pw.println(""); - pw.println(""); - pw.flush(); - } finally { - w.close(); - } - File data2 = new File(data.getParentFile(), data.getName().replaceFirst("^TEST-(.+)[.]xml$", "$1-output.txt")); - try { - w = new FileWriter(data2); - try { - PrintWriter pw = new PrintWriter(w); - pw.println("First line is intact."); - for (int i = 0; i < 100; i++) { - pw.println("Line #" + i + " might be elided."); - } - pw.println("Last line is intact."); - pw.flush(); - } finally { - w.close(); - } - SuiteResult sr = parseOne(data); - assertEquals(sr.getStdout(), 1030, sr.getStdout().length()); - } finally { - data2.delete(); - } - } finally { - data.delete(); - } - } - - /** - * When the testcase fails to initialize (exception in constructor or @Before) - * there is no 'testcase' element at all. - */ - @Bug(6700) - public void testErrorInTestInitialization() throws Exception { - SuiteResult suiteResult = parseOne(getDataFile("junit-report-6700.xml")); - - assertEquals(1, suiteResult.getCases().size()); - - CaseResult result = suiteResult.getCases().get(0); - assertEquals(1, result.getFailCount()); - assertTrue(result.getErrorStackTrace() != null); - } - - @Bug(6454) - public void testParseNestedTestSuites() throws Exception { - // A report with several nested suites - // 3 of them have actual some tests - each exactly one - List results = parseSuites(getDataFile("junit-report-nested-testsuites.xml")); - assertEquals(3, results.size()); - - for (SuiteResult result : results) { - assertEquals(1, result.getCases().size()); - } - } -} diff --git a/core/src/test/java/hudson/tasks/junit/TestResultTest.java b/core/src/test/java/hudson/tasks/junit/TestResultTest.java deleted file mode 100644 index 90f9f6a27fea..000000000000 --- a/core/src/test/java/hudson/tasks/junit/TestResultTest.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.XmlFile; -import hudson.util.HeapSpaceStringConverter; -import hudson.util.XStream2; - -import java.io.File; -import java.io.IOException; -import java.net.URISyntaxException; -import java.util.Collection; -import java.util.List; - -import junit.framework.TestCase; - -import org.jvnet.hudson.test.Bug; - -import com.thoughtworks.xstream.XStream; - -/** - * Tests the JUnit result XML file parsing in {@link TestResult}. - * - * @author dty - */ -public class TestResultTest extends TestCase { - private File getDataFile(String name) throws URISyntaxException { - return new File(TestResultTest.class.getResource(name).toURI()); - } - - /** - * Verifies that all suites of an Eclipse Plug-in Test Suite are collected. - * These suites don't differ by name (and timestamp), the y differ by 'id'. - */ - public void testIpsTests() throws Exception { - TestResult testResult = new TestResult(); - testResult.parse(getDataFile("eclipse-plugin-test-report.xml")); - - Collection suites = testResult.getSuites(); - assertEquals("Wrong number of test suites", 16, suites.size()); - int testCaseCount = 0; - for (SuiteResult suite : suites) { - testCaseCount += suite.getCases().size(); - } - assertEquals("Wrong number of test cases", 3366, testCaseCount); - } - - /** - * This test verifies compatibility of JUnit test results persisted to - * XML prior to the test code refactoring. - * - * @throws Exception - */ - public void testXmlCompatibility() throws Exception { - XmlFile xmlFile = new XmlFile(XSTREAM, getDataFile("junitResult.xml")); - TestResult result = (TestResult)xmlFile.read(); - - // Regenerate the transient data - result.tally(); - assertEquals(9, result.getTotalCount()); - assertEquals(1, result.getSkipCount()); - assertEquals(1, result.getFailCount()); - - // XStream seems to produce some weird rounding errors... - assertEquals(0.576, result.getDuration(), 0.0001); - - Collection suites = result.getSuites(); - assertEquals(6, suites.size()); - - List failedTests = result.getFailedTests(); - assertEquals(1, failedTests.size()); - - SuiteResult failedSuite = result.getSuite("broken"); - assertNotNull(failedSuite); - CaseResult failedCase = failedSuite.getCase("becomeUglier"); - assertNotNull(failedCase); - assertFalse(failedCase.isSkipped()); - assertFalse(failedCase.isPassed()); - assertEquals(5, failedCase.getFailedSince()); - } - - /** - * When test methods are parametrized, they can occur multiple times in the testresults XMLs. - * Test that these are counted correctly. - */ - @Bug(13214) - public void testDuplicateTestMethods() throws IOException, URISyntaxException { - TestResult testResult = new TestResult(); - testResult.parse(getDataFile("JENKINS-13214/27449.xml")); - testResult.parse(getDataFile("JENKINS-13214/27540.xml")); - testResult.parse(getDataFile("JENKINS-13214/29734.xml")); - testResult.tally(); - - assertEquals("Wrong number of test suites", 1, testResult.getSuites().size()); - assertEquals("Wrong number of test cases", 3, testResult.getTotalCount()); - } - - @Bug(12457) - public void testTestSuiteDistributedOverMultipleFilesIsCountedAsOne() throws IOException, URISyntaxException { - TestResult testResult = new TestResult(); - testResult.parse(getDataFile("JENKINS-12457/TestSuite_a1.xml")); - testResult.parse(getDataFile("JENKINS-12457/TestSuite_a2.xml")); - testResult.tally(); - - assertEquals("Wrong number of testsuites", 1, testResult.getSuites().size()); - assertEquals("Wrong number of test cases", 2, testResult.getTotalCount()); - - // check duration: 157.980 (TestSuite_a1.xml) and 15.000 (TestSuite_a2.xml) = 172.98 - assertEquals("Wrong duration for test result", 172.98, testResult.getDuration(), 0.1); - } - - /** - * A common problem is that people parse TEST-*.xml as well as TESTS-TestSuite.xml. - * See http://jenkins.361315.n4.nabble.com/Problem-with-duplicate-build-execution-td371616.html for discussion. - */ - public void testDuplicatedTestSuiteIsNotCounted() throws IOException, URISyntaxException { - TestResult testResult = new TestResult(); - testResult.parse(getDataFile("JENKINS-12457/TestSuite_b.xml")); - testResult.parse(getDataFile("JENKINS-12457/TestSuite_b_duplicate.xml")); - testResult.tally(); - - assertEquals("Wrong number of testsuites", 1, testResult.getSuites().size()); - assertEquals("Wrong number of test cases", 1, testResult.getTotalCount()); - assertEquals("Wrong duration for test result", 1.0, testResult.getDuration(), 0.01); - } - - private static final XStream XSTREAM = new XStream2(); - - static { - XSTREAM.alias("result",TestResult.class); - XSTREAM.alias("suite",SuiteResult.class); - XSTREAM.alias("case",CaseResult.class); - XSTREAM.registerConverter(new HeapSpaceStringConverter(),100); - } -} \ No newline at end of file diff --git a/core/src/test/java/hudson/tasks/test/TestObjectTest.java b/core/src/test/java/hudson/tasks/test/TestObjectTest.java deleted file mode 100644 index f48cf6d5e758..000000000000 --- a/core/src/test/java/hudson/tasks/test/TestObjectTest.java +++ /dev/null @@ -1,48 +0,0 @@ -package hudson.tasks.test; - -import java.lang.ref.Reference; -import java.lang.ref.WeakReference; -import java.util.ArrayList; -import java.util.List; -import org.junit.Assert; -import org.junit.Test; - -public class TestObjectTest { - - @Test - public void testSafe() { - String name = "Foo#approve! is called by approve_on_foo?xyz/\\: 50%"; - String encoded = TestObject.safe(name); - - Assert.assertFalse(encoded.contains("#")); - Assert.assertFalse(encoded.contains("?")); - Assert.assertFalse(encoded.contains("\\")); - Assert.assertFalse(encoded.contains("/")); - Assert.assertFalse(encoded.contains(":")); - Assert.assertFalse(encoded.contains("%")); - } - - @Test public void uniquifyName() { - for (int i = 0; i < 2; i++) { // different parents - final List ts = new ArrayList(); - for (int j = 0; j < 10; j++) { - final String name = "t" + (int) Math.sqrt(j); // partly unique names - ts.add(new SimpleCaseResult() { - @Override public String getSafeName() { - return uniquifyName(ts, name); - } - }); - } - List names = new ArrayList(); - for (TestObject t : ts) { - names.add(t.getSafeName()); - } - Assert.assertEquals("[t0, t1, t1_2, t1_3, t2, t2_2, t2_3, t2_4, t2_5, t3]", names.toString()); - Reference r = new WeakReference(ts.get(4)); // arbitrarily - ts.clear(); - System.gc(); - Assert.assertNull(r.get()); - } - } - -} diff --git a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a1.xml b/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a1.xml deleted file mode 100644 index b27b131561fa..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a1.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a2.xml b/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a2.xml deleted file mode 100644 index cf2d21e0b93d..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_a2.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b.xml b/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b.xml deleted file mode 100644 index a754269a9692..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b_duplicate.xml b/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b_duplicate.xml deleted file mode 100644 index a754269a9692..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/JENKINS-12457/TestSuite_b_duplicate.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27449.xml b/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27449.xml deleted file mode 100644 index 81d5bb13f7f4..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27449.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27540.xml b/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27540.xml deleted file mode 100644 index fb252470681c..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/27540.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/29734.xml b/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/29734.xml deleted file mode 100644 index 40b4d947b3b7..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/JENKINS-13214/29734.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/eclipse-plugin-test-report.xml b/core/src/test/resources/hudson/tasks/junit/eclipse-plugin-test-report.xml deleted file mode 100644 index 5b3e7b774140..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/eclipse-plugin-test-report.xml +++ /dev/null @@ -1,11237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DECKUNG_TABLE -368 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/19d57049-97d8-4e61-a08f-387ce22cecb9/Vertrag.hbm.xml -432 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -3178 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/910467d3-3c81-429f-977b-7fbb17562071/Vertrag.hbm.xml -3197 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -3198 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/910467d3-3c81-429f-977b-7fbb17562071/Deckung.hbm.xml -3215 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -5322 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/c87b4a8d-4de2-47c1-8a15-8edf05a82ae1/Deckung.hbm.xml -5340 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -5341 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/c87b4a8d-4de2-47c1-8a15-8edf05a82ae1/Vertrag.hbm.xml -5359 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VERTRAG_TABLE -113718 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -113735 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -113776 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -113793 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -113794 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -113811 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -113857 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -113875 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -113875 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -113891 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -113944 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -113960 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -113961 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -113974 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114026 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -114040 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114041 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -114056 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114104 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -114117 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114117 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -114130 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114174 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -114187 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114187 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -114199 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114237 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -114249 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114249 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -114261 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114303 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -114314 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114315 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -114327 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114369 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -114381 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114382 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -114394 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114437 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Vertrag.hbm.xml -114449 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114450 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.DbPropertyMappingTest.TestProject/Deckung.hbm.xml -114462 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114636 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/e326374a-fb50-4a23-805e-d9d96226e0cf/Vertrag.hbm.xml -114645 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114646 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/e326374a-fb50-4a23-805e-d9d96226e0cf/Deckung.hbm.xml -114654 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114704 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/testMapping.hbm.xml -114711 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114714 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/testMapping.hbm.xml -114721 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114721 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/testMapping.hbm.xml -114728 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114731 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/testMapping.hbm.xml -114738 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -114738 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/subsub/testMapping.hbm.xml -114746 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114746 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/testMapping.hbm.xml -114753 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114908 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/testMapping.hbm.xml -114915 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114929 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/subsub/testMapping.hbm.xml -114935 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114936 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/testMapping.hbm.xml -114942 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114969 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/src/subdir/testMapping.hbm.xml -114975 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114976 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/subsub/testMapping.hbm.xml -114983 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -114983 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/testMapping.hbm.xml -114989 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115002 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/subsub/testMapping.hbm.xml -115008 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115009 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/org.faktorips.devtools.ormext.OrmextPluginTest.TestProject/subdir/testMapping.hbm.xml -115016 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115208 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/47e1b77b-1654-436b-b3a8-bd20b4652121/Vertrag.hbm.xml -115216 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115217 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/47e1b77b-1654-436b-b3a8-bd20b4652121/Deckung.hbm.xml -115224 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -115267 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/9f47ac13-77f8-46d9-ae5c-4e862efd576c/Vertrag.hbm.xml -115274 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115275 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/9f47ac13-77f8-46d9-ae5c-4e862efd576c/Deckung.hbm.xml -115282 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -115329 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/66c38e7b-ffa0-416a-a6ab-6e0ba0903f21/Deckung.hbm.xml -115336 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -115337 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/66c38e7b-ffa0-416a-a6ab-6e0ba0903f21/Vertrag.hbm.xml -115344 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115384 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/6cec6598-b223-403d-93ce-279fa5f1e5b3/Deckung.hbm.xml -115391 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -115392 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/6cec6598-b223-403d-93ce-279fa5f1e5b3/Vertrag.hbm.xml -115398 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115413 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: data.Deckung -> DECKUNG_TABLE -115425 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: data.Vertrag -> VERTRAG_TABLE -115433 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: data.Deckung -> DECKUNG_TABLE -115440 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: data.Vertrag -> VERTRAG_TABLE -115448 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: data.Deckung -> DECKUNG_TABLE -115455 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: data.Vertrag -> VERTRAG_TABLE -115665 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/d1d8caeb-e551-4389-a858-0919060f8a41/Vertrag.hbm.xml -115671 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Vertrag -> VERTRAG_TABLE -115672 [main] INFO org.hibernate.cfg.Configuration - Reading mappings from file: /dev/shm/test-workspace/d1d8caeb-e551-4389-a858-0919060f8a41/Deckung.hbm.xml -115679 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: org.faktorips.devtools.ormext.internal.model.data.Deckung -> DECKUNG_TABLE -]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/core/src/test/resources/hudson/tasks/junit/junit-report-1233.xml b/core/src/test/resources/hudson/tasks/junit/junit-report-1233.xml deleted file mode 100644 index f2e43de6a4c0..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junit-report-1233.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/junit-report-1463.xml b/core/src/test/resources/hudson/tasks/junit/junit-report-1463.xml deleted file mode 100644 index 5c1c68036493..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junit-report-1463.xml +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/junit-report-1472.xml b/core/src/test/resources/hudson/tasks/junit/junit-report-1472.xml deleted file mode 100644 index 8bd61951bc97..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junit-report-1472.xml +++ /dev/null @@ -1,16466 +0,0 @@ - - - - - - - fixin(shift)" blib/script/sa-update - PERL_DL_NONLAZY=1 /export/home/jm/tools/perl586/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(1, 'blib/lib', 'blib/arch')" t/*.t - t/basic_lint...................... - 1..1 - # Running under perl version 5.008006 for solaris - # Current time local: Thu Mar 27 09:18:10 2008 - # Current time GMT: Thu Mar 27 09:18:10 2008 - # Using Test.pm version 1.25 - /export/home/jm/tools/perl586/bin/perl -T -w ../spamassassin.raw -C log/test_rules_copy --siteconfigpath log/localrules.tmp -p log/test_default.cf -L --lint - Checking anything - ok 1 - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DNS available (set dns_available to override) - malformed debug message: [13271] dbg: dns: name server: 140.211.166.131, LocalAddr: 0.0.0.0 - malformed debug message: [13271] dbg: dns: resolver socket rx buffer size is 57344 bytes - malformed debug message: [13271] dbg: dns: trying (3) kernel.org... - malformed debug message: [13271] dbg: dns: looking up NS for 'kernel.org' - malformed debug message: [13271] dbg: dns: NS lookup of kernel.org using 140.211.166.131 succeeded => DNS available (set dns_available to override) - malformed debug message: [13271] dbg: dns: name server: 140.211.166.131, LocalAddr: 0.0.0.0 - malformed debug message: [13271] dbg: dns: resolver socket rx buffer size is 57344 bytes - malformed debug message: [13271] dbg: dns: NS list: 140.211.166.130, 140.211.166.131 - malformed debug message: [13271] dbg: dns: name server: 140.211.166.130, LocalAddr: 0.0.0.0 - malformed debug message: [13271] dbg: dns: resolver socket rx buffer size is 57344 bytes - malformed debug message: [13271] dbg: dns: is DNS available? 1 - malformed debug message: [13271] dbg: uridnsbl: domains to query: uribl-example-b.com uribl-example-a.com uribl-example-c.com - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:multi.uribl.com.:uribl-example-b.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_RED lookup start - malformed debug message: [13271] dbg: dns: URIBL_GREY lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:bl.open-whois.org.:uribl-example-b.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: WHOIS_SECUREWHOIS lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MONIKER_ROLE lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MYPRIVREG lookup start - malformed debug message: [13271] dbg: dns: WHOIS_NETSOLPR lookup start - malformed debug message: [13271] dbg: dns: WHOIS_AITPRIV lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:multi.surbl.org.:uribl-example-b.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_SC_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_AB_SURBL lookup start - malformed debug message: [13271] dbg: dns: WHOIS_CONTACTPRIV lookup start - malformed debug message: [13271] dbg: dns: WHOIS_NAMEKING lookup start - malformed debug message: [13271] dbg: dns: WHOIS_PRIVPROT lookup start - malformed debug message: [13271] dbg: dns: WHOIS_WHOISGUARD lookup start - malformed debug message: [13271] dbg: dns: URIBL_PH_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_BLACK lookup start - malformed debug message: [13271] dbg: dns: WHOIS_PRIVACYPOST lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:dob.sibl.support-intelligence.net:uribl-example-b.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_RHS_DOB lookup start - malformed debug message: [13271] dbg: dns: URIBL_JP_SURBL lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:rhsbl.ahbl.org.:uribl-example-b.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: T_URIBL_RHS_AHBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_WS_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_OB_SURBL lookup start - malformed debug message: [13271] dbg: dns: WHOIS_DMNBYPROXY lookup start - malformed debug message: [13271] dbg: dns: WHOIS_REGISTERFLY lookup start - malformed debug message: [13271] dbg: dns: WHOIS_UNLISTED lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MONIKER_PRIV lookup start - malformed debug message: [13271] dbg: async: starting: URI-NS, NS:uribl-example-b.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_SBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_XBL lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:multi.uribl.com.:uribl-example-a.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_RED lookup start - malformed debug message: [13271] dbg: dns: URIBL_GREY lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:bl.open-whois.org.:uribl-example-a.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: WHOIS_SECUREWHOIS lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MONIKER_ROLE lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MYPRIVREG lookup start - malformed debug message: [13271] dbg: dns: WHOIS_NETSOLPR lookup start - malformed debug message: [13271] dbg: dns: WHOIS_AITPRIV lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:multi.surbl.org.:uribl-example-a.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_SC_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_AB_SURBL lookup start - malformed debug message: [13271] dbg: dns: WHOIS_CONTACTPRIV lookup start - malformed debug message: [13271] dbg: dns: WHOIS_NAMEKING lookup start - malformed debug message: [13271] dbg: dns: WHOIS_PRIVPROT lookup start - malformed debug message: [13271] dbg: dns: WHOIS_WHOISGUARD lookup start - malformed debug message: [13271] dbg: dns: URIBL_PH_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_BLACK lookup start - malformed debug message: [13271] dbg: dns: WHOIS_PRIVACYPOST lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:dob.sibl.support-intelligence.net:uribl-example-a.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_RHS_DOB lookup start - malformed debug message: [13271] dbg: dns: URIBL_JP_SURBL lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:rhsbl.ahbl.org.:uribl-example-a.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: T_URIBL_RHS_AHBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_WS_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_OB_SURBL lookup start - malformed debug message: [13271] dbg: dns: WHOIS_DMNBYPROXY lookup start - malformed debug message: [13271] dbg: dns: WHOIS_REGISTERFLY lookup start - malformed debug message: [13271] dbg: dns: WHOIS_UNLISTED lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MONIKER_PRIV lookup start - malformed debug message: [13271] dbg: async: starting: URI-NS, NS:uribl-example-a.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_SBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_XBL lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:multi.uribl.com.:uribl-example-c.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_RED lookup start - malformed debug message: [13271] dbg: dns: URIBL_GREY lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:bl.open-whois.org.:uribl-example-c.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: WHOIS_SECUREWHOIS lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MONIKER_ROLE lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MYPRIVREG lookup start - malformed debug message: [13271] dbg: dns: WHOIS_NETSOLPR lookup start - malformed debug message: [13271] dbg: dns: WHOIS_AITPRIV lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:multi.surbl.org.:uribl-example-c.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_SC_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_AB_SURBL lookup start - malformed debug message: [13271] dbg: dns: WHOIS_CONTACTPRIV lookup start - malformed debug message: [13271] dbg: dns: WHOIS_NAMEKING lookup start - malformed debug message: [13271] dbg: dns: WHOIS_PRIVPROT lookup start - malformed debug message: [13271] dbg: dns: WHOIS_WHOISGUARD lookup start - malformed debug message: [13271] dbg: dns: URIBL_PH_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_BLACK lookup start - malformed debug message: [13271] dbg: dns: WHOIS_PRIVACYPOST lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:dob.sibl.support-intelligence.net:uribl-example-c.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_RHS_DOB lookup start - malformed debug message: [13271] dbg: dns: URIBL_JP_SURBL lookup start - malformed debug message: [13271] dbg: async: starting: URI-DNSBL, DNSBL:rhsbl.ahbl.org.:uribl-example-c.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: T_URIBL_RHS_AHBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_WS_SURBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_OB_SURBL lookup start - malformed debug message: [13271] dbg: dns: WHOIS_DMNBYPROXY lookup start - malformed debug message: [13271] dbg: dns: WHOIS_REGISTERFLY lookup start - malformed debug message: [13271] dbg: dns: WHOIS_UNLISTED lookup start - malformed debug message: [13271] dbg: dns: WHOIS_MONIKER_PRIV lookup start - malformed debug message: [13271] dbg: async: starting: URI-NS, NS:uribl-example-c.com (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: URIBL_SBL lookup start - malformed debug message: [13271] dbg: dns: URIBL_XBL lookup start - malformed debug message: [13271] dbg: dns: checking RBL sa-other.bondedsender.org., set bsp-untrusted - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 14.35.17.212.sa-other.bondedsender.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:14.35.17.212.sa-other.bondedsender.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 226.149.120.193.sa-other.bondedsender.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:226.149.120.193.sa-other.bondedsender.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 18.13.119.61.sa-other.bondedsender.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:18.13.119.61.sa-other.bondedsender.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 134.88.73.210.sa-other.bondedsender.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:134.88.73.210.sa-other.bondedsender.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 98.3.137.144.sa-other.bondedsender.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:98.3.137.144.sa-other.bondedsender.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL plus.bondedsender.org., set ssc-firsttrusted - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 1.53.51.150.plus.bondedsender.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:1.53.51.150.plus.bondedsender.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL combined.njabl.org., set njabl - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 144.137.3.98, 210.73.88.134, 61.119.13.18, 193.120.149.226, 212.17.35.14, 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 98.3.137.144.combined.njabl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:98.3.137.144.combined.njabl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 134.88.73.210.combined.njabl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:134.88.73.210.combined.njabl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 18.13.119.61.combined.njabl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:18.13.119.61.combined.njabl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 226.149.120.193.combined.njabl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:226.149.120.193.combined.njabl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 14.35.17.212.combined.njabl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:14.35.17.212.combined.njabl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 1.53.51.150.combined.njabl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:1.53.51.150.combined.njabl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL bl.spamcop.net., set spamcop - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 144.137.3.98, 210.73.88.134, 61.119.13.18, 193.120.149.226, 212.17.35.14, 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 98.3.137.144.bl.spamcop.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:98.3.137.144.bl.spamcop.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 134.88.73.210.bl.spamcop.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:134.88.73.210.bl.spamcop.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 18.13.119.61.bl.spamcop.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:18.13.119.61.bl.spamcop.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 226.149.120.193.bl.spamcop.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:226.149.120.193.bl.spamcop.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 14.35.17.212.bl.spamcop.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:14.35.17.212.bl.spamcop.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 1.53.51.150.bl.spamcop.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:1.53.51.150.bl.spamcop.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL zen.spamhaus.org., set zen-lastexternal - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 1.53.51.150.zen.spamhaus.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:1.53.51.150.zen.spamhaus.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL dnsbl.sorbs.net., set sorbs-lastexternal - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 1.53.51.150.dnsbl.sorbs.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:1.53.51.150.dnsbl.sorbs.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL dnsbl.sorbs.net., set sorbs - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 144.137.3.98, 210.73.88.134, 61.119.13.18, 193.120.149.226, 212.17.35.14, 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 98.3.137.144.dnsbl.sorbs.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:98.3.137.144.dnsbl.sorbs.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 134.88.73.210.dnsbl.sorbs.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:134.88.73.210.dnsbl.sorbs.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 18.13.119.61.dnsbl.sorbs.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:18.13.119.61.dnsbl.sorbs.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 226.149.120.193.dnsbl.sorbs.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:226.149.120.193.dnsbl.sorbs.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 14.35.17.212.dnsbl.sorbs.net. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:14.35.17.212.dnsbl.sorbs.net. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL zen.spamhaus.org., set zen-lastexternal - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: checking RBL list.dnswl.org., set dnswl-firsttrusted - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 1.53.51.150.list.dnswl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:1.53.51.150.list.dnswl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL sa-accredit.habeas.com., set habeas-firsttrusted - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 1.53.51.150.sa-accredit.habeas.com. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:1.53.51.150.sa-accredit.habeas.com. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL list.dsbl.org., set dsbl-lastexternal - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 1.53.51.150.list.dsbl.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:1.53.51.150.list.dsbl.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL sa-trusted.bondedsender.org., set bsp-firsttrusted - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS TXT query for 1.53.51.150.sa-trusted.bondedsender.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-TXT, dns:TXT:1.53.51.150.sa-trusted.bondedsender.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL zen.spamhaus.org., set zen - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 144.137.3.98, 210.73.88.134, 61.119.13.18, 193.120.149.226, 212.17.35.14, 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 98.3.137.144.zen.spamhaus.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:98.3.137.144.zen.spamhaus.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 134.88.73.210.zen.spamhaus.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:134.88.73.210.zen.spamhaus.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 18.13.119.61.zen.spamhaus.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:18.13.119.61.zen.spamhaus.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 226.149.120.193.zen.spamhaus.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:226.149.120.193.zen.spamhaus.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: launching DNS A query for 14.35.17.212.zen.spamhaus.org. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:14.35.17.212.zen.spamhaus.org. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: dns: checking RBL iadb.isipp.com., set iadb-firsttrusted - malformed debug message: [13271] dbg: dns: IPs found: full-external: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 untrusted: 150.51.53.1, 212.17.35.14, 193.120.149.226, 61.119.13.18, 210.73.88.134, 144.137.3.98 originating: - malformed debug message: [13271] dbg: dns: only inspecting the following IPs: 150.51.53.1 - malformed debug message: [13271] dbg: dns: launching DNS A query for 1.53.51.150.iadb.isipp.com. in background - malformed debug message: [13271] dbg: async: starting: DNSBL-A, dns:A:1.53.51.150.iadb.isipp.com. (timeout 15.0s, min 3.0s) - malformed debug message: [13271] dbg: check: running tests for priority: -1000 - malformed debug message: [13271] dbg: async: select found no responses ready (t.o.=0.0) - malformed debug message: [13271] dbg: async: queries completed: 0, started: 0 - malformed debug message: [13271] dbg: async: queries active: DNSBL-A=22 DNSBL-TXT=13 URI-DNSBL=15 URI-NS=3 at Thu Mar 27 09:19:09 2008 - malformed debug message: [13271] dbg: rules: running head tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled head tests - malformed debug message: [13271] dbg: rules: running head_eval tests; score so far=0 - malformed debug message: [13271] dbg: eval: all '*From' addrs: spammer@example.com - malformed debug message: [13271] dbg: eval: all '*To' addrs: someone@example.com - malformed debug message: [13271] dbg: rules: running body tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled body tests - malformed debug message: [13271] dbg: rules: running uri tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled uri tests - malformed debug message: [13271] dbg: rules: running body_eval tests; score so far=0 - malformed debug message: [13271] dbg: rules: running rawbody tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled rawbody tests - malformed debug message: [13271] dbg: rules: running full tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled full tests - malformed debug message: [13271] dbg: rules: running meta tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled meta tests - malformed debug message: [13271] dbg: check: running tests for priority: -950 - malformed debug message: [13271] dbg: rules: running head tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled head tests - malformed debug message: [13271] dbg: rules: running head_eval tests; score so far=0 - malformed debug message: [13271] dbg: rules: running body tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled body tests - malformed debug message: [13271] dbg: rules: running uri tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled uri tests - malformed debug message: [13271] dbg: rules: running body_eval tests; score so far=0 - malformed debug message: [13271] dbg: rules: running rawbody tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled rawbody tests - malformed debug message: [13271] dbg: rules: running full tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled full tests - malformed debug message: [13271] dbg: rules: running meta tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled meta tests - malformed debug message: [13271] dbg: check: running tests for priority: -900 - malformed debug message: [13271] dbg: rules: running head tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled head tests - malformed debug message: [13271] dbg: rules: running head_eval tests; score so far=0 - malformed debug message: [13271] dbg: rules: running body tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled body tests - malformed debug message: [13271] dbg: rules: running uri tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled uri tests - malformed debug message: [13271] dbg: rules: running body_eval tests; score so far=0 - malformed debug message: [13271] dbg: rules: running rawbody tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled rawbody tests - malformed debug message: [13271] dbg: rules: running full tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled full tests - malformed debug message: [13271] dbg: rules: running meta tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled meta tests - malformed debug message: [13271] dbg: check: running tests for priority: -400 - malformed debug message: [13271] dbg: rules: running head tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled head tests - malformed debug message: [13271] dbg: rules: running body tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled body tests - malformed debug message: [13271] dbg: rules: running uri tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled uri tests - malformed debug message: [13271] dbg: rules: running body_eval tests; score so far=0 - malformed debug message: [13271] dbg: rules: running rawbody tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled rawbody tests - malformed debug message: [13271] dbg: rules: running full tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled full tests - malformed debug message: [13271] dbg: rules: running meta tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled meta tests - malformed debug message: [13271] dbg: check: running tests for priority: 0 - malformed debug message: [13271] dbg: rules: running head tests; score so far=0 - malformed debug message: [13271] dbg: rules: compiled head tests - malformed debug message: [13271] dbg: rules: ran header rule __MISSING_THREAD ======> got hit: "UNSET" - malformed debug message: [13271] dbg: rules: ran header rule __RDNS_NONE ======> got hit: "[ ip=150.51.53.1 rdns= " - malformed debug message: [13271] dbg: rules: ran header rule __LAST_UNTRUSTED_RELAY_NO_AUTH ======> got hit: "[ ip=150.51.53.1 rdns= helo=dmz.example.com by=internal.example.com ident= envfrom= intl=0 id= auth= " - malformed debug message: [13271] dbg: rules: ran header rule TEST_INVALID_DATE ======> got hit: "negative match" - malformed debug message: [13271] dbg: rules: ran header rule __MISSING_REF ======> got hit: "UNSET" - malformed debug message: [13271] dbg: rules: ran header rule __MISSING_REPLY ======> got hit: "UNSET" - malformed debug message: [13271] dbg: rules: ran header rule __NAKED_TO ======> got hit: "someone@example.com" - malformed debug message: [13271] dbg: rules: ran header rule __TOCC_EXISTS ======> got hit: "s" - malformed debug message: [13271] dbg: rules: ran header rule __MSOE_MID_WRONG_CASE ======> got hit: " - malformed debug message: [13271] dbg: rules: Message-Id: " - malformed debug message: [13271] dbg: rules: ran header rule __DOS_RELAYED_EXT ======> got hit: "Received: from dmz.example.com [150.51.53.1] by internal.example.com - malformed debug message: [13271] dbg: rules: for someone@example.com; Fri, 07 Dec 2001 11:07:35 +1100 (EST) - malformed debug message: [13271] dbg: rules: Received: from friend.example.com [212.17.35.14] by dmz.example.com - malformed debug message: [13271] dbg: rules: for someone@example.com; Fri, 07 Dec 2001 11:07:35 +1100 (EST) - malformed debug message: [13271] dbg: rules: Received: from notrust.example.com [193.120.149.226] by friend.example.com - malformed debug message: [13271] dbg: rules: for someone@example.com; Fri, 07 Dec 2001 11:07:30 +1100 (EST) - malformed debug message: [13271] dbg: rules: Received: from loser.example.org [61.119.13.18] by notrust.example.com - malformed debug message: [13271] dbg: rules: for someone@example.com; Fri, 07 Dec 2001 11:07:25 +1100 (EST) - malformed debug message: [13271] dbg: rules: Received: from chaos.example.net [210.73.88.134] by loser.example.org - malformed debug message: [13271] dbg: rules: for someone@example.com; Fri, 07 Dec 2001 11:07:20 +1100 (EST) - malformed debug message: [13271] dbg: rules: Received: " - malformed debug message: [13271] dbg: rules: ran header rule __HAS_RCVD ======> got hit: "f" - malformed debug message: [13271] dbg: rules: ran header rule __DOS_RCVD_FRI ======> got hit: " Fri, " - malformed debug message: [13271] dbg: rules: ran header rule __MSGID_OK_HOST ======> got hit: "@mail.netnoteinc.com>" - malformed debug message: [13271] dbg: rules: ran header rule __MSGID_OK_DIGITS ======> got hit: "2001120623" - malformed debug message: [13271] dbg: rules: ran header rule __HAS_MSGID ======> got hit: "<" - malformed debug message: [13271] dbg: rules: ran header rule __SANE_MSGID ======> got hit: "<20011206235802.4FD6F1143D6@mail.netnoteinc.com> - malformed debug message: [13271] dbg: rules: " - malformed debug message: [13271] dbg: rules: ran header rule __HAS_SUBJECT ======> got hit: "n" - malformed debug message: [13271] dbg: rules: running head_eval tests; score so far=5 - malformed debug message: [13271] dbg: spf: checking to see if the message has a Received-SPF header that we can use - malformed debug message: [13271] dbg: spf: cannot load Mail::SPF module or create Mail::SPF::Server object: Can't locate Mail/SPF.pm in @INC (@INC contains: ../blib/lib @@INSTALLSITELIB@@ /local/perl586/lib/5.8.6/i86pc-solaris /local/perl586/lib/5.8.6 /local/perl586/lib/site_perl/5.8.6/i86pc-solaris /local/perl586/lib/site_perl/5.8.6 /local/perl586/lib/site_perl) at ../blib/lib/Mail/SpamAssassin/Plugin/SPF.pm line 395. - malformed debug message: [13271] dbg: spf: attempting to use legacy Mail::SPF::Query module instead - malformed debug message: [13271] dbg: spf: using Mail::SPF::Query for SPF checks - malformed debug message: [13271] dbg: spf: checking HELO (helo=dmz.example.com, ip=150.51.53.1) - malformed debug message: [13271] dbg: spf: query for /150.51.53.1/dmz.example.com: result: unknown, comment: Please see http://spf.pobox.com/why.html?sender=dmz.example.com&ip=150.51.53.1&receiver=hudson.zones.apache.org: domain of sender dmz.example.com does not exist, text: - malformed debug message: [13271] dbg: spf: already checked for Received-SPF headers, proceeding with DNS based checks - malformed debug message: [13271] dbg: spf: relayed through one or more trusted relays, cannot use header-based Envelope-From, skipping - malformed debug message: [13271] dbg: rules: ran eval rule DATE_IN_FUTURE_06_12 ======> got hit (1) - malformed debug message: [13271] dbg: spf: def_spf_whitelist_from: already checked spf and didn't get pass, skipping whitelist check - malformed debug message: [13271] dbg: spf: whitelist_from_spf: already checked spf and didn't get pass, skipping whitelist check - malformed debug message: [13271] dbg: dns: hit 127.0.0.11 - malformed debug message: [13271] dbg: dns: hit 127.0.0.10 - malformed debug message: [13271] dbg: async: select found 52 responses ready (t.o.=0.0) - malformed debug message: [13271] dbg: async: completed in 1.330 s: DNSBL-TXT, dns:TXT:134.88.73.210.bl.spamcop.net. - malformed debug message: [13271] dbg: async: completed in 1.339 s: URI-DNSBL, DNSBL:multi.uribl.com.:uribl-example-b.com - malformed debug message: [13271] dbg: async: completed in 1.338 s: URI-DNSBL, DNSBL:multi.surbl.org.:uribl-example-b.com - malformed debug message: [13271] dbg: async: completed in 1.327 s: DNSBL-A, dns:A:134.88.73.210.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: completed in 1.333 s: DNSBL-TXT, dns:TXT:226.149.120.193.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: completed in 1.328 s: DNSBL-A, dns:A:1.53.51.150.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: completed in 1.325 s: DNSBL-TXT, dns:TXT:1.53.51.150.bl.spamcop.net. - malformed debug message: [13271] dbg: async: completed in 1.329 s: DNSBL-A, dns:A:14.35.17.212.combined.njabl.org. - malformed debug message: [13271] dbg: async: completed in 1.339 s: URI-NS, NS:uribl-example-a.com - malformed debug message: [13271] dbg: async: completed in 1.334 s: DNSBL-TXT, dns:TXT:14.35.17.212.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: completed in 1.348 s: URI-DNSBL, DNSBL:dob.sibl.support-intelligence.net:uribl-example-c.com - malformed debug message: [13271] dbg: async: completed in 1.319 s: DNSBL-A, dns:A:1.53.51.150.list.dnswl.org. - malformed debug message: [13271] dbg: async: completed in 1.331 s: DNSBL-TXT, dns:TXT:98.3.137.144.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: completed in 1.322 s: DNSBL-A, dns:A:14.35.17.212.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: completed in 1.326 s: DNSBL-TXT, dns:TXT:98.3.137.144.bl.spamcop.net. - malformed debug message: [13271] dbg: async: completed in 1.325 s: DNSBL-TXT, dns:TXT:14.35.17.212.bl.spamcop.net. - malformed debug message: [13271] dbg: async: completed in 1.324 s: DNSBL-A, dns:A:98.3.137.144.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: completed in 1.320 s: DNSBL-A, dns:A:14.35.17.212.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: completed in 1.327 s: DNSBL-TXT, dns:TXT:226.149.120.193.bl.spamcop.net. - malformed debug message: [13271] dbg: async: completed in 1.328 s: DNSBL-A, dns:A:1.53.51.150.combined.njabl.org. - malformed debug message: [13271] dbg: async: completed in 1.334 s: DNSBL-TXT, dns:TXT:18.13.119.61.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: completed in 1.337 s: URI-DNSBL, DNSBL:multi.uribl.com.:uribl-example-a.com - malformed debug message: [13271] dbg: async: completed in 1.331 s: URI-NS, NS:uribl-example-c.com - malformed debug message: [13271] dbg: async: completed in 1.343 s: URI-DNSBL, DNSBL:rhsbl.ahbl.org.:uribl-example-b.com - malformed debug message: [13271] dbg: async: completed in 1.329 s: DNSBL-TXT, dns:TXT:18.13.119.61.bl.spamcop.net. - malformed debug message: [13271] dbg: async: completed in 1.331 s: DNSBL-A, dns:A:226.149.120.193.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: completed in 1.326 s: DNSBL-A, dns:A:18.13.119.61.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: completed in 1.353 s: URI-DNSBL, DNSBL:dob.sibl.support-intelligence.net:uribl-example-b.com - malformed debug message: [13271] dbg: async: completed in 1.347 s: URI-DNSBL, DNSBL:rhsbl.ahbl.org.:uribl-example-c.com - malformed debug message: [13271] dbg: async: completed in 1.329 s: DNSBL-A, dns:A:226.149.120.193.combined.njabl.org. - malformed debug message: [13271] dbg: async: completed in 1.337 s: URI-DNSBL, DNSBL:multi.uribl.com.:uribl-example-c.com - malformed debug message: [13271] dbg: async: completed in 1.332 s: URI-DNSBL, DNSBL:multi.surbl.org.:uribl-example-c.com - malformed debug message: [13271] dbg: async: completed in 1.321 s: DNSBL-TXT, dns:TXT:1.53.51.150.sa-trusted.bondedsender.org. - malformed debug message: [13271] dbg: async: completed in 1.321 s: DNSBL-A, dns:A:1.53.51.150.iadb.isipp.com. - malformed debug message: [13271] dbg: async: completed in 1.337 s: DNSBL-A, dns:A:1.53.51.150.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: completed in 1.351 s: URI-DNSBL, DNSBL:bl.open-whois.org.:uribl-example-a.com - malformed debug message: [13271] dbg: async: completed in 1.329 s: DNSBL-A, dns:A:18.13.119.61.combined.njabl.org. - malformed debug message: [13271] dbg: async: completed in 1.342 s: URI-DNSBL, DNSBL:multi.surbl.org.:uribl-example-a.com - malformed debug message: [13271] dbg: async: completed in 1.333 s: DNSBL-TXT, dns:TXT:134.88.73.210.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: completed in 1.332 s: DNSBL-A, dns:A:1.53.51.150.plus.bondedsender.org. - malformed debug message: [13271] dbg: async: completed in 1.322 s: DNSBL-A, dns:A:1.53.51.150.sa-accredit.habeas.com. - malformed debug message: [13271] dbg: async: completed in 1.324 s: DNSBL-TXT, dns:TXT:1.53.51.150.list.dsbl.org. - malformed debug message: [13271] dbg: async: completed in 1.350 s: URI-DNSBL, DNSBL:bl.open-whois.org.:uribl-example-c.com - malformed debug message: [13271] dbg: async: completed in 1.333 s: DNSBL-A, dns:A:134.88.73.210.combined.njabl.org. - malformed debug message: [13271] dbg: async: completed in 1.354 s: URI-DNSBL, DNSBL:bl.open-whois.org.:uribl-example-b.com - malformed debug message: [13271] dbg: async: completed in 1.350 s: URI-DNSBL, DNSBL:dob.sibl.support-intelligence.net:uribl-example-a.com - malformed debug message: [13271] dbg: async: completed in 1.326 s: DNSBL-A, dns:A:226.149.120.193.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: completed in 1.331 s: DNSBL-A, dns:A:134.88.73.210.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: completed in 1.338 s: DNSBL-A, dns:A:98.3.137.144.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: completed in 1.338 s: URI-NS, NS:uribl-example-b.com - malformed debug message: [13271] dbg: async: completed in 1.330 s: DNSBL-A, dns:A:18.13.119.61.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: completed in 1.330 s: DNSBL-A, dns:A:98.3.137.144.combined.njabl.org. - malformed debug message: [13271] dbg: async: queries completed: 52, started: 0 - malformed debug message: [13271] dbg: async: queries active: URI-DNSBL=1 at Thu Mar 27 09:19:11 2008 - malformed debug message: [13271] dbg: dns: harvested completed queries - malformed debug message: [13271] dbg: rules: running body tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled body tests - malformed debug message: [13271] dbg: rules: ran body rule __DOS_LINK ======> got hit: "link" - malformed debug message: [13271] dbg: rules: ran body rule __NONEMPTY_BODY ======> got hit: "n" - malformed debug message: [13271] dbg: rules: running uri tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled uri tests - malformed debug message: [13271] dbg: rules: ran uri rule __DOS_HAS_ANY_URI ======> got hit: "h" - malformed debug message: [13271] dbg: rules: ran uri rule __LOCAL_PP_NONPPURL ======> got hit: "http://uribl-example-b.com" - malformed debug message: [13271] dbg: rules: running body_eval tests; score so far=8.099 - malformed debug message: [13271] dbg: eval: stock info total: 0 - malformed debug message: [13271] dbg: rules: running rawbody tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled rawbody tests - malformed debug message: [13271] dbg: rules: ran rawbody rule __TVD_BODY ======> got hit: "hell" - malformed debug message: [13271] dbg: rules: running rawbody_eval tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: running full tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled full tests - malformed debug message: [13271] dbg: rules: running full_eval tests; score so far=8.099 - malformed debug message: [13271] dbg: util: current PATH is: /export/home/jm/tools/perl586/bin:/usr/ccs/bin:/sbin:/usr/sbin:/etc:/export/home/jm/bin:/sbin:/usr/sbin:/etc:/export/home/jm/bin:/sbin:/usr/sbin:/etc:/usr/bin:/opt/sfw/bin - malformed debug message: [13271] dbg: pyzor: pyzor is not available: no pyzor executable found - malformed debug message: [13271] dbg: pyzor: no pyzor found, disabling Pyzor - malformed debug message: [13271] dbg: rules: running meta tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled meta tests - malformed debug message: [13271] dbg: check: running tests for priority: 500 - malformed debug message: [13271] dbg: dns: harvest_dnsbl_queries - malformed debug message: [13271] dbg: async: select found 1 responses ready (t.o.=0.0) - malformed debug message: [13271] dbg: async: completed in 1.696 s: URI-DNSBL, DNSBL:rhsbl.ahbl.org.:uribl-example-a.com - malformed debug message: [13271] dbg: async: timing: 1.319 . dns:A:1.53.51.150.list.dnswl.org. - malformed debug message: [13271] dbg: async: timing: 1.320 . dns:A:14.35.17.212.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: timing: 1.321 . dns:A:1.53.51.150.iadb.isipp.com. - malformed debug message: [13271] dbg: async: timing: 1.321 . dns:TXT:1.53.51.150.sa-trusted.bondedsender.org. - malformed debug message: [13271] dbg: async: timing: 1.322 . dns:A:1.53.51.150.sa-accredit.habeas.com. - malformed debug message: [13271] dbg: async: timing: 1.322 . dns:A:14.35.17.212.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: timing: 1.324 . dns:A:98.3.137.144.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: timing: 1.324 . dns:TXT:1.53.51.150.list.dsbl.org. - malformed debug message: [13271] dbg: async: timing: 1.325 . dns:TXT:1.53.51.150.bl.spamcop.net. - malformed debug message: [13271] dbg: async: timing: 1.325 . dns:TXT:14.35.17.212.bl.spamcop.net. - malformed debug message: [13271] dbg: async: timing: 1.326 . dns:TXT:98.3.137.144.bl.spamcop.net. - malformed debug message: [13271] dbg: async: timing: 1.326 . dns:A:18.13.119.61.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: timing: 1.326 . dns:A:226.149.120.193.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: timing: 1.327 . dns:A:134.88.73.210.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: timing: 1.327 . dns:TXT:226.149.120.193.bl.spamcop.net. - malformed debug message: [13271] dbg: async: timing: 1.328 . dns:A:1.53.51.150.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: timing: 1.328 . dns:A:1.53.51.150.combined.njabl.org. - malformed debug message: [13271] dbg: async: timing: 1.329 . dns:A:14.35.17.212.combined.njabl.org. - malformed debug message: [13271] dbg: async: timing: 1.329 . dns:A:18.13.119.61.combined.njabl.org. - malformed debug message: [13271] dbg: async: timing: 1.329 . dns:TXT:18.13.119.61.bl.spamcop.net. - malformed debug message: [13271] dbg: async: timing: 1.329 . dns:A:226.149.120.193.combined.njabl.org. - malformed debug message: [13271] dbg: async: timing: 1.330 . dns:A:98.3.137.144.combined.njabl.org. - malformed debug message: [13271] dbg: async: timing: 1.330 . dns:TXT:134.88.73.210.bl.spamcop.net. - malformed debug message: [13271] dbg: async: timing: 1.330 . dns:A:18.13.119.61.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: timing: 1.331 . dns:TXT:98.3.137.144.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: timing: 1.331 . dns:A:226.149.120.193.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: timing: 1.331 . dns:A:134.88.73.210.zen.spamhaus.org. - malformed debug message: [13271] dbg: async: timing: 1.331 . NS:uribl-example-c.com - malformed debug message: [13271] dbg: async: timing: 1.332 . dns:A:1.53.51.150.plus.bondedsender.org. - malformed debug message: [13271] dbg: async: timing: 1.332 . DNSBL:multi.surbl.org.:uribl-example-c.com - malformed debug message: [13271] dbg: async: timing: 1.333 . dns:A:134.88.73.210.combined.njabl.org. - malformed debug message: [13271] dbg: async: timing: 1.333 . dns:TXT:134.88.73.210.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: timing: 1.333 . dns:TXT:226.149.120.193.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: timing: 1.334 . dns:TXT:14.35.17.212.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: timing: 1.334 . dns:TXT:18.13.119.61.sa-other.bondedsender.org. - malformed debug message: [13271] dbg: async: timing: 1.337 . dns:A:1.53.51.150.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: timing: 1.337 . DNSBL:multi.uribl.com.:uribl-example-c.com - malformed debug message: [13271] dbg: async: timing: 1.337 . DNSBL:multi.uribl.com.:uribl-example-a.com - malformed debug message: [13271] dbg: async: timing: 1.338 . NS:uribl-example-b.com - malformed debug message: [13271] dbg: async: timing: 1.338 . dns:A:98.3.137.144.dnsbl.sorbs.net. - malformed debug message: [13271] dbg: async: timing: 1.338 . DNSBL:multi.surbl.org.:uribl-example-b.com - malformed debug message: [13271] dbg: async: timing: 1.339 . NS:uribl-example-a.com - malformed debug message: [13271] dbg: async: timing: 1.339 . DNSBL:multi.uribl.com.:uribl-example-b.com - malformed debug message: [13271] dbg: async: timing: 1.342 . DNSBL:multi.surbl.org.:uribl-example-a.com - malformed debug message: [13271] dbg: async: timing: 1.343 . DNSBL:rhsbl.ahbl.org.:uribl-example-b.com - malformed debug message: [13271] dbg: async: timing: 1.347 . DNSBL:rhsbl.ahbl.org.:uribl-example-c.com - malformed debug message: [13271] dbg: async: timing: 1.348 . DNSBL:dob.sibl.support-intelligence.net:uribl-example-c.com - malformed debug message: [13271] dbg: async: timing: 1.350 . DNSBL:bl.open-whois.org.:uribl-example-c.com - malformed debug message: [13271] dbg: async: timing: 1.350 . DNSBL:dob.sibl.support-intelligence.net:uribl-example-a.com - malformed debug message: [13271] dbg: async: timing: 1.351 . DNSBL:bl.open-whois.org.:uribl-example-a.com - malformed debug message: [13271] dbg: async: timing: 1.353 . DNSBL:dob.sibl.support-intelligence.net:uribl-example-b.com - malformed debug message: [13271] dbg: async: timing: 1.354 . DNSBL:bl.open-whois.org.:uribl-example-b.com - malformed debug message: [13271] dbg: async: timing: 1.696 . DNSBL:rhsbl.ahbl.org.:uribl-example-a.com - malformed debug message: [13271] dbg: rules: running head tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled head tests - malformed debug message: [13271] dbg: rules: running body tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled body tests - malformed debug message: [13271] dbg: rules: running uri tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled uri tests - malformed debug message: [13271] dbg: rules: running rawbody tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled rawbody tests - malformed debug message: [13271] dbg: rules: running full tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: compiled full tests - malformed debug message: [13271] dbg: rules: running meta tests; score so far=8.099 - malformed debug message: [13271] dbg: rules: meta test DIGEST_MULTIPLE has undefined dependency 'DCC_CHECK' - malformed debug message: [13271] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A' - malformed debug message: [13271] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A2' - malformed debug message: [13271] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A' - malformed debug message: [13271] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A2' - malformed debug message: [13271] info: rules: meta test T_TVD_PH_BODY_META_ALL has dependency 'TVD_PH_BODY_ACCOUNTS_PRE' with a zero score - malformed debug message: [13271] dbg: rules: compiled meta tests - malformed debug message: [13271] dbg: check: running tests for priority: 1000 - malformed debug message: [13271] dbg: rules: running head tests; score so far=8.199 - malformed debug message: [13271] dbg: rules: compiled head tests - malformed debug message: [13271] dbg: rules: running head_eval tests; score so far=8.199 - malformed debug message: [13271] dbg: locker: safe_lock: created ./log/user_state/auto-whitelist.lock.hudson.zones.apache.org.13271 - malformed debug message: [13271] dbg: locker: safe_lock: trying to get lock on ./log/user_state/auto-whitelist with 0 retries - malformed debug message: [13271] dbg: locker: safe_lock: link to ./log/user_state/auto-whitelist.lock: link ok - malformed debug message: [13271] dbg: auto-whitelist: tie-ing to DB file of type SDBM_File R/W in ./log/user_state/auto-whitelist - malformed debug message: [13271] dbg: auto-whitelist: db-based spammer@example.com|ip=144.137 scores 0/0 - malformed debug message: [13271] dbg: auto-whitelist: db-based spammer@example.com|ip=none scores 0/0 - malformed debug message: [13271] dbg: auto-whitelist: AWL active, pre-score: 8.199, autolearn score: 8.199, mean: undef, IP: 144.137.3.98 - malformed debug message: [13271] dbg: auto-whitelist: add_score: new count: 1, new totscore: 8.199 - malformed debug message: [13271] dbg: auto-whitelist: DB addr list: untie-ing and unlocking - malformed debug message: [13271] dbg: auto-whitelist: DB addr list: file locked, breaking lock - malformed debug message: [13271] dbg: locker: safe_unlock: unlink ./log/user_state/auto-whitelist.lock - malformed debug message: [13271] dbg: auto-whitelist: post auto-whitelist score: 8.199 - malformed debug message: [13271] dbg: rules: running body tests; score so far=8.199 - malformed debug message: [13271] dbg: rules: compiled body tests - malformed debug message: [13271] dbg: rules: running uri tests; score so far=8.199 - malformed debug message: [13271] dbg: rules: compiled uri tests - malformed debug message: [13271] dbg: rules: running rawbody tests; score so far=8.199 - malformed debug message: [13271] dbg: rules: compiled rawbody tests - malformed debug message: [13271] dbg: rules: running full tests; score so far=8.199 - malformed debug message: [13271] dbg: rules: compiled full tests - malformed debug message: [13271] dbg: rules: running meta tests; score so far=8.199 - malformed debug message: [13271] dbg: rules: compiled meta tests - malformed debug message: [13271] dbg: plugin: Mail::SpamAssassin::Plugin::AutoLearnThreshold=HASH(0x8ad62d8) implements 'autolearn_discriminator', priority 0 - malformed debug message: [13271] dbg: learn: auto-learn: currently using scoreset 1 - malformed debug message: [13271] dbg: learn: auto-learn: message score: 8.199, computed score for autolearn: 8.199 - malformed debug message: [13271] dbg: learn: auto-learn? ham=0.1, spam=12, body-points=8.199, head-points=8.199, learned-points=0 - malformed debug message: [13271] dbg: learn: auto-learn? no: inside auto-learn thresholds, not considered ham or spam - malformed debug message: [13271] dbg: check: is spam? score=8.199 required=5 - malformed debug message: [13271] dbg: check: tests=DATE_IN_FUTURE_06_12,RDNS_NONE,TEST_INVALID_DATE - malformed debug message: [13271] dbg: check: subtests=__DOS_HAS_ANY_URI,__DOS_LINK,__DOS_RCVD_FRI,__DOS_RELAYED_EXT,__HAS_ANY_URI,__HAS_MSGID,__HAS_RCVD,__HAS_SUBJECT,__LAST_UNTRUSTED_RELAY_NO_AUTH,__LOCAL_PP_NONPPURL,__MISSING_REF,__MISSING_REPLY,__MISSING_THREAD,__MSGID_OK_DIGITS,__MSGID_OK_HOST,__MSOE_MID_WRONG_CASE,__NAKED_TO,__NONEMPTY_BODY,__RCVD_IN_SORBS,__RCVD_IN_ZEN,__RDNS_NONE,__SANE_MSGID,__TOCC_EXISTS,__TVD_BODY - malformed debug message: [13271] dbg: timing: total 2887 ms - init: 895 (31.0%), parse: 1.16 (0.0%), extract_message_metadata: 235 (8.1%), poll_dns_idle: 192 (6.6%), get_uri_detail_list: 0.89 (0.0%), tests_pri_-1000: 5 (0.2%), tests_pri_-950: 1.65 (0.1%), tests_pri_-900: 2 (0.1%), tests_pri_-400: 1.31 (0.0%), tests_pri_0: 1665 (57.7%), check_spf: 1198 (41.5%), check_pyzor: 0.56 (0.0%), tests_pri_500: 55 (1.9%), tests_pri_1000: 7 (0.3%), check_awl: 5 (0.2%) - malformed debug message: [13271] dbg: plugin: Mail::SpamAssassin::Plugin::MIMEHeader=HASH(0x8ad7964) implements 'finish_tests', priority 0 - malformed debug message: [13271] dbg: plugin: Mail::SpamAssassin::Plugin::Check=HASH(0x8e5f950) implements 'finish_tests', priority 0 - ok 2 - ok 3 - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - got hit - ok 8 - Checking ran header rule HDR1 ======> got hit - ok 9 - Checking rules: FOO1 merged duplicates: FOO2 - ok 10 - Checking rules: HDR1 merged duplicates: HDR2 - ok 11 - Checking for anti-pattern - ok 12 - Checking for anti-pattern - ok 13 - Checking for anti-pattern - ok 14 - Checking for anti-pattern - ok 15 - ok 16 - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - got hit: "UNSET" - [13589] dbg: rules: ran header rule __BOUNCE_CTYPE ======> got hit: "multipart/report" - [13589] dbg: rules: ran header rule __CTYPE_HAS_BOUNDARY ======> got hit: "boundary" - [13589] dbg: rules: ran header rule __CT ======> got hit: "m" - [13589] dbg: rules: ran header rule __MISSING_REF ======> got hit: "UNSET" - [13589] dbg: rules: ran header rule __MISSING_REPLY ======> got hit: "UNSET" - [13589] dbg: rules: ran header rule TO_MALFORMED ======> got hit: "negative match" - [13589] dbg: rules: ran header rule __TOCC_EXISTS ======> got hit: "b" - [13589] dbg: rules: ran header rule __MSOE_MID_WRONG_CASE ======> got hit: " - [13589] dbg: rules: Message-Id: " - [13589] dbg: rules: ran header rule FH_FROMEML_NOTLD ======> got hit: "negative match" - [13589] dbg: rules: ran header rule MISSING_DATE ======> got hit: "UNSET" - [13589] dbg: rules: ran header rule __HAS_MSGID ======> got hit: "<" - [13589] dbg: rules: ran header rule MSGID_SHORT ======> got hit: "" - [13589] dbg: rules: ran header rule __HAS_SUBJECT ======> got hit: "t" - [13589] dbg: rules: running head_eval tests; score so far=2.901 - [13589] dbg: rules: ran eval rule NO_RELAYS ======> got hit (1) - [13589] dbg: rules: ran eval rule __GATED_THROUGH_RCVD_REMOVER ======> got hit (1) - [13589] dbg: spf: cannot get Envelope-From, cannot use SPF - [13589] dbg: spf: def_spf_whitelist_from: could not find useable envelope sender - [13589] dbg: spf: spf_whitelist_from: could not find useable envelope sender - [13589] dbg: rules: running body tests; score so far=2.9 - [13589] dbg: rules: compiled body tests - [13589] dbg: rules: ran body rule __NONEMPTY_BODY ======> got hit: "t" - [13589] dbg: rules: running uri tests; score so far=2.9 - [13589] dbg: rules: compiled uri tests - [13589] dbg: rules: running body_eval tests; score so far=2.9 - [13589] dbg: eval: stock info total: 0 - [13589] dbg: rules: ran eval rule T_TVD_MIME_NO_HEADERS ======> got hit (1) - [13589] dbg: rules: running rawbody tests; score so far=2.91 - [13589] dbg: rules: compiled rawbody tests - [13589] dbg: rules: ran rawbody rule __TVD_BODY ======> got hit: "This" - [13589] dbg: rules: running rawbody_eval tests; score so far=2.91 - [13589] dbg: rules: running full tests; score so far=2.91 - [13589] dbg: rules: compiled full tests - [13589] dbg: rules: running full_eval tests; score so far=2.91 - [13589] dbg: rules: running meta tests; score so far=2.91 - [13589] dbg: rules: compiled meta tests - [13589] dbg: check: running tests for priority: 500 - [13589] dbg: dns: harvest_dnsbl_queries - [13589] dbg: rules: running head tests; score so far=2.91 - [13589] dbg: rules: compiled head tests - [13589] dbg: rules: running body tests; score so far=2.91 - [13589] dbg: rules: compiled body tests - [13589] dbg: rules: running uri tests; score so far=2.91 - [13589] dbg: rules: compiled uri tests - [13589] dbg: rules: running rawbody tests; score so far=2.91 - [13589] dbg: rules: compiled rawbody tests - [13589] dbg: rules: running full tests; score so far=2.91 - [13589] dbg: rules: compiled full tests - [13589] dbg: rules: running meta tests; score so far=2.91 - [13589] dbg: rules: meta test DIGEST_MULTIPLE has undefined dependency 'DCC_CHECK' - [13589] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A' - [13589] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A2' - [13589] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A' - [13589] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A2' - [13589] info: rules: meta test T_TVD_PH_BODY_META_ALL has dependency 'TVD_PH_BODY_ACCOUNTS_PRE' with a zero score - [13589] dbg: rules: compiled meta tests - [13589] dbg: check: running tests for priority: 1000 - [13589] dbg: rules: running head tests; score so far=6.947 - [13589] dbg: rules: compiled head tests - [13589] dbg: rules: running head_eval tests; score so far=6.947 - [13589] dbg: locker: safe_lock: created ./log/user_state/auto-whitelist.lock.hudson.zones.apache.org.13589 - [13589] dbg: locker: safe_lock: trying to get lock on ./log/user_state/auto-whitelist with 0 retries - [13589] dbg: locker: safe_lock: link to ./log/user_state/auto-whitelist.lock: link ok - [13589] dbg: auto-whitelist: tie-ing to DB file of type SDBM_File R/W in ./log/user_state/auto-whitelist - [13589] dbg: auto-whitelist: db-based foo|ip=none scores 0/0 - [13589] dbg: auto-whitelist: AWL active, pre-score: 6.947, autolearn score: 6.947, mean: undef, IP: undef - [13589] dbg: auto-whitelist: add_score: new count: 1, new totscore: 6.947 - [13589] dbg: auto-whitelist: DB addr list: untie-ing and unlocking - [13589] dbg: auto-whitelist: DB addr list: file locked, breaking lock - [13589] dbg: locker: safe_unlock: unlink ./log/user_state/auto-whitelist.lock - [13589] dbg: auto-whitelist: post auto-whitelist score: 6.947 - [13589] dbg: rules: running body tests; score so far=6.947 - [13589] dbg: rules: compiled body tests - [13589] dbg: rules: running uri tests; score so far=6.947 - [13589] dbg: rules: compiled uri tests - [13589] dbg: rules: running rawbody tests; score so far=6.947 - [13589] dbg: rules: compiled rawbody tests - [13589] dbg: rules: running full tests; score so far=6.947 - [13589] dbg: rules: compiled full tests - [13589] dbg: rules: running meta tests; score so far=6.947 - [13589] dbg: rules: compiled meta tests - [13589] dbg: plugin: Mail::SpamAssassin::Plugin::AutoLearnThreshold=HASH(0x8d0d26c) implements 'autolearn_discriminator', priority 0 - [13589] dbg: learn: auto-learn: currently using scoreset 0 - [13589] dbg: learn: auto-learn: message score: 6.947, computed score for autolearn: 6.949 - [13589] dbg: learn: auto-learn? ham=0.1, spam=12, body-points=6.949, head-points=6.949, learned-points=0 - [13589] dbg: learn: auto-learn? no: inside auto-learn thresholds, not considered ham or spam - [13589] dbg: check: is spam? score=6.947 required=5 - [13589] dbg: check: tests=FH_FROMEML_NOTLD,INVALID_MSGID,MIME_HEADER_CTYPE_ONLY,MISSING_DATE,MSGID_SHORT,NO_RECEIVED,NO_RELAYS,TO_MALFORMED,T_TVD_MIME_NO_HEADERS - [13589] dbg: check: subtests=__BOUNCE_CTYPE,__CT,__CTYPE_HAS_BOUNDARY,__GATED_THROUGH_RCVD_REMOVER,__HAS_MSGID,__HAS_SUBJECT,__MISSING_REF,__MISSING_REPLY,__MISSING_THREAD,__MSOE_MID_WRONG_CASE,__NONEMPTY_BODY,__TOCC_EXISTS,__TVD_BODY,__UNUSABLE_MSGID - [13589] dbg: timing: total 2855 ms - init: 896 (31.4%), parse: 67 (2.4%), extract_message_metadata: 1255 (44.0%), get_uri_detail_list: 0.25 (0.0%), tests_pri_-1000: 4 (0.1%), tests_pri_-950: 1.54 (0.1%), tests_pri_-900: 1.85 (0.1%), tests_pri_-400: 1.37 (0.0%), tests_pri_0: 565 (19.8%), tests_pri_500: 53 (1.8%), tests_pri_1000: 8 (0.3%), check_awl: 6 (0.2%) - [13589] dbg: plugin: Mail::SpamAssassin::Plugin::MIMEHeader=HASH(0x8d0e8f8) implements 'finish_tests', priority 0 - [13589] dbg: plugin: Mail::SpamAssassin::Plugin::Check=HASH(0x8ffada4) implements 'finish_tests', priority 0 - - ok 2 - Checking headerfound - ok 3 - ok 4 - /export/home/jm/tools/perl586/bin/perl -T -w ../spamassassin.raw -C log/test_rules_copy --siteconfigpath log/localrules.tmp -p log/test_default.cf -D -L -t < log/recurse.eml - # [13593] dbg: logger: adding facilities: all - [13593] dbg: logger: logging level is DBG - [13593] dbg: generic: SpamAssassin version 3.3.0-r613124 - [13593] dbg: config: timing enabled - [13593] dbg: config: score set 0 chosen. - [13593] dbg: util: running in taint mode? yes - [13593] dbg: util: taint mode: deleting unsafe environment variables, resetting PATH - [13593] dbg: util: PATH included '/export/home/jm/tools/perl586/bin', keeping - [13593] dbg: util: PATH included '/usr/ccs/bin', keeping - [13593] dbg: util: PATH included '/sbin', keeping - [13593] dbg: util: PATH included '/usr/sbin', keeping - [13593] dbg: util: PATH included '/etc', keeping - [13593] dbg: util: PATH included '/usr/etc', which doesn't exist, dropping - [13593] dbg: util: PATH included '/usr/local/bin', which doesn't exist, dropping - [13593] dbg: util: PATH included '/usr/bin/mh', which doesn't exist, dropping - [13593] dbg: util: PATH included '/export/home/jm/bin', keeping - [13593] dbg: util: PATH included '/sbin', keeping - [13593] dbg: util: PATH included '/usr/sbin', keeping - [13593] dbg: util: PATH included '/etc', keeping - [13593] dbg: util: PATH included '/usr/etc', which doesn't exist, dropping - [13593] dbg: util: PATH included '/usr/local/bin', which doesn't exist, dropping - [13593] dbg: util: PATH included '/usr/bin/mh', which doesn't exist, dropping - [13593] dbg: util: PATH included '/export/home/jm/bin', keeping - [13593] dbg: util: PATH included '/sbin', keeping - [13593] dbg: util: PATH included '/usr/sbin', keeping - [13593] dbg: util: PATH included '/etc', keeping - [13593] dbg: util: PATH included '/usr/etc', which doesn't exist, dropping - [13593] dbg: util: PATH included '/usr/local/bin', which doesn't exist, dropping - [13593] dbg: util: PATH included '/usr/bin/mh', which doesn't exist, dropping - [13593] dbg: util: PATH included '/usr/bin', keeping - [13593] dbg: util: PATH included '/opt/sfw/bin', keeping - [13593] dbg: util: final PATH set to: /export/home/jm/tools/perl586/bin:/usr/ccs/bin:/sbin:/usr/sbin:/etc:/export/home/jm/bin:/sbin:/usr/sbin:/etc:/export/home/jm/bin:/sbin:/usr/sbin:/etc:/usr/bin:/opt/sfw/bin - [13593] dbg: dns: no ipv6 - [13593] dbg: dns: is Net::DNS::Resolver available? yes - [13593] dbg: dns: Net::DNS version: 0.49 - [13593] dbg: config: using "log/localrules.tmp" for site rules pre files - [13593] dbg: config: read file log/localrules.tmp/init.pre - [13593] dbg: config: read file log/localrules.tmp/svn_only.pre - [13593] dbg: config: read file log/localrules.tmp/v310.pre - [13593] dbg: config: read file log/localrules.tmp/v312.pre - [13593] dbg: config: read file log/localrules.tmp/v320.pre - [13593] dbg: config: using "log/test_rules_copy" for sys rules pre files - [13593] dbg: config: read file log/test_rules_copy/init.pre - [13593] dbg: config: read file log/test_rules_copy/svn_only.pre - [13593] dbg: config: read file log/test_rules_copy/v310.pre - [13593] dbg: config: read file log/test_rules_copy/v312.pre - [13593] dbg: config: read file log/test_rules_copy/v320.pre - [13593] dbg: config: using "log/test_rules_copy" for default rules dir - [13593] dbg: config: read file log/test_rules_copy/01_test_rules.cf - [13593] dbg: config: read file log/test_rules_copy/10_default_prefs.cf - [13593] dbg: config: read file log/test_rules_copy/20_advance_fee.cf - [13593] dbg: config: read file log/test_rules_copy/20_body_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_compensate.cf - [13593] dbg: config: read file log/test_rules_copy/20_dnsbl_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_drugs.cf - [13593] dbg: config: read file log/test_rules_copy/20_dynrdns.cf - [13593] dbg: config: read file log/test_rules_copy/20_fake_helo_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_head_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_html_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_imageinfo.cf - [13593] dbg: config: read file log/test_rules_copy/20_meta_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_net_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_phrases.cf - [13593] dbg: config: read file log/test_rules_copy/20_porn.cf - [13593] dbg: config: read file log/test_rules_copy/20_ratware.cf - [13593] dbg: config: read file log/test_rules_copy/20_uri_tests.cf - [13593] dbg: config: read file log/test_rules_copy/20_vbounce.cf - [13593] dbg: config: read file log/test_rules_copy/23_bayes.cf - [13593] dbg: config: read file log/test_rules_copy/25_accessdb.cf - [13593] dbg: config: read file log/test_rules_copy/25_antivirus.cf - [13593] dbg: config: read file log/test_rules_copy/25_asn.cf - [13593] dbg: config: read file log/test_rules_copy/25_dcc.cf - [13593] dbg: config: read file log/test_rules_copy/25_dkim.cf - [13593] dbg: config: read file log/test_rules_copy/25_domainkeys.cf - [13593] dbg: config: read file log/test_rules_copy/25_hashcash.cf - [13593] dbg: config: read file log/test_rules_copy/25_pyzor.cf - [13593] dbg: config: read file log/test_rules_copy/25_razor2.cf - [13593] dbg: config: read file log/test_rules_copy/25_replace.cf - [13593] dbg: config: read file log/test_rules_copy/25_spf.cf - [13593] dbg: config: read file log/test_rules_copy/25_textcat.cf - [13593] dbg: config: read file log/test_rules_copy/25_uribl.cf - [13593] dbg: config: read file log/test_rules_copy/30_text_de.cf - [13593] dbg: config: read file log/test_rules_copy/30_text_fr.cf - [13593] dbg: config: read file log/test_rules_copy/30_text_it.cf - [13593] dbg: config: read file log/test_rules_copy/30_text_nl.cf - [13593] dbg: config: read file log/test_rules_copy/30_text_pl.cf - [13593] dbg: config: read file log/test_rules_copy/30_text_pt_br.cf - [13593] dbg: config: read file log/test_rules_copy/50_scores.cf - [13593] dbg: config: read file log/test_rules_copy/60_awl.cf - [13593] dbg: config: read file log/test_rules_copy/60_shortcircuit.cf - [13593] dbg: config: read file log/test_rules_copy/60_whitelist.cf - [13593] dbg: config: read file log/test_rules_copy/60_whitelist_dk.cf - [13593] dbg: config: read file log/test_rules_copy/60_whitelist_dkim.cf - [13593] dbg: config: read file log/test_rules_copy/60_whitelist_spf.cf - [13593] dbg: config: read file log/test_rules_copy/60_whitelist_subject.cf - [13593] dbg: config: read file log/test_rules_copy/70_sandbox.cf - [13593] dbg: config: read file log/test_rules_copy/72_active.cf - [13593] dbg: config: read file log/test_rules_copy/99_test_default.cf - [13593] dbg: config: read file log/test_rules_copy/local.cf - [13593] dbg: config: read file log/test_rules_copy/regression_tests.cf - [13593] dbg: config: using "log/localrules.tmp" for site rules dir - [13593] dbg: config: using "/export/home/hudson/.spamassassin" for user state dir - [13593] dbg: config: using "log/test_default.cf" for user prefs file - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::URIDNSBL from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::Hashcash from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::SPF from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::Pyzor from @INC - [13593] dbg: pyzor: local tests only, disabling Pyzor - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::Razor2 from @INC - [13593] dbg: razor2: local tests only, skipping Razor - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::SpamCop from @INC - [13593] dbg: reporter: local tests only, disabling SpamCop - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::AWL from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::AutoLearnThreshold from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::WhiteListSubject from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::MIMEHeader from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::ReplaceTags from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::Check from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::HTTPSMismatch from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::URIDetail from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::Bayes from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::BodyEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::DNSEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::HTMLEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::HeaderEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::MIMEEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::RelayEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::URIEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::WLBLEval from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::VBounce from @INC - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::ImageInfo from @INC - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::URIDNSBL, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Hashcash, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::SPF, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Pyzor, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Razor2, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::SpamCop, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::AWL, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::AutoLearnThreshold, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::WhiteListSubject, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::MIMEHeader, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::ReplaceTags, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Check, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::HTTPSMismatch, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::URIDetail, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Bayes, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::BodyEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::DNSEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::HTMLEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::HeaderEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::MIMEEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::RelayEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::URIEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::WLBLEval, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::VBounce, already registered - [13593] dbg: plugin: did not register Mail::SpamAssassin::Plugin::ImageInfo, already registered - [13593] dbg: config: fixed relative path: log/test_rules_copy/sandbox-hstern.pm - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::Sandbox::hstern from /zonestorage/hudson/home/hudson/hudson/jobs/SpamAssassin-trunk/workspace/sa_trunk/t/log/test_rules_copy/sandbox-hstern.pm - [13593] dbg: config: fixed relative path: log/test_rules_copy/sandbox-felicity.pm - [13593] dbg: plugin: loading Mail::SpamAssassin::Plugin::Sandbox::felicity from /zonestorage/hudson/home/hudson/hudson/jobs/SpamAssassin-trunk/workspace/sa_trunk/t/log/test_rules_copy/sandbox-felicity.pm - [13593] dbg: rules: __MO_OL_9B90B merged duplicates: __MO_OL_C65FA - [13593] dbg: rules: FORGED_YAHOO_RCVD merged duplicates: TEST_FORGED_YAHOO_RCVD - [13593] dbg: rules: __XM_OL_22B61 merged duplicates: __XM_OL_A842E - [13593] dbg: rules: __MO_OL_07794 merged duplicates: __MO_OL_8627E __MO_OL_F3B05 - [13593] dbg: rules: HS_INDEX_PARAM merged duplicates: T_HS_INDEX_PARAM_5 - [13593] dbg: rules: __XM_OL_07794 merged duplicates: __XM_OL_25340 __XM_OL_3857F __XM_OL_4F240 __XM_OL_58CB5 __XM_OL_6554A __XM_OL_812FF __XM_OL_C65FA __XM_OL_CF0C0 __XM_OL_F475E __XM_OL_F6D01 - [13593] dbg: rules: FH_MSGID_01C67 merged duplicates: __MSGID_VGA - [13593] dbg: rules: FS_NEW_SOFT_UPLOAD merged duplicates: HS_SUBJ_NEW_SOFTWARE - [13593] dbg: rules: __FH_HAS_XMSMAIL merged duplicates: __HAS_MSMAIL_PRI - [13593] dbg: rules: __MO_OL_91287 merged duplicates: __MO_OL_B30D1 __MO_OL_CF0C0 - [13593] dbg: rules: KAM_STOCKOTC merged duplicates: KAM_STOCKTIP15 KAM_STOCKTIP20 KAM_STOCKTIP21 KAM_STOCKTIP4 KAM_STOCKTIP6 - [13593] dbg: rules: __XM_OL_015D5 merged duplicates: __XM_OL_4BF4C __XM_OL_4EEDB __XM_OL_5B79A __XM_OL_9B90B __XM_OL_ADFF7 __XM_OL_B30D1 __XM_OL_B4B40 __XM_OL_BC7E6 __XM_OL_F3B05 __XM_OL_FF5C8 - [13593] dbg: rules: __MO_OL_015D5 merged duplicates: __MO_OL_6554A - [13593] dbg: rules: __MO_OL_22B61 merged duplicates: __MO_OL_4F240 __MO_OL_ADFF7 - [13593] dbg: rules: __MO_OL_812FF merged duplicates: __MO_OL_BC7E6 - [13593] dbg: rules: EXCUSE_4 merged duplicates: TEST_EXCUSE_4 - [13593] dbg: rules: __MO_OL_25340 merged duplicates: __MO_OL_4EEDB __MO_OL_7533E - [13593] dbg: rules: __MO_OL_58CB5 merged duplicates: __MO_OL_B4B40 - [13593] dbg: rules: __DOS_HAS_ANY_URI merged duplicates: __HAS_ANY_URI - [13593] dbg: rules: TEST_ENDSNUMS merged duplicates: __FROM_ENDS_IN_NUMS - [13593] dbg: rules: NORMAL_HTTP_TO_IP merged duplicates: TEST_NORMAL_HTTP_TO_IP - [13593] dbg: rules: __THEBAT_MUA merged duplicates: __XM_THEBAT - [13593] dbg: rules: __MO_OL_72641 merged duplicates: __MO_OL_A842E - [13593] dbg: rules: __MO_OL_4BF4C merged duplicates: __MO_OL_F6D01 - [13593] dbg: rules: __MO_OL_F475E merged duplicates: __MO_OL_FF5C8 - [13593] dbg: conf: finish parsing - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::ReplaceTags=HASH(0x8c601b8) implements 'finish_parsing_end', priority 0 - [13593] dbg: replacetags: replacing tags - [13593] dbg: replacetags: done replacing tags - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::Bayes=HASH(0x8ff61c8) implements 'learner_new', priority 0 - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::Bayes=HASH(0x8ff61c8) implements 'learner_is_scan_available', priority 0 - [13593] dbg: bayes: DB_File module not installed, cannot use bayes - [13593] dbg: config: score set 0 chosen. - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::DNSEval=HASH(0x92a09fc) implements 'check_start', priority 0 - [13593] dbg: bayes: DB_File module not installed, cannot use bayes - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::Check=HASH(0x8fea500) implements 'check_main', priority 0 - [13593] dbg: conf: trusted_networks are not configured; it is recommended that you configure trusted_networks manually - [13593] dbg: metadata: X-Spam-Relays-Trusted: - [13593] dbg: metadata: X-Spam-Relays-Untrusted: - [13593] dbg: metadata: X-Spam-Relays-Internal: - [13593] dbg: metadata: X-Spam-Relays-External: - [13593] dbg: message: ---- MIME PARSER START ---- - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAXC - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAXC - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAXC - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAXB - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAXB - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAXB - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAXA - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAXA - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAXA - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAWZ - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAWZ - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAWZ - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAWY - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAWY - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAWY - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAWX - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAWX - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAWX - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAWW - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAWW - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAWW - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAWV - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAWV - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAWV - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAWU - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAWU - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAWU - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAWT - [13593] dbg: message: found part of type text/plain, boundary: AAAAAAAAAAAAAAAAAWT - [13593] dbg: message: added part, type: text/plain - [13593] dbg: message: found part of type message/rfc822, boundary: AAAAAAAAAAAAAAAAAWT - [13593] dbg: message: added part, type: message/rfc822 - [13593] dbg: message: parsing normal part - [13593] dbg: message: parsing normal part - [13593] dbg: message: no encoding detected - [13593] dbg: message: main message type: multipart/mixed - [13593] dbg: message: added part, type: multipart/mixed - [13593] dbg: message: parsing normal part - [13593] dbg: message: ---- MIME PARSER END ---- - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: message: decoding other encoding type (7bit), ignoring - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x8c56824) implements 'parsed_metadata', priority 0 - [13593] dbg: dns: is_dns_available() last checked 1206609633.0 seconds ago; re-checking - [13593] dbg: dns: is DNS available? 0 - [13593] dbg: rules: local tests only, ignoring RBL eval - [13593] dbg: check: running tests for priority: -1000 - [13593] dbg: rules: running head tests; score so far=0 - [13593] dbg: rules: compiled head tests - [13593] dbg: rules: running head_eval tests; score so far=0 - [13593] dbg: eval: all '*From' addrs: foo - [13593] dbg: eval: all '*To' addrs: - [13593] dbg: rules: running body tests; score so far=0 - [13593] dbg: rules: compiled body tests - [13593] dbg: rules: running uri tests; score so far=0 - [13593] dbg: rules: compiled uri tests - [13593] dbg: rules: running rawbody tests; score so far=0 - [13593] dbg: rules: compiled rawbody tests - [13593] dbg: rules: running full tests; score so far=0 - [13593] dbg: rules: compiled full tests - [13593] dbg: rules: running meta tests; score so far=0 - [13593] dbg: rules: compiled meta tests - [13593] dbg: check: running tests for priority: -950 - [13593] dbg: rules: running head tests; score so far=0 - [13593] dbg: rules: compiled head tests - [13593] dbg: rules: running head_eval tests; score so far=0 - [13593] dbg: rules: running body tests; score so far=0 - [13593] dbg: rules: compiled body tests - [13593] dbg: rules: running uri tests; score so far=0 - [13593] dbg: rules: compiled uri tests - [13593] dbg: rules: running rawbody tests; score so far=0 - [13593] dbg: rules: compiled rawbody tests - [13593] dbg: rules: running full tests; score so far=0 - [13593] dbg: rules: compiled full tests - [13593] dbg: rules: running meta tests; score so far=0 - [13593] dbg: rules: compiled meta tests - [13593] dbg: check: running tests for priority: -900 - [13593] dbg: rules: running head tests; score so far=0 - [13593] dbg: rules: compiled head tests - [13593] dbg: rules: running head_eval tests; score so far=0 - [13593] dbg: rules: running body tests; score so far=0 - [13593] dbg: rules: compiled body tests - [13593] dbg: rules: running uri tests; score so far=0 - [13593] dbg: rules: compiled uri tests - [13593] dbg: rules: running rawbody tests; score so far=0 - [13593] dbg: rules: compiled rawbody tests - [13593] dbg: rules: running full tests; score so far=0 - [13593] dbg: rules: compiled full tests - [13593] dbg: rules: running meta tests; score so far=0 - [13593] dbg: rules: compiled meta tests - [13593] dbg: check: running tests for priority: -400 - [13593] dbg: rules: running head tests; score so far=0 - [13593] dbg: rules: compiled head tests - [13593] dbg: rules: running body tests; score so far=0 - [13593] dbg: rules: compiled body tests - [13593] dbg: rules: running uri tests; score so far=0 - [13593] dbg: rules: compiled uri tests - [13593] dbg: rules: running body_eval tests; score so far=0 - [13593] dbg: rules: running rawbody tests; score so far=0 - [13593] dbg: rules: compiled rawbody tests - [13593] dbg: rules: running full tests; score so far=0 - [13593] dbg: rules: compiled full tests - [13593] dbg: rules: running meta tests; score so far=0 - [13593] dbg: rules: compiled meta tests - [13593] dbg: check: running tests for priority: 0 - [13593] dbg: rules: running head tests; score so far=0 - [13593] dbg: rules: compiled head tests - [13593] dbg: rules: ran header rule __MISSING_THREAD ======> got hit: "UNSET" - [13593] dbg: rules: ran header rule __TVD_MIME_CT_MM ======> got hit: "multipart/mixed" - [13593] dbg: rules: ran header rule __CTYPE_HAS_BOUNDARY ======> got hit: "boundary" - [13593] dbg: rules: ran header rule __CT ======> got hit: "m" - [13593] dbg: rules: ran header rule __MISSING_REF ======> got hit: "UNSET" - [13593] dbg: rules: ran header rule __MISSING_REPLY ======> got hit: "UNSET" - [13593] dbg: rules: ran header rule TO_MALFORMED ======> got hit: "negative match" - [13593] dbg: rules: ran header rule __TOCC_EXISTS ======> got hit: "b" - [13593] dbg: rules: ran header rule __MSOE_MID_WRONG_CASE ======> got hit: " - [13593] dbg: rules: Message-Id: " - [13593] dbg: rules: ran header rule FH_FROMEML_NOTLD ======> got hit: "negative match" - [13593] dbg: rules: ran header rule MISSING_DATE ======> got hit: "UNSET" - [13593] dbg: rules: ran header rule __HAS_MSGID ======> got hit: "<" - [13593] dbg: rules: ran header rule MSGID_SHORT ======> got hit: "" - [13593] dbg: rules: ran header rule __HAS_SUBJECT ======> got hit: "t" - [13593] dbg: rules: running head_eval tests; score so far=2.901 - [13593] dbg: rules: ran eval rule NO_RELAYS ======> got hit (1) - [13593] dbg: rules: ran eval rule __GATED_THROUGH_RCVD_REMOVER ======> got hit (1) - [13593] dbg: spf: cannot get Envelope-From, cannot use SPF - [13593] dbg: spf: def_spf_whitelist_from: could not find useable envelope sender - [13593] dbg: spf: spf_whitelist_from: could not find useable envelope sender - [13593] dbg: rules: running body tests; score so far=2.9 - [13593] dbg: rules: compiled body tests - [13593] dbg: rules: ran body rule __NONEMPTY_BODY ======> got hit: "t" - [13593] dbg: rules: running uri tests; score so far=2.9 - [13593] dbg: rules: compiled uri tests - [13593] dbg: rules: running body_eval tests; score so far=2.9 - [13593] dbg: eval: stock info total: 0 - [13593] dbg: rules: ran eval rule __TVD_MIME_ATT_TP ======> got hit (1) - [13593] dbg: rules: running rawbody tests; score so far=2.9 - [13593] dbg: rules: compiled rawbody tests - [13593] dbg: rules: running rawbody_eval tests; score so far=2.9 - [13593] dbg: rules: running full tests; score so far=2.9 - [13593] dbg: rules: compiled full tests - [13593] dbg: rules: running full_eval tests; score so far=2.9 - [13593] dbg: rules: running meta tests; score so far=2.9 - [13593] dbg: rules: compiled meta tests - [13593] dbg: check: running tests for priority: 500 - [13593] dbg: dns: harvest_dnsbl_queries - [13593] dbg: rules: running head tests; score so far=2.9 - [13593] dbg: rules: compiled head tests - [13593] dbg: rules: running body tests; score so far=2.9 - [13593] dbg: rules: compiled body tests - [13593] dbg: rules: running uri tests; score so far=2.9 - [13593] dbg: rules: compiled uri tests - [13593] dbg: rules: running rawbody tests; score so far=2.9 - [13593] dbg: rules: compiled rawbody tests - [13593] dbg: rules: running full tests; score so far=2.9 - [13593] dbg: rules: compiled full tests - [13593] dbg: rules: running meta tests; score so far=2.9 - [13593] dbg: rules: meta test DIGEST_MULTIPLE has undefined dependency 'DCC_CHECK' - [13593] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A' - [13593] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A2' - [13593] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A' - [13593] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A2' - [13593] info: rules: meta test T_TVD_PH_BODY_META_ALL has dependency 'TVD_PH_BODY_ACCOUNTS_PRE' with a zero score - [13593] dbg: rules: compiled meta tests - [13593] dbg: check: running tests for priority: 1000 - [13593] dbg: rules: running head tests; score so far=6.937 - [13593] dbg: rules: compiled head tests - [13593] dbg: rules: running head_eval tests; score so far=6.937 - [13593] dbg: locker: safe_lock: created ./log/user_state/auto-whitelist.lock.hudson.zones.apache.org.13593 - [13593] dbg: locker: safe_lock: trying to get lock on ./log/user_state/auto-whitelist with 0 retries - [13593] dbg: locker: safe_lock: link to ./log/user_state/auto-whitelist.lock: link ok - [13593] dbg: auto-whitelist: tie-ing to DB file of type SDBM_File R/W in ./log/user_state/auto-whitelist - [13593] dbg: auto-whitelist: db-based foo|ip=none scores 1/6.947 - [13593] dbg: auto-whitelist: AWL active, pre-score: 6.937, autolearn score: 6.937, mean: 6.947, IP: undef - [13593] dbg: auto-whitelist: add_score: new count: 2, new totscore: 13.884 - [13593] dbg: auto-whitelist: DB addr list: untie-ing and unlocking - [13593] dbg: auto-whitelist: DB addr list: file locked, breaking lock - [13593] dbg: locker: safe_unlock: unlink ./log/user_state/auto-whitelist.lock - [13593] dbg: auto-whitelist: post auto-whitelist score: 6.942 - [13593] dbg: rules: running body tests; score so far=6.942 - [13593] dbg: rules: compiled body tests - [13593] dbg: rules: running uri tests; score so far=6.942 - [13593] dbg: rules: compiled uri tests - [13593] dbg: rules: running rawbody tests; score so far=6.942 - [13593] dbg: rules: compiled rawbody tests - [13593] dbg: rules: running full tests; score so far=6.942 - [13593] dbg: rules: compiled full tests - [13593] dbg: rules: running meta tests; score so far=6.942 - [13593] dbg: rules: compiled meta tests - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::AutoLearnThreshold=HASH(0x8c5d9b0) implements 'autolearn_discriminator', priority 0 - [13593] dbg: learn: auto-learn: currently using scoreset 0 - [13593] dbg: learn: auto-learn: message score: 6.942, computed score for autolearn: 6.939 - [13593] dbg: learn: auto-learn? ham=0.1, spam=12, body-points=6.939, head-points=6.939, learned-points=0 - [13593] dbg: learn: auto-learn? no: inside auto-learn thresholds, not considered ham or spam - [13593] dbg: check: is spam? score=6.942 required=5 - [13593] dbg: check: tests=AWL,FH_FROMEML_NOTLD,INVALID_MSGID,MIME_HEADER_CTYPE_ONLY,MISSING_DATE,MSGID_SHORT,NO_RECEIVED,NO_RELAYS,TO_MALFORMED - [13593] dbg: check: subtests=__CT,__CTYPE_HAS_BOUNDARY,__GATED_THROUGH_RCVD_REMOVER,__HAS_MSGID,__HAS_SUBJECT,__MISSING_REF,__MISSING_REPLY,__MISSING_THREAD,__MSOE_MID_WRONG_CASE,__NONEMPTY_BODY,__TOCC_EXISTS,__TVD_MIME_ATT_TP,__TVD_MIME_CT_MM,__UNUSABLE_MSGID - [13593] dbg: timing: total 2704 ms - init: 893 (33.0%), parse: 62 (2.3%), extract_message_metadata: 1131 (41.8%), get_uri_detail_list: 0.15 (0.0%), tests_pri_-1000: 4 (0.1%), tests_pri_-950: 1.53 (0.1%), tests_pri_-900: 1.86 (0.1%), tests_pri_-400: 1.35 (0.0%), tests_pri_0: 546 (20.2%), tests_pri_500: 52 (1.9%), tests_pri_1000: 8 (0.3%), check_awl: 6 (0.2%) - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::MIMEHeader=HASH(0x8c5f03c) implements 'finish_tests', priority 0 - [13593] dbg: plugin: Mail::SpamAssassin::Plugin::Check=HASH(0x8fea500) implements 'finish_tests', priority 0 - - ok 5 - Checking headerfound - ok 6 - ok 7 - /export/home/jm/tools/perl586/bin/perl -T -w ../spamassassin.raw -C log/test_rules_copy --siteconfigpath log/localrules.tmp -p log/test_default.cf -D -L -t < log/recurse.eml - # [13597] dbg: logger: adding facilities: all - [13597] dbg: logger: logging level is DBG - [13597] dbg: generic: SpamAssassin version 3.3.0-r613124 - [13597] dbg: config: timing enabled - [13597] dbg: config: score set 0 chosen. - [13597] dbg: util: running in taint mode? yes - [13597] dbg: util: taint mode: deleting unsafe environment variables, resetting PATH - [13597] dbg: util: PATH included '/export/home/jm/tools/perl586/bin', keeping - [13597] dbg: util: PATH included '/usr/ccs/bin', keeping - [13597] dbg: util: PATH included '/sbin', keeping - [13597] dbg: util: PATH included '/usr/sbin', keeping - [13597] dbg: util: PATH included '/etc', keeping - [13597] dbg: util: PATH included '/usr/etc', which doesn't exist, dropping - [13597] dbg: util: PATH included '/usr/local/bin', which doesn't exist, dropping - [13597] dbg: util: PATH included '/usr/bin/mh', which doesn't exist, dropping - [13597] dbg: util: PATH included '/export/home/jm/bin', keeping - [13597] dbg: util: PATH included '/sbin', keeping - [13597] dbg: util: PATH included '/usr/sbin', keeping - [13597] dbg: util: PATH included '/etc', keeping - [13597] dbg: util: PATH included '/usr/etc', which doesn't exist, dropping - [13597] dbg: util: PATH included '/usr/local/bin', which doesn't exist, dropping - [13597] dbg: util: PATH included '/usr/bin/mh', which doesn't exist, dropping - [13597] dbg: util: PATH included '/export/home/jm/bin', keeping - [13597] dbg: util: PATH included '/sbin', keeping - [13597] dbg: util: PATH included '/usr/sbin', keeping - [13597] dbg: util: PATH included '/etc', keeping - [13597] dbg: util: PATH included '/usr/etc', which doesn't exist, dropping - [13597] dbg: util: PATH included '/usr/local/bin', which doesn't exist, dropping - [13597] dbg: util: PATH included '/usr/bin/mh', which doesn't exist, dropping - [13597] dbg: util: PATH included '/usr/bin', keeping - [13597] dbg: util: PATH included '/opt/sfw/bin', keeping - [13597] dbg: util: final PATH set to: /export/home/jm/tools/perl586/bin:/usr/ccs/bin:/sbin:/usr/sbin:/etc:/export/home/jm/bin:/sbin:/usr/sbin:/etc:/export/home/jm/bin:/sbin:/usr/sbin:/etc:/usr/bin:/opt/sfw/bin - [13597] dbg: dns: no ipv6 - [13597] dbg: dns: is Net::DNS::Resolver available? yes - [13597] dbg: dns: Net::DNS version: 0.49 - [13597] dbg: config: using "log/localrules.tmp" for site rules pre files - [13597] dbg: config: read file log/localrules.tmp/init.pre - [13597] dbg: config: read file log/localrules.tmp/svn_only.pre - [13597] dbg: config: read file log/localrules.tmp/v310.pre - [13597] dbg: config: read file log/localrules.tmp/v312.pre - [13597] dbg: config: read file log/localrules.tmp/v320.pre - [13597] dbg: config: using "log/test_rules_copy" for sys rules pre files - [13597] dbg: config: read file log/test_rules_copy/init.pre - [13597] dbg: config: read file log/test_rules_copy/svn_only.pre - [13597] dbg: config: read file log/test_rules_copy/v310.pre - [13597] dbg: config: read file log/test_rules_copy/v312.pre - [13597] dbg: config: read file log/test_rules_copy/v320.pre - [13597] dbg: config: using "log/test_rules_copy" for default rules dir - [13597] dbg: config: read file log/test_rules_copy/01_test_rules.cf - [13597] dbg: config: read file log/test_rules_copy/10_default_prefs.cf - [13597] dbg: config: read file log/test_rules_copy/20_advance_fee.cf - [13597] dbg: config: read file log/test_rules_copy/20_body_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_compensate.cf - [13597] dbg: config: read file log/test_rules_copy/20_dnsbl_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_drugs.cf - [13597] dbg: config: read file log/test_rules_copy/20_dynrdns.cf - [13597] dbg: config: read file log/test_rules_copy/20_fake_helo_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_head_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_html_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_imageinfo.cf - [13597] dbg: config: read file log/test_rules_copy/20_meta_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_net_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_phrases.cf - [13597] dbg: config: read file log/test_rules_copy/20_porn.cf - [13597] dbg: config: read file log/test_rules_copy/20_ratware.cf - [13597] dbg: config: read file log/test_rules_copy/20_uri_tests.cf - [13597] dbg: config: read file log/test_rules_copy/20_vbounce.cf - [13597] dbg: config: read file log/test_rules_copy/23_bayes.cf - [13597] dbg: config: read file log/test_rules_copy/25_accessdb.cf - [13597] dbg: config: read file log/test_rules_copy/25_antivirus.cf - [13597] dbg: config: read file log/test_rules_copy/25_asn.cf - [13597] dbg: config: read file log/test_rules_copy/25_dcc.cf - [13597] dbg: config: read file log/test_rules_copy/25_dkim.cf - [13597] dbg: config: read file log/test_rules_copy/25_domainkeys.cf - [13597] dbg: config: read file log/test_rules_copy/25_hashcash.cf - [13597] dbg: config: read file log/test_rules_copy/25_pyzor.cf - [13597] dbg: config: read file log/test_rules_copy/25_razor2.cf - [13597] dbg: config: read file log/test_rules_copy/25_replace.cf - [13597] dbg: config: read file log/test_rules_copy/25_spf.cf - [13597] dbg: config: read file log/test_rules_copy/25_textcat.cf - [13597] dbg: config: read file log/test_rules_copy/25_uribl.cf - [13597] dbg: config: read file log/test_rules_copy/30_text_de.cf - [13597] dbg: config: read file log/test_rules_copy/30_text_fr.cf - [13597] dbg: config: read file log/test_rules_copy/30_text_it.cf - [13597] dbg: config: read file log/test_rules_copy/30_text_nl.cf - [13597] dbg: config: read file log/test_rules_copy/30_text_pl.cf - [13597] dbg: config: read file log/test_rules_copy/30_text_pt_br.cf - [13597] dbg: config: read file log/test_rules_copy/50_scores.cf - [13597] dbg: config: read file log/test_rules_copy/60_awl.cf - [13597] dbg: config: read file log/test_rules_copy/60_shortcircuit.cf - [13597] dbg: config: read file log/test_rules_copy/60_whitelist.cf - [13597] dbg: config: read file log/test_rules_copy/60_whitelist_dk.cf - [13597] dbg: config: read file log/test_rules_copy/60_whitelist_dkim.cf - [13597] dbg: config: read file log/test_rules_copy/60_whitelist_spf.cf - [13597] dbg: config: read file log/test_rules_copy/60_whitelist_subject.cf - [13597] dbg: config: read file log/test_rules_copy/70_sandbox.cf - [13597] dbg: config: read file log/test_rules_copy/72_active.cf - [13597] dbg: config: read file log/test_rules_copy/99_test_default.cf - [13597] dbg: config: read file log/test_rules_copy/local.cf - [13597] dbg: config: read file log/test_rules_copy/regression_tests.cf - [13597] dbg: config: using "log/localrules.tmp" for site rules dir - [13597] dbg: config: using "/export/home/hudson/.spamassassin" for user state dir - [13597] dbg: config: using "log/test_default.cf" for user prefs file - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::URIDNSBL from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::Hashcash from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::SPF from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::Pyzor from @INC - [13597] dbg: pyzor: local tests only, disabling Pyzor - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::Razor2 from @INC - [13597] dbg: razor2: local tests only, skipping Razor - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::SpamCop from @INC - [13597] dbg: reporter: local tests only, disabling SpamCop - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::AWL from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::AutoLearnThreshold from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::WhiteListSubject from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::MIMEHeader from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::ReplaceTags from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::Check from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::HTTPSMismatch from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::URIDetail from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::Bayes from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::BodyEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::DNSEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::HTMLEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::HeaderEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::MIMEEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::RelayEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::URIEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::WLBLEval from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::VBounce from @INC - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::ImageInfo from @INC - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::URIDNSBL, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Hashcash, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::SPF, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Pyzor, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Razor2, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::SpamCop, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::AWL, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::AutoLearnThreshold, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::WhiteListSubject, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::MIMEHeader, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::ReplaceTags, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Check, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::HTTPSMismatch, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::URIDetail, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::Bayes, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::BodyEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::DNSEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::HTMLEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::HeaderEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::MIMEEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::RelayEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::URIEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::WLBLEval, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::VBounce, already registered - [13597] dbg: plugin: did not register Mail::SpamAssassin::Plugin::ImageInfo, already registered - [13597] dbg: config: fixed relative path: log/test_rules_copy/sandbox-hstern.pm - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::Sandbox::hstern from /zonestorage/hudson/home/hudson/hudson/jobs/SpamAssassin-trunk/workspace/sa_trunk/t/log/test_rules_copy/sandbox-hstern.pm - [13597] dbg: config: fixed relative path: log/test_rules_copy/sandbox-felicity.pm - [13597] dbg: plugin: loading Mail::SpamAssassin::Plugin::Sandbox::felicity from /zonestorage/hudson/home/hudson/hudson/jobs/SpamAssassin-trunk/workspace/sa_trunk/t/log/test_rules_copy/sandbox-felicity.pm - [13597] dbg: rules: __MO_OL_9B90B merged duplicates: __MO_OL_C65FA - [13597] dbg: rules: FORGED_YAHOO_RCVD merged duplicates: TEST_FORGED_YAHOO_RCVD - [13597] dbg: rules: __XM_OL_22B61 merged duplicates: __XM_OL_A842E - [13597] dbg: rules: __MO_OL_07794 merged duplicates: __MO_OL_8627E __MO_OL_F3B05 - [13597] dbg: rules: HS_INDEX_PARAM merged duplicates: T_HS_INDEX_PARAM_5 - [13597] dbg: rules: __XM_OL_07794 merged duplicates: __XM_OL_25340 __XM_OL_3857F __XM_OL_4F240 __XM_OL_58CB5 __XM_OL_6554A __XM_OL_812FF __XM_OL_C65FA __XM_OL_CF0C0 __XM_OL_F475E __XM_OL_F6D01 - [13597] dbg: rules: FH_MSGID_01C67 merged duplicates: __MSGID_VGA - [13597] dbg: rules: FS_NEW_SOFT_UPLOAD merged duplicates: HS_SUBJ_NEW_SOFTWARE - [13597] dbg: rules: __FH_HAS_XMSMAIL merged duplicates: __HAS_MSMAIL_PRI - [13597] dbg: rules: __MO_OL_91287 merged duplicates: __MO_OL_B30D1 __MO_OL_CF0C0 - [13597] dbg: rules: KAM_STOCKOTC merged duplicates: KAM_STOCKTIP15 KAM_STOCKTIP20 KAM_STOCKTIP21 KAM_STOCKTIP4 KAM_STOCKTIP6 - [13597] dbg: rules: __XM_OL_015D5 merged duplicates: __XM_OL_4BF4C __XM_OL_4EEDB __XM_OL_5B79A __XM_OL_9B90B __XM_OL_ADFF7 __XM_OL_B30D1 __XM_OL_B4B40 __XM_OL_BC7E6 __XM_OL_F3B05 __XM_OL_FF5C8 - [13597] dbg: rules: __MO_OL_015D5 merged duplicates: __MO_OL_6554A - [13597] dbg: rules: __MO_OL_22B61 merged duplicates: __MO_OL_4F240 __MO_OL_ADFF7 - [13597] dbg: rules: __MO_OL_812FF merged duplicates: __MO_OL_BC7E6 - [13597] dbg: rules: EXCUSE_4 merged duplicates: TEST_EXCUSE_4 - [13597] dbg: rules: __MO_OL_25340 merged duplicates: __MO_OL_4EEDB __MO_OL_7533E - [13597] dbg: rules: __MO_OL_58CB5 merged duplicates: __MO_OL_B4B40 - [13597] dbg: rules: __DOS_HAS_ANY_URI merged duplicates: __HAS_ANY_URI - [13597] dbg: rules: TEST_ENDSNUMS merged duplicates: __FROM_ENDS_IN_NUMS - [13597] dbg: rules: NORMAL_HTTP_TO_IP merged duplicates: TEST_NORMAL_HTTP_TO_IP - [13597] dbg: rules: __THEBAT_MUA merged duplicates: __XM_THEBAT - [13597] dbg: rules: __MO_OL_72641 merged duplicates: __MO_OL_A842E - [13597] dbg: rules: __MO_OL_4BF4C merged duplicates: __MO_OL_F6D01 - [13597] dbg: rules: __MO_OL_F475E merged duplicates: __MO_OL_FF5C8 - [13597] dbg: conf: finish parsing - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::ReplaceTags=HASH(0x8b7c854) implements 'finish_parsing_end', priority 0 - [13597] dbg: replacetags: replacing tags - [13597] dbg: replacetags: done replacing tags - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::Bayes=HASH(0x8ebfc30) implements 'learner_new', priority 0 - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::Bayes=HASH(0x8ebfc30) implements 'learner_is_scan_available', priority 0 - [13597] dbg: bayes: DB_File module not installed, cannot use bayes - [13597] dbg: config: score set 0 chosen. - [13597] dbg: message: main message type: multipart/mixed - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::DNSEval=HASH(0x916be98) implements 'check_start', priority 0 - [13597] dbg: bayes: DB_File module not installed, cannot use bayes - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::Check=HASH(0x8eb631c) implements 'check_main', priority 0 - [13597] dbg: conf: trusted_networks are not configured; it is recommended that you configure trusted_networks manually - [13597] dbg: metadata: X-Spam-Relays-Trusted: - [13597] dbg: metadata: X-Spam-Relays-Untrusted: - [13597] dbg: metadata: X-Spam-Relays-Internal: - [13597] dbg: metadata: X-Spam-Relays-External: - [13597] dbg: message: ---- MIME PARSER START ---- - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAB - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAC - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAC - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAD - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAD - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAE - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAE - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAF - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAF - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAG - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAG - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAH - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAH - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAI - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAI - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAJ - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAJ - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAK - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAK - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAL - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAL - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAM - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAM - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAN - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAN - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAO - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAO - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAP - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAP - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAQ - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAQ - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAR - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAR - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAS - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAS - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAT - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAT - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAU - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing multipart, got boundary: AAAAAAAAAAAAAAAAAAU - [13597] dbg: message: found part of type multipart/mixed, boundary: AAAAAAAAAAAAAAAAAAV - [13597] dbg: message: added part, type: multipart/mixed - [13597] dbg: message: parsing normal part - [13597] dbg: message: ---- MIME PARSER END ---- - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::URIDNSBL=HASH(0x8b23170) implements 'parsed_metadata', priority 0 - [13597] dbg: dns: is_dns_available() last checked 1206609635.0 seconds ago; re-checking - [13597] dbg: dns: is DNS available? 0 - [13597] dbg: rules: local tests only, ignoring RBL eval - [13597] dbg: check: running tests for priority: -1000 - [13597] dbg: rules: running head tests; score so far=0 - [13597] dbg: rules: compiled head tests - [13597] dbg: rules: running head_eval tests; score so far=0 - [13597] dbg: eval: all '*From' addrs: foo - [13597] dbg: eval: all '*To' addrs: - [13597] dbg: rules: running body tests; score so far=0 - [13597] dbg: rules: compiled body tests - [13597] dbg: rules: running uri tests; score so far=0 - [13597] dbg: rules: compiled uri tests - [13597] dbg: rules: running rawbody tests; score so far=0 - [13597] dbg: rules: compiled rawbody tests - [13597] dbg: rules: running full tests; score so far=0 - [13597] dbg: rules: compiled full tests - [13597] dbg: rules: running meta tests; score so far=0 - [13597] dbg: rules: compiled meta tests - [13597] dbg: check: running tests for priority: -950 - [13597] dbg: rules: running head tests; score so far=0 - [13597] dbg: rules: compiled head tests - [13597] dbg: rules: running head_eval tests; score so far=0 - [13597] dbg: rules: running body tests; score so far=0 - [13597] dbg: rules: compiled body tests - [13597] dbg: rules: running uri tests; score so far=0 - [13597] dbg: rules: compiled uri tests - [13597] dbg: rules: running rawbody tests; score so far=0 - [13597] dbg: rules: compiled rawbody tests - [13597] dbg: rules: running full tests; score so far=0 - [13597] dbg: rules: compiled full tests - [13597] dbg: rules: running meta tests; score so far=0 - [13597] dbg: rules: compiled meta tests - [13597] dbg: check: running tests for priority: -900 - [13597] dbg: rules: running head tests; score so far=0 - [13597] dbg: rules: compiled head tests - [13597] dbg: rules: running head_eval tests; score so far=0 - [13597] dbg: rules: running body tests; score so far=0 - [13597] dbg: rules: compiled body tests - [13597] dbg: rules: running uri tests; score so far=0 - [13597] dbg: rules: compiled uri tests - [13597] dbg: rules: running rawbody tests; score so far=0 - [13597] dbg: rules: compiled rawbody tests - [13597] dbg: rules: running full tests; score so far=0 - [13597] dbg: rules: compiled full tests - [13597] dbg: rules: running meta tests; score so far=0 - [13597] dbg: rules: compiled meta tests - [13597] dbg: check: running tests for priority: -400 - [13597] dbg: rules: running head tests; score so far=0 - [13597] dbg: rules: compiled head tests - [13597] dbg: rules: running body tests; score so far=0 - [13597] dbg: rules: compiled body tests - [13597] dbg: rules: running uri tests; score so far=0 - [13597] dbg: rules: compiled uri tests - [13597] dbg: rules: running body_eval tests; score so far=0 - [13597] dbg: rules: running rawbody tests; score so far=0 - [13597] dbg: rules: compiled rawbody tests - [13597] dbg: rules: running full tests; score so far=0 - [13597] dbg: rules: compiled full tests - [13597] dbg: rules: running meta tests; score so far=0 - [13597] dbg: rules: compiled meta tests - [13597] dbg: check: running tests for priority: 0 - [13597] dbg: rules: running head tests; score so far=0 - [13597] dbg: rules: compiled head tests - [13597] dbg: rules: ran header rule __MISSING_THREAD ======> got hit: "UNSET" - [13597] dbg: rules: ran header rule __TVD_MIME_CT_MM ======> got hit: "multipart/mixed" - [13597] dbg: rules: ran header rule __CTYPE_HAS_BOUNDARY ======> got hit: "boundary" - [13597] dbg: rules: ran header rule __CT ======> got hit: "m" - [13597] dbg: rules: ran header rule __MISSING_REF ======> got hit: "UNSET" - [13597] dbg: rules: ran header rule __MISSING_REPLY ======> got hit: "UNSET" - [13597] dbg: rules: ran header rule TO_MALFORMED ======> got hit: "negative match" - [13597] dbg: rules: ran header rule __TOCC_EXISTS ======> got hit: "b" - [13597] dbg: rules: ran header rule __MSOE_MID_WRONG_CASE ======> got hit: " - [13597] dbg: rules: Message-Id: " - [13597] dbg: rules: ran header rule FH_FROMEML_NOTLD ======> got hit: "negative match" - [13597] dbg: rules: ran header rule MISSING_DATE ======> got hit: "UNSET" - [13597] dbg: rules: ran header rule __HAS_MSGID ======> got hit: "<" - [13597] dbg: rules: ran header rule MSGID_SHORT ======> got hit: "" - [13597] dbg: rules: ran header rule __HAS_SUBJECT ======> got hit: "t" - [13597] dbg: rules: running head_eval tests; score so far=2.901 - [13597] dbg: rules: ran eval rule NO_RELAYS ======> got hit (1) - [13597] dbg: rules: ran eval rule __GATED_THROUGH_RCVD_REMOVER ======> got hit (1) - [13597] dbg: spf: cannot get Envelope-From, cannot use SPF - [13597] dbg: spf: def_spf_whitelist_from: could not find useable envelope sender - [13597] dbg: spf: spf_whitelist_from: could not find useable envelope sender - [13597] dbg: rules: running body tests; score so far=2.9 - [13597] dbg: rules: compiled body tests - [13597] dbg: rules: ran body rule __NONEMPTY_BODY ======> got hit: "t" - [13597] dbg: rules: running uri tests; score so far=2.9 - [13597] dbg: rules: compiled uri tests - [13597] dbg: rules: running body_eval tests; score so far=2.9 - [13597] dbg: rules: running rawbody tests; score so far=2.9 - [13597] dbg: rules: compiled rawbody tests - [13597] dbg: rules: running rawbody_eval tests; score so far=2.9 - [13597] dbg: rules: running full tests; score so far=2.9 - [13597] dbg: rules: compiled full tests - [13597] dbg: rules: running full_eval tests; score so far=2.9 - [13597] dbg: rules: running meta tests; score so far=2.9 - [13597] dbg: rules: compiled meta tests - [13597] dbg: check: running tests for priority: 500 - [13597] dbg: dns: harvest_dnsbl_queries - [13597] dbg: rules: running head tests; score so far=2.9 - [13597] dbg: rules: compiled head tests - [13597] dbg: rules: running body tests; score so far=2.9 - [13597] dbg: rules: compiled body tests - [13597] dbg: rules: running uri tests; score so far=2.9 - [13597] dbg: rules: compiled uri tests - [13597] dbg: rules: running rawbody tests; score so far=2.9 - [13597] dbg: rules: compiled rawbody tests - [13597] dbg: rules: running full tests; score so far=2.9 - [13597] dbg: rules: compiled full tests - [13597] dbg: rules: running meta tests; score so far=2.9 - [13597] dbg: rules: meta test DIGEST_MULTIPLE has undefined dependency 'DCC_CHECK' - [13597] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A' - [13597] dbg: rules: meta test T_FAKE_REPLY_SURE_B has undefined dependency 'FAKE_REPLY_A2' - [13597] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A' - [13597] dbg: rules: meta test T_FAKE_REPLY_SURE_A has undefined dependency 'FAKE_REPLY_A2' - [13597] info: rules: meta test T_TVD_PH_BODY_META_ALL has dependency 'TVD_PH_BODY_ACCOUNTS_PRE' with a zero score - [13597] dbg: rules: compiled meta tests - [13597] dbg: check: running tests for priority: 1000 - [13597] dbg: rules: running head tests; score so far=6.937 - [13597] dbg: rules: compiled head tests - [13597] dbg: rules: running head_eval tests; score so far=6.937 - [13597] dbg: locker: safe_lock: created ./log/user_state/auto-whitelist.lock.hudson.zones.apache.org.13597 - [13597] dbg: locker: safe_lock: trying to get lock on ./log/user_state/auto-whitelist with 0 retries - [13597] dbg: locker: safe_lock: link to ./log/user_state/auto-whitelist.lock: link ok - [13597] dbg: auto-whitelist: tie-ing to DB file of type SDBM_File R/W in ./log/user_state/auto-whitelist - [13597] dbg: auto-whitelist: db-based foo|ip=none scores 2/13.884 - [13597] dbg: auto-whitelist: AWL active, pre-score: 6.937, autolearn score: 6.937, mean: 6.942, IP: undef - [13597] dbg: auto-whitelist: add_score: new count: 3, new totscore: 20.821 - [13597] dbg: auto-whitelist: DB addr list: untie-ing and unlocking - [13597] dbg: auto-whitelist: DB addr list: file locked, breaking lock - [13597] dbg: locker: safe_unlock: unlink ./log/user_state/auto-whitelist.lock - [13597] dbg: auto-whitelist: post auto-whitelist score: 6.9395 - [13597] dbg: rules: running body tests; score so far=6.9395 - [13597] dbg: rules: compiled body tests - [13597] dbg: rules: running uri tests; score so far=6.9395 - [13597] dbg: rules: compiled uri tests - [13597] dbg: rules: running rawbody tests; score so far=6.9395 - [13597] dbg: rules: compiled rawbody tests - [13597] dbg: rules: running full tests; score so far=6.9395 - [13597] dbg: rules: compiled full tests - [13597] dbg: rules: running meta tests; score so far=6.9395 - [13597] dbg: rules: compiled meta tests - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::AutoLearnThreshold=HASH(0x8b7a04c) implements 'autolearn_discriminator', priority 0 - [13597] dbg: learn: auto-learn: currently using scoreset 0 - [13597] dbg: learn: auto-learn: message score: 6.9395, computed score for autolearn: 6.939 - [13597] dbg: learn: auto-learn? ham=0.1, spam=12, body-points=6.939, head-points=6.939, learned-points=0 - [13597] dbg: learn: auto-learn? no: inside auto-learn thresholds, not considered ham or spam - [13597] dbg: check: is spam? score=6.94 required=5 - [13597] dbg: check: tests=AWL,FH_FROMEML_NOTLD,INVALID_MSGID,MIME_HEADER_CTYPE_ONLY,MISSING_DATE,MSGID_SHORT,NO_RECEIVED,NO_RELAYS,TO_MALFORMED - [13597] dbg: check: subtests=__CT,__CTYPE_HAS_BOUNDARY,__GATED_THROUGH_RCVD_REMOVER,__HAS_MSGID,__HAS_SUBJECT,__MISSING_REF,__MISSING_REPLY,__MISSING_THREAD,__MSOE_MID_WRONG_CASE,__NONEMPTY_BODY,__TOCC_EXISTS,__TVD_MIME_CT_MM,__UNUSABLE_MSGID - [13597] dbg: timing: total 1566 ms - init: 891 (56.9%), parse: 9 (0.6%), extract_message_metadata: 141 (9.0%), get_uri_detail_list: 0.14 (0.0%), tests_pri_-1000: 4 (0.3%), tests_pri_-950: 1.55 (0.1%), tests_pri_-900: 1.85 (0.1%), tests_pri_-400: 1.32 (0.1%), tests_pri_0: 453 (28.9%), tests_pri_500: 53 (3.4%), tests_pri_1000: 8 (0.5%), check_awl: 6 (0.4%) - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::MIMEHeader=HASH(0x8b7b6d8) implements 'finish_tests', priority 0 - [13597] dbg: plugin: Mail::SpamAssassin::Plugin::Check=HASH(0x8eb631c) implements 'finish_tests', priority 0 - - ok 8 - Checking headerfound - ok 9 - ok 10 - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GTUBE: Date: Mon, 07 Oct 2002 09:00:00 +0000 - GTUBE: From: Sender - GTUBE: MIME-Version: 1.0 - GTUBE: To: Recipient - GTUBE: Subject: GTUBE - GTUBE: Content-Type: text/plain; charset=us-ascii; format=flowed - GTUBE: Content-Transfer-Encoding: 7bit - GTUBE: - GTUBE: XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X - GTUBE: - GTUBE: Generic - GTUBE: Test for - GTUBE: Unsolicited - GTUBE: Bulk - GTUBE: Email - GTUBE: - WRITE: SYMBOLS SPAMC/1.2 - WRITE: Content-Length: 386 - WRITE: - WRITE: Message-ID: - WRITE: Date: Mon, 07 Oct 2002 09:00:00 +0000 - WRITE: From: Sender - WRITE: MIME-Version: 1.0 - WRITE: To: Recipient - WRITE: Subject: GTUBE - WRITE: Content-Type: text/plain; charset=us-ascii; format=flowed - WRITE: Content-Transfer-Encoding: 7bit - WRITE: - WRITE: XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X - WRITE: - WRITE: Generic - WRITE: Test for - WRITE: Unsolicited - WRITE: Bulk - WRITE: Email - WRITE: - READ: SPAMD/1.1 0 EX_OK - READ: Spam: True ; 1000.0 / 5.0 - READ: - READ: GTUBE,NO_RECEIVED,NO_RELAYS,T_TVD_SUBJ_FINGER_04 - ok 1 - ok 2 - Checking gtube - ok 3 - Checking response-11 - ok 4 - Checking spamheader - ok 5 - WRITE: SYMBOLS SPAMC/1.0 - WRITE: Message-ID: - WRITE: Date: Mon, 07 Oct 2002 09:00:00 +0000 - WRITE: From: Sender - WRITE: MIME-Version: 1.0 - WRITE: To: Recipient - WRITE: Subject: GTUBE - WRITE: Content-Type: text/plain; charset=us-ascii; format=flowed - WRITE: Content-Transfer-Encoding: 7bit - WRITE: - WRITE: XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X - WRITE: - WRITE: Generic - WRITE: Test for - WRITE: Unsolicited - WRITE: Bulk - WRITE: Email - WRITE: - READ: SPAMD/1.1 0 EX_OK - READ: Spam: True ; 1000.0 / 5.0 - READ: - READ: GTUBE,NO_RECEIVED,NO_RELAYS,T_TVD_SUBJ_FINGER_04 - ok 6 - ok 7 - Checking gtube - ok 8 - Checking response-11 - ok 9 - Checking spamheader - ok 10 - Killed 1 spamd instances - Waiting for spamd at pid 14453 to exit... - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/junit-report-2874.xml b/core/src/test/resources/hudson/tasks/junit/junit-report-2874.xml deleted file mode 100644 index 16ff9fb584c3..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junit-report-2874.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/junit-report-6700.xml b/core/src/test/resources/hudson/tasks/junit/junit-report-6700.xml deleted file mode 100644 index e6c8461ee58e..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junit-report-6700.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - Etc etc - - java.lang.NoClassDefFoundError: gda/device/detector/DAServer - at java.lang.Class.forName0(Native Method) - at java.lang.Class.forName(Class.java:169) -Caused by: java.lang.ClassNotFoundException: gda.device.detector.DAServer - at java.net.URLClassLoader$1.run(URLClassLoader.java:202) - at java.security.AccessController.doPrivileged(Native Method) - at java.net.URLClassLoader.findClass(URLClassLoader.java:190) - at java.lang.ClassLoader.loadClass(ClassLoader.java:307) - at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) - at java.lang.ClassLoader.loadClass(ClassLoader.java:248) - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/junit-report-errror-details.xml b/core/src/test/resources/hudson/tasks/junit/junit-report-errror-details.xml deleted file mode 100644 index b6463e2a4c70..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junit-report-errror-details.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - at some.package.somewhere.WhooHoo.testHudsonReporting(WhooHoo.java:48) - - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/junit-report-nested-testsuites.xml b/core/src/test/resources/hudson/tasks/junit/junit-report-nested-testsuites.xml deleted file mode 100644 index ff7619b04fd2..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junit-report-nested-testsuites.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - java.lang.IllegalStateException: bla bla - at test.Test(Test:35) - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/hudson/tasks/junit/junitResult.xml b/core/src/test/resources/hudson/tasks/junit/junitResult.xml deleted file mode 100644 index 36ab717c4bae..000000000000 --- a/core/src/test/resources/hudson/tasks/junit/junitResult.xml +++ /dev/null @@ -1,113 +0,0 @@ - - - - - ./TEST-TestSuite.xml - TestSuite - 0.128 - - - 0.128 - service.EchoServletIT - sayHello - true - 0 - - - - - ./failsafe-summary.xml - (failsafe-summary.xml) - 0.0 - - - - ./testng-results.xml - (testng-results.xml) - 0.0 - - - - ./TEST-TestSuite.xml - TestSuite - 0.293 - - - 0.293 - service.EchoServletTest - sayHello - false - 0 - - - - - ./testng-results.xml - (testng-results.xml) - 0.0 - - - - ./TEST-TestSuite.xml - broken - 0.155 - - - 0.0020 - breakable.misc.StupidTest - doSomething - false - 0 - - - 0.0 - breakable.misc.StupidTest - jumparound - false - 0 - - - 0.0 - breakable.misc.UglyTest - jumpAroundYouUglyPerson - false - 0 - - - 0.0 - breakable.misc.UglyTest - doSomethingUgly - false - 0 - - - 0.0010 - breakable.misc.UglyTest - becomeUglier - false - java.lang.AssertionError: Yeah, ugly and broken. - at org.testng.Assert.fail(Assert.java:84) - at breakable.misc.UglyTest.becomeUglier(UglyTest.java:25) - - Yeah, ugly and broken. - 5 - - - 0.15 - breakable.service.EchoServletTest - sayHello - false - 0 - - - 0.0020 - service.EchoServletTest - sayHello - false - 0 - - - - - 0.576 - \ No newline at end of file diff --git a/test/pom.xml b/test/pom.xml index 47a23a182f74..f7af1e17b021 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -98,6 +98,11 @@ THE SOFTWARE. matrix-project 1.0-beta-1 + + org.jenkins-ci.plugins + junit + 1.0 + org.mortbay.jetty jetty diff --git a/test/src/test/java/hudson/tasks/junit/CaseResultTest.java b/test/src/test/java/hudson/tasks/junit/CaseResultTest.java deleted file mode 100644 index 029d5f7e6a23..000000000000 --- a/test/src/test/java/hudson/tasks/junit/CaseResultTest.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2004-2009, Sun Microsystems, Inc., Kohsuke Kawaguchi, Yahoo! Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.FreeStyleProject; -import hudson.model.AbstractBuild; -import hudson.model.BuildListener; -import hudson.model.Result; -import hudson.model.FreeStyleBuild; -import hudson.Launcher; -import org.jvnet.hudson.test.HudsonTestCase; -import org.jvnet.hudson.test.Email; -import org.jvnet.hudson.test.Bug; -import org.jvnet.hudson.test.TestBuilder; -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import com.gargoylesoftware.htmlunit.html.HtmlElement; -import com.gargoylesoftware.htmlunit.xml.XmlPage; -import java.io.IOException; - -/** - * @author Kohsuke Kawaguchi - */ -public class CaseResultTest extends HudsonTestCase { -// /** -// * Verifies that Hudson can capture the stdout/stderr output from Maven surefire. -// */ -// public void testSurefireOutput() throws Exception { -// setJavaNetCredential(); -// configureDefaultMaven(); -// -// MavenModuleSet p = createMavenProject(); -// p.setScm(new SubversionSCM(".../hudson/test-projects/junit-failure@16411")); -// MavenModuleSetBuild b = assertBuildStatus(UNSTABLE,p.scheduleBuild2(0).get()); -// AbstractTestResultAction t = b.getAction(AbstractTestResultAction.class); -// assertSame(1,t.getFailCount()); -// CaseResult tc = t.getFailedTests().get(0); -// assertTrue(tc.getStderr().contains("stderr")); -// assertTrue(tc.getStdout().contains("stdout")); -// } - - @Email("http://www.nabble.com/NPE-%28Fatal%3A-Null%29-in-recording-junit-test-results-td23562964.html") - public void testIssue20090516() throws Exception { - FreeStyleBuild b = configureTestBuild(null); - TestResult tr = b.getAction(TestResultAction.class).getResult(); - assertEquals(3,tr.getFailedTests().size()); - CaseResult cr = tr.getFailedTests().get(0); - assertEquals("org.twia.vendor.VendorManagerTest",cr.getClassName()); - assertEquals("testGetVendorFirmKeyForVendorRep",cr.getName()); - - // piggy back tests for annotate methods - assertOutput(cr,"plain text", "plain text"); - assertOutput(cr,"line #1\nhttp://nowhere.net/\nline #2\n", - "line #1\nhttp://nowhere.net/\nline #2\n"); - assertOutput(cr,"failed; see http://nowhere.net/", - "failed; see http://nowhere.net/"); - assertOutput(cr,"failed (see http://nowhere.net/)", - "failed (see http://nowhere.net/)"); - assertOutput(cr,"http://nowhere.net/ - failed: http://elsewhere.net/", - "http://nowhere.net/ - failed: " + - "http://elsewhere.net/"); - assertOutput(cr,"https://nowhere.net/", - "https://nowhere.net/"); - assertOutput(cr,"stuffhttp://nowhere.net/", "stuffhttp://nowhere.net/"); - assertOutput(cr,"a < b && c < d", "a < b && c < d"); - assertOutput(cr,"see ", - "see <http://nowhere.net/>"); - assertOutput(cr,"http://google.com/?q=stuff&lang=en", - "http://google.com/?q=stuff&lang=en"); - assertOutput(cr,"http://localhost:8080/stuff/", - "http://localhost:8080/stuff/"); - } - - - /** - * Verifies that the error message and stacktrace from a failed junit test actually render properly. - */ - @Bug(4257) - public void testFreestyleErrorMsgAndStacktraceRender() throws Exception { - FreeStyleBuild b = configureTestBuild("render-test"); - TestResult tr = b.getAction(TestResultAction.class).getResult(); - assertEquals(3,tr.getFailedTests().size()); - CaseResult cr = tr.getFailedTests().get(1); - assertEquals("org.twia.vendor.VendorManagerTest",cr.getClassName()); - assertEquals("testGetRevokedClaimsForAdjustingFirm",cr.getName()); - assertNotNull("Error details should not be null", cr.getErrorDetails()); - assertNotNull("Error stacktrace should not be null", cr.getErrorStackTrace()); - - String testUrl = cr.getRelativePathFrom(tr); - - HtmlPage page = new WebClient().goTo("job/render-test/1/testReport/" + testUrl); - - HtmlElement errorMsg = (HtmlElement) page.getByXPath("//h3[text()='Error Message']/following-sibling::*").get(0); - - assertEquals(cr.annotate(cr.getErrorDetails()).replaceAll("<", "<"), errorMsg.getTextContent()); - HtmlElement errorStackTrace = (HtmlElement) page.getByXPath("//h3[text()='Stacktrace']/following-sibling::*").get(0); - // Have to do some annoying replacing here to get the same text Jelly produces in the end. - assertEquals(cr.annotate(cr.getErrorStackTrace()).replaceAll("<", "<").replace("\r\n", "\n"), - errorStackTrace.getTextContent()); - } - - /** - * Verify fields show up at the correct visibility in the remote API - */ - - private static final String[] MAX_VISIBILITY_FIELDS = { "name" }; - private static final String[] REDUCED_VISIBILITY_FIELDS = { "stdout", "stderr", "errorStackTrace", "errorDetails" }; - private static final String[] OTHER_FIELDS = { "duration", "className", "failedSince", "age", "skipped", "status" }; - - @Email("http://jenkins.361315.n4.nabble.com/Change-remote-API-visibility-for-CaseResult-getStdout-getStderr-td395102.html") - public void testRemoteApiDefaultVisibility() throws Exception { - FreeStyleBuild b = configureTestBuild("test-remoteapi"); - - XmlPage page = (XmlPage) new WebClient().goTo("job/test-remoteapi/1/testReport/org.twia.vendor/VendorManagerTest/testCreateAdjustingFirm/api/xml","application/xml"); - - int found = 0; - - found = page.getByXPath(composeXPath(MAX_VISIBILITY_FIELDS)).size(); - assertTrue("Should have found an element, but found " + found, found > 0); - - found = page.getByXPath(composeXPath(REDUCED_VISIBILITY_FIELDS)).size(); - assertTrue("Should have found an element, but found " + found, found > 0); - - found = page.getByXPath(composeXPath(OTHER_FIELDS)).size(); - assertTrue("Should have found an element, but found " + found, found > 0); - } - - @Email("http://jenkins.361315.n4.nabble.com/Change-remote-API-visibility-for-CaseResult-getStdout-getStderr-td395102.html") - public void testRemoteApiNoDetails() throws Exception { - FreeStyleBuild b = configureTestBuild("test-remoteapi"); - - XmlPage page = (XmlPage) new WebClient().goTo("job/test-remoteapi/1/testReport/org.twia.vendor/VendorManagerTest/testCreateAdjustingFirm/api/xml?depth=-1","application/xml"); - - int found = 0; - - found = page.getByXPath(composeXPath(MAX_VISIBILITY_FIELDS)).size(); - assertTrue("Should have found an element, but found " + found, found > 0); - - found = page.getByXPath(composeXPath(REDUCED_VISIBILITY_FIELDS)).size(); - assertTrue("Should have found 0 elements, but found " + found, found == 0); - - found = page.getByXPath(composeXPath(OTHER_FIELDS)).size(); - assertTrue("Should have found an element, but found " + found, found > 0); - } - - @Email("http://jenkins.361315.n4.nabble.com/Change-remote-API-visibility-for-CaseResult-getStdout-getStderr-td395102.html") - public void testRemoteApiNameOnly() throws Exception { - FreeStyleBuild b = configureTestBuild("test-remoteapi"); - - XmlPage page = (XmlPage) new WebClient().goTo("job/test-remoteapi/1/testReport/org.twia.vendor/VendorManagerTest/testCreateAdjustingFirm/api/xml?depth=-10","application/xml"); - - int found = 0; - - found = page.getByXPath(composeXPath(MAX_VISIBILITY_FIELDS)).size(); - assertTrue("Should have found an element, but found " + found, found > 0); - - found = page.getByXPath(composeXPath(REDUCED_VISIBILITY_FIELDS)).size(); - assertTrue("Should have found 0 elements, but found " + found, found == 0); - - found = page.getByXPath(composeXPath(OTHER_FIELDS)).size(); - assertTrue("Should have found 0 elements, but found " + found, found == 0); - } - - /** - * Makes sure the summary page remains text/plain (see commit 7089a81 in JENKINS-1544) but - * the index page must be in text/html. - */ - @Bug(21261) - public void testContentType() throws Exception { - configureTestBuild("foo"); - WebClient wc = createWebClient(); - wc.goTo("job/foo/1/testReport/org.twia.vendor/VendorManagerTest/testCreateAdjustingFirm/","text/html"); - - wc.goTo("job/foo/1/testReport/org.twia.vendor/VendorManagerTest/testCreateAdjustingFirm/summary","text/plain"); - } - - private FreeStyleBuild configureTestBuild(String projectName) throws Exception { - FreeStyleProject p = projectName == null ? createFreeStyleProject() : createFreeStyleProject(projectName); - p.getBuildersList().add(new TestBuilder() { - public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { - build.getWorkspace().child("junit.xml").copyFrom( - getClass().getResource("junit-report-20090516.xml")); - return true; - } - }); - p.getPublishersList().add(new JUnitResultArchiver("*.xml")); - return assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); - } - - private String composeXPath(String[] fields) throws Exception { - StringBuilder tmp = new StringBuilder(100); - for ( String f : fields ) { - if (tmp.length() > 0 ) { - tmp.append("|"); - } - tmp.append("//caseResult/"); - tmp.append(f); - } - - return tmp.toString(); - } - - private void assertOutput(CaseResult cr, String in, String out) throws Exception { - assertEquals(out, cr.annotate(in)); - } - -} diff --git a/test/src/test/java/hudson/tasks/junit/HistoryTest.java b/test/src/test/java/hudson/tasks/junit/HistoryTest.java deleted file mode 100644 index 1573b4dbe4df..000000000000 --- a/test/src/test/java/hudson/tasks/junit/HistoryTest.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.model.FreeStyleBuild; -import hudson.model.FreeStyleProject; -import hudson.model.Project; -import hudson.model.Result; -import org.jvnet.hudson.test.HudsonTestCase; -import org.jvnet.hudson.test.recipes.LocalData; - -import java.util.List; - -public class HistoryTest extends HudsonTestCase { - private FreeStyleProject project; - - private static final String PROJECT_NAME = "wonky"; - - - @Override - protected void setUp() throws Exception { - super.setUp(); - - List projects = this.jenkins.getProjects(); - Project theProject = null; - for (Project p : projects) { - if (p.getName().equals(PROJECT_NAME)) theProject = p; - } - assertNotNull("We should have a project named " + PROJECT_NAME, theProject); - - assertTrue( theProject instanceof FreeStyleProject); - project = (FreeStyleProject) theProject; - } - - - @LocalData - public void testFailedSince() throws Exception { - assertNotNull("project should exist", project); - - // Check the status of a few builds - FreeStyleBuild build4 = project.getBuildByNumber(4); - assertNotNull("build4", build4); - assertBuildStatus(Result.FAILURE, build4); - - FreeStyleBuild build7 = project.getBuildByNumber(7); - assertNotNull("build7", build7); - assertBuildStatus(Result.SUCCESS, build7); - - TestResult tr = build4.getAction(TestResultAction.class).getResult(); - assertEquals(2,tr.getFailedTests().size()); - - // In build 4, we expect these tests to have failed since these builds - // org.jvnet.hudson.examples.small.deep.DeepTest.testScubaGear failed since 3 - // org.jvnet.hudson.examples.small.MiscTest.testEleanor failed since 3 - - PackageResult deepPackage = tr.byPackage("org.jvnet.hudson.examples.small.deep"); - assertNotNull("deepPackage", deepPackage); - assertTrue("package is failed", !deepPackage.isPassed()); - ClassResult deepClass = deepPackage.getClassResult("DeepTest"); - assertNotNull(deepClass); - assertTrue("class is failed", !deepClass.isPassed()); - CaseResult scubaCase = deepClass.getCaseResult("testScubaGear"); - assertNotNull(scubaCase); - assertTrue("scubaCase case is failed", !scubaCase.isPassed()); - int scubaFailedSince = scubaCase.getFailedSince(); - assertEquals("scubaCase should have failed since build 3", 3, scubaFailedSince); - - - // In build 5 the scuba test begins to pass - TestResult tr5 = project.getBuildByNumber(5).getAction(TestResultAction.class).getResult(); - assertEquals(1,tr5.getFailedTests().size()); - deepPackage = tr5.byPackage("org.jvnet.hudson.examples.small.deep"); - assertNotNull("deepPackage", deepPackage); - assertTrue("package is passed", deepPackage.isPassed()); - deepClass = deepPackage.getClassResult("DeepTest"); - assertNotNull(deepClass); - assertTrue("class is passed", deepClass.isPassed()); - scubaCase = deepClass.getCaseResult("testScubaGear"); - assertNotNull(scubaCase); - assertTrue("scubaCase case is passed", scubaCase.isPassed()); - - // In build5, testEleanor has been failing since build 3 - PackageResult smallPackage = tr5.byPackage("org.jvnet.hudson.examples.small"); - ClassResult miscClass = smallPackage.getClassResult("MiscTest"); - CaseResult eleanorCase = miscClass.getCaseResult("testEleanor"); - assertTrue("eleanor failed", !eleanorCase.isPassed()); - assertEquals("eleanor has failed since build 3", 3, eleanorCase.getFailedSince()); - } -} diff --git a/test/src/test/java/hudson/tasks/junit/JUnitParserTest.java b/test/src/test/java/hudson/tasks/junit/JUnitParserTest.java deleted file mode 100644 index c4970ad02475..000000000000 --- a/test/src/test/java/hudson/tasks/junit/JUnitParserTest.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.Launcher; -import hudson.FilePath; -import hudson.model.AbstractBuild; -import hudson.model.BuildListener; -import hudson.model.FreeStyleBuild; -import hudson.model.FreeStyleProject; -import hudson.tasks.Builder; -import hudson.tasks.test.TestResult; -import org.jvnet.hudson.test.HudsonTestCase; -import org.jvnet.hudson.test.recipes.LocalData; - -import java.io.IOException; -import java.io.Serializable; -import java.util.concurrent.TimeUnit; -import java.util.*; - -/** - * Test the mechanism for calling a JUnitParser separately - * from the JUnitResultsArchiver - * - */ -public class JUnitParserTest extends HudsonTestCase { - static hudson.tasks.junit.TestResult theResult = null; - - public static final class JUnitParserTestBuilder extends Builder implements Serializable { - private static final long serialVersionUID = 1L; - private String testResultLocation; - public JUnitParserTestBuilder(String testResultLocation) { - this.testResultLocation = testResultLocation; - } - - @Override - public boolean perform(AbstractBuild build, - Launcher launcher, BuildListener listener) - throws InterruptedException, IOException { - System.out.println("in perform..."); - - // First touch all the files, so they will be recently modified - for (FilePath f : build.getWorkspace().list()) { - f.touch(System.currentTimeMillis()); - } - - System.out.println("...touched everything"); - hudson.tasks.junit.TestResult result = (new JUnitParser()).parse( testResultLocation, build, launcher, listener); - - System.out.println("back from parse"); - assertNotNull("we should have a non-null result", result); - assertTrue("result should be a TestResult", result instanceof hudson.tasks.junit.TestResult); - System.out.println("We passed some assertions in the JUnitParserTestBuilder"); - theResult = result; - return (result != null); - } - } - - - private FreeStyleProject project; - private String projectName = "junit_parser_test"; - - @Override - protected void setUp() throws Exception { - super.setUp(); - theResult = null; - project = createFreeStyleProject(projectName); - project.getBuildersList().add(new JUnitParserTestBuilder("*.xml")); - } - - @LocalData - public void testJustParsing() throws Exception { - FreeStyleBuild build = project.scheduleBuild2(0).get(100, TimeUnit.MINUTES); - assertNotNull(build); - - // Now let's examine the result. We know lots of stuff about it because - // we've analyzed the xml source files by hand. - assertNotNull("we should have a result in the static member", theResult); - - // Check the overall counts. We should have 1 failure, 0 skips, and 132 passes. - Collection children = theResult.getChildren(); - assertFalse("Should have several packages", children.isEmpty()); - assertTrue("Should have several pacakges", children.size() > 3); - int passCount = theResult.getPassCount(); - assertEquals("expecting many passes", 131, passCount); - int failCount = theResult.getFailCount(); - assertEquals("we should have one failure", 1, failCount); - assertEquals("expected 0 skips", 0, theResult.getSkipCount()); - assertEquals("expected 132 total tests", 132, theResult.getTotalCount()); - - // Dig in to the failed test - final String EXPECTED_FAILING_TEST_NAME = "testDataCompatibilityWith1_282"; - final String EXPECTED_FAILING_TEST_CLASSNAME = "hudson.security.HudsonPrivateSecurityRealmTest"; - - Collection failingTests = theResult.getFailedTests(); - assertEquals("should have one failed test", 1, failingTests.size()); - Map failedTestsByName = new HashMap(); - for (TestResult r: failingTests) { - failedTestsByName.put(r.getName(), r); - } - assertTrue("we've got the expected failed test", failedTestsByName.containsKey(EXPECTED_FAILING_TEST_NAME)); - TestResult firstFailedTest = failedTestsByName.get(EXPECTED_FAILING_TEST_NAME); - assertFalse("should not have passed this test", firstFailedTest.isPassed()); - - assertTrue(firstFailedTest instanceof CaseResult); - CaseResult firstFailedTestJunit = (CaseResult)firstFailedTest; - assertEquals(EXPECTED_FAILING_TEST_CLASSNAME, firstFailedTestJunit.getClassName()); - - // TODO: Dig in to the passed tests, too - - - - } - - -} diff --git a/test/src/test/java/hudson/tasks/junit/JUnitResultArchiverTest.java b/test/src/test/java/hudson/tasks/junit/JUnitResultArchiverTest.java deleted file mode 100644 index 4d515e860eca..000000000000 --- a/test/src/test/java/hudson/tasks/junit/JUnitResultArchiverTest.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import hudson.FilePath; -import hudson.model.FreeStyleBuild; -import hudson.model.FreeStyleProject; -import hudson.slaves.DumbSlave; -import hudson.tasks.test.TestObject; - -import java.util.concurrent.TimeUnit; - -import org.jvnet.hudson.test.TouchBuilder; -import org.jvnet.hudson.test.recipes.LocalData; - -import com.gargoylesoftware.htmlunit.html.HtmlForm; -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import static org.junit.Assert.*; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.jvnet.hudson.test.JenkinsRule; -import org.jvnet.hudson.test.JenkinsRule.WebClient; -import org.jvnet.hudson.test.RandomlyFails; - -public class JUnitResultArchiverTest { - - @Rule public JenkinsRule j = new JenkinsRule(); - private FreeStyleProject project; - private JUnitResultArchiver archiver; - - @Before public void setUp() throws Exception { - project = j.createFreeStyleProject("junit"); - archiver = new JUnitResultArchiver("*.xml"); - project.getPublishersList().add(archiver); - - project.getBuildersList().add(new TouchBuilder()); - } - - @LocalData - @Test public void basic() throws Exception { - FreeStyleBuild build = project.scheduleBuild2(0).get(10, TimeUnit.SECONDS); - - assertTestResults(build); - - WebClient wc = j.new WebClient(); - wc.getPage(project); // project page - wc.getPage(build); // build page - wc.getPage(build, "testReport"); // test report - wc.getPage(build, "testReport/hudson.security"); // package - wc.getPage(build, "testReport/hudson.security/HudsonPrivateSecurityRealmTest/"); // class - wc.getPage(build, "testReport/hudson.security/HudsonPrivateSecurityRealmTest/testDataCompatibilityWith1_282/"); // method - - - } - - @RandomlyFails("TimeoutException from basic") - @LocalData - @Test public void slave() throws Exception { - DumbSlave s = j.createOnlineSlave(); - project.setAssignedLabel(s.getSelfLabel()); - - FilePath src = new FilePath(j.jenkins.getRootPath(), "jobs/junit/workspace/"); - assertNotNull(src); - FilePath dest = s.getWorkspaceFor(project); - assertNotNull(dest); - src.copyRecursiveTo("*.xml", dest); - - basic(); - } - - private void assertTestResults(FreeStyleBuild build) { - TestResultAction testResultAction = build.getAction(TestResultAction.class); - assertNotNull("no TestResultAction", testResultAction); - - TestResult result = testResultAction.getResult(); - assertNotNull("no TestResult", result); - - assertEquals("should have 1 failing test", 1, testResultAction.getFailCount()); - assertEquals("should have 1 failing test", 1, result.getFailCount()); - - assertEquals("should have 132 total tests", 132, testResultAction.getTotalCount()); - assertEquals("should have 132 total tests", 132, result.getTotalCount()); - } - - @LocalData - @Test public void persistence() throws Exception { - project.scheduleBuild2(0).get(60, TimeUnit.SECONDS); - - reloadJenkins(); - - FreeStyleBuild build = project.getBuildByNumber(1); - - assertTestResults(build); - } - - private void reloadJenkins() throws Exception { - j.jenkins.reload(); - project = (FreeStyleProject) j.jenkins.getItem("junit"); - } - - @LocalData - @Test public void setDescription() throws Exception { - FreeStyleBuild build = project.scheduleBuild2(0).get(10, TimeUnit.SECONDS); - - CaseResult caseResult = build.getAction(TestResultAction.class).getFailedTests().get(0); - String url = build.getUrl() + "/testReport/" + caseResult.getRelativePathFrom(caseResult.getTestResult()); - - testSetDescription(url, caseResult); - - ClassResult classResult = caseResult.getParent(); - url = build.getUrl() + "/testReport/" + classResult.getParent().getSafeName() + "/" + classResult.getSafeName(); - testSetDescription(url, classResult); - - PackageResult packageResult = classResult.getParent(); - url = build.getUrl() + "/testReport/" + classResult.getParent().getSafeName(); - testSetDescription(url, packageResult); - - } - - private void testSetDescription(String url, TestObject object) throws Exception { - object.doSubmitDescription("description"); - - // test the roundtrip - HtmlPage page = j.new WebClient().goTo(url); - page.getAnchorByHref("editDescription").click(); - HtmlForm form = findForm(page, "submitDescription"); - j.submit(form); - - assertEquals("description", object.getDescription()); - } - - private HtmlForm findForm(HtmlPage page, String action) { - for (HtmlForm form: page.getForms()) { - if (action.equals(form.getActionAttribute())) { - return form; - } - } - fail("no form found"); - return null; - } -} diff --git a/test/src/test/java/hudson/tasks/junit/SuiteResultTest.java b/test/src/test/java/hudson/tasks/junit/SuiteResultTest.java deleted file mode 100644 index 686ea91df7c2..000000000000 --- a/test/src/test/java/hudson/tasks/junit/SuiteResultTest.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * The MIT License - * - * Copyright 2012 Jesse Glick. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -package hudson.tasks.junit; - -import edu.umd.cs.findbugs.annotations.SuppressWarnings; -import java.io.File; -import java.io.FileWriter; -import java.io.PrintWriter; -import java.io.Writer; -import java.util.List; -import static org.jvnet.hudson.test.MemoryAssert.*; -import static org.junit.Assert.*; -import org.junit.Test; - -public class SuiteResultTest { - - @SuppressWarnings({"DM_DEFAULT_ENCODING", "OS_OPEN_STREAM", "RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"}) - @Test public void sizeSurefire() throws Exception { - File data = File.createTempFile("TEST-", ".xml"); - try { - Writer w = new FileWriter(data); - try { - PrintWriter pw = new PrintWriter(w); - pw.println(""); - pw.println(""); - // Simulating Surefire 2.12.4 with redirectTestOutputToFile=true: - for (int i = 0; i < 10; i++) { // these pass and SF omits stdio - pw.println(""); - } - for (int i = 10; i < 20; i++) { // these fail and SF includes per-test stdio - pw.println(""); - pw.println("some stack trace"); - pw.print(""); - for (int j = 0; j < 1000; j++) { - pw.println("t" + i + " out #" + j); - } - pw.println(""); - pw.print(""); - for (int j = 0; j < 1000; j++) { - pw.println("t" + i + " err #" + j); - } - pw.println(""); - pw.println(""); - } - pw.println(""); - pw.println(""); - pw.flush(); - } finally { - w.close(); - } - File data2 = new File(data.getParentFile(), data.getName().replaceFirst("^TEST-(.+)[.]xml$", "$1-output.txt")); - try { - w = new FileWriter(data2); - try { - PrintWriter pw = new PrintWriter(w); - for (int i = 0; i < 20; i++) { // stdio for complete suite (incl. passing tests) - for (int j = 0; j < 1000; j++) { - pw.println("t" + i + " out #" + j); - pw.println("t" + i + " err #" + j); - } - } - pw.flush(); - } finally { - w.close(); - } - SuiteResult sr = parseOne(data); - assertHeapUsage(sr, 1100 + /* Unicode overhead */2 * (int) (/*259946*/data.length() + /*495600*/data2.length() + /* SuiteResult.file */data.getAbsolutePath().length())); - // TODO serialize using TestResultAction.XSTREAM and verify that round-tripped object has same size - } finally { - data2.delete(); - } - } finally { - data.delete(); - } - } - - private SuiteResult parseOne(File file) throws Exception { - List results = SuiteResult.parse(file, false); - assertEquals(1,results.size()); - return results.get(0); - } - -} diff --git a/test/src/test/java/hudson/tasks/junit/TestNameTransformerTest.java b/test/src/test/java/hudson/tasks/junit/TestNameTransformerTest.java deleted file mode 100644 index bc22e2da5c9d..000000000000 --- a/test/src/test/java/hudson/tasks/junit/TestNameTransformerTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package hudson.tasks.junit; - -import static org.junit.Assert.*; - -import hudson.Extension; - -import org.junit.Rule; -import org.junit.Test; -import org.jvnet.hudson.test.HudsonTestCase; -import org.jvnet.hudson.test.JenkinsRule; - -public class TestNameTransformerTest { - - private static final String UNIQUE_NAME_FOR_TEST = "unique-name-to-test-name-transformer"; - @Rule public JenkinsRule j = new JenkinsRule(); - - @Extension - public static class TestTransformer extends TestNameTransformer { - @Override - public String transformName(String name) { - if (UNIQUE_NAME_FOR_TEST.equals(name)) { - return name + "-transformed"; - } - return name; - } - } - - @Test - public void testNameIsTransformed() { - assertEquals(UNIQUE_NAME_FOR_TEST + "-transformed", TestNameTransformer.getTransformedName(UNIQUE_NAME_FOR_TEST)); - } - -} - diff --git a/test/src/test/java/hudson/tasks/junit/TestResultLinksTest.java b/test/src/test/java/hudson/tasks/junit/TestResultLinksTest.java deleted file mode 100644 index 40af8cd8e5e2..000000000000 --- a/test/src/test/java/hudson/tasks/junit/TestResultLinksTest.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import org.jvnet.hudson.test.HudsonTestCase; -import hudson.model.FreeStyleBuild; -import hudson.model.FreeStyleProject; -import hudson.model.Result; - -import java.util.concurrent.TimeUnit; - -import org.jvnet.hudson.test.TouchBuilder; -import org.jvnet.hudson.test.recipes.LocalData; - -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import com.gargoylesoftware.htmlunit.html.HtmlAnchor; -import com.gargoylesoftware.htmlunit.Page; - -/** - * User: Benjamin Shine bshine@yahoo-inc.com - * Date: Dec 7, 2009 - * Time: 7:52:55 PM - */ -public class TestResultLinksTest extends HudsonTestCase { - - private FreeStyleProject project; - private JUnitResultArchiver archiver; - - - @Override - protected void setUp() throws Exception { - super.setUp(); - project = createFreeStyleProject("taqueria"); - archiver = new JUnitResultArchiver("*.xml"); - project.getPublishersList().add(archiver); - project.getBuildersList().add(new TouchBuilder()); - } - - @LocalData - public void testFailureLinks() throws Exception { - FreeStyleBuild build = project.scheduleBuild2(0).get(10, TimeUnit.SECONDS); - assertBuildStatus(Result.UNSTABLE, build); - - TestResult theOverallTestResult = build.getAction(TestResultAction.class).getResult(); - CaseResult theFailedTestCase = theOverallTestResult.getFailedTests().get(0); - String relativePath = theFailedTestCase.getRelativePathFrom(theOverallTestResult); - System.out.println("relative path seems to be: " + relativePath); - - HudsonTestCase.WebClient wc = new HudsonTestCase.WebClient(); - - String testReportPageUrl = project.getLastBuild().getUrl() + "/testReport"; - HtmlPage testReportPage = wc.goTo( testReportPageUrl ); - - Page packagePage = testReportPage.getFirstAnchorByText("tacoshack.meals").click(); - assertGoodStatus(packagePage); // I expect this to work; just checking that my use of the APIs is correct. - - // Now we're on that page. We should be able to find a link to the failed test in there. - HtmlAnchor anchor = testReportPage.getFirstAnchorByText("tacoshack.meals.NachosTest.testBeanDip"); - String href = anchor.getHrefAttribute(); - System.out.println("link is : " + href); - Page failureFromLink = anchor.click(); - assertGoodStatus(failureFromLink); - - // Now check the >>> link -- this is harder, because we can't do the javascript click handler properly - // The summary page is just tack on /summary to the url for the test - - } - - // Exercises the b-is-not-a-descendant-of-a path. - @LocalData - public void testNonDescendantRelativePath() throws Exception { - FreeStyleBuild build = project.scheduleBuild2(0).get(10, TimeUnit.MINUTES); // leave time for interactive debugging - assertBuildStatus(Result.UNSTABLE, build); - TestResult theOverallTestResult = build.getAction(TestResultAction.class).getResult(); - CaseResult theFailedTestCase = theOverallTestResult.getFailedTests().get(0); - String relativePath = theFailedTestCase.getRelativePathFrom(theOverallTestResult); - System.out.println("relative path seems to be: " + relativePath); - assertNotNull("relative path exists", relativePath); - assertFalse("relative path doesn't start with a slash", relativePath.startsWith("/")); - - // Now ask for the relative path from the child to the parent -- we should get an absolute path - String relativePath2 = theOverallTestResult.getRelativePathFrom(theFailedTestCase); - System.out.println("relative path2 seems to be: " + relativePath2); - // I know that in a HudsonTestCase we don't have a meaningful root url, so I expect an empty string here. - // If somehow we start being able to produce a root url, then I'll also tolerate a url that starts with that. - boolean pathIsEmptyOrNull = relativePath2 == null || relativePath2.isEmpty(); - boolean pathStartsWithRootUrl = !pathIsEmptyOrNull && relativePath2.startsWith(jenkins.getRootUrl()); - assertTrue("relative path is empty OR begins with the app root", pathIsEmptyOrNull || pathStartsWithRootUrl ); - } -} diff --git a/test/src/test/java/hudson/tasks/junit/TestResultPublishingTest.java b/test/src/test/java/hudson/tasks/junit/TestResultPublishingTest.java deleted file mode 100644 index b0f7e35e27c5..000000000000 --- a/test/src/test/java/hudson/tasks/junit/TestResultPublishingTest.java +++ /dev/null @@ -1,377 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.junit; - -import com.gargoylesoftware.htmlunit.Page; -import com.gargoylesoftware.htmlunit.html.*; -import com.gargoylesoftware.htmlunit.xml.XmlPage; -import hudson.FilePath; -import hudson.Launcher; -import hudson.model.AbstractBuild; -import hudson.model.BuildListener; -import hudson.model.FreeStyleBuild; -import hudson.model.FreeStyleProject; -import hudson.model.Project; -import hudson.model.Result; -import hudson.model.Run; -import hudson.slaves.DumbSlave; -import hudson.tasks.Builder; -import org.jvnet.hudson.test.Bug; -import org.jvnet.hudson.test.HudsonTestCase; -import org.jvnet.hudson.test.TouchBuilder; -import org.jvnet.hudson.test.recipes.LocalData; -import org.xml.sax.SAXException; - -import java.io.IOException; -import java.util.List; -import java.util.concurrent.TimeUnit; - -public class TestResultPublishingTest extends HudsonTestCase { - private FreeStyleProject project; - private JUnitResultArchiver archiver; - private final String BASIC_TEST_PROJECT = "percival"; - private final String TEST_PROJECT_WITH_HISTORY = "wonky"; - - - @Override - protected void setUp() throws Exception { - super.setUp(); - project = createFreeStyleProject(BASIC_TEST_PROJECT); - archiver = new JUnitResultArchiver("*.xml"); - project.getPublishersList().add(archiver); - project.getBuildersList().add(new TouchBuilder()); - } - - @LocalData - public void testBasic() throws Exception { - FreeStyleBuild build = project.scheduleBuild2(0).get(30, TimeUnit.SECONDS); - - assertTestResults(build); - - HudsonTestCase.WebClient wc = new HudsonTestCase.WebClient(); - wc.getPage(project); // project page - wc.getPage(build); // build page - wc.getPage(build, "testReport"); // test report - wc.getPage(build, "testReport/hudson.security"); // package - wc.getPage(build, "testReport/hudson.security/HudsonPrivateSecurityRealmTest/"); // class - wc.getPage(build, "testReport/hudson.security/HudsonPrivateSecurityRealmTest/testDataCompatibilityWith1_282/"); // method - } - - - @LocalData - public void testSlave() throws Exception { - DumbSlave s = createOnlineSlave(); - project.setAssignedLabel(s.getSelfLabel()); - - FilePath src = new FilePath(jenkins.getRootPath(), "jobs/" + BASIC_TEST_PROJECT + "/workspace/"); - assertNotNull(src); - FilePath dest = s.getWorkspaceFor(project); - assertNotNull(dest); - src.copyRecursiveTo("*.xml", dest); - - testBasic(); - } - - - /** - * Verify that we can successfully parse and display test results in the - * open junit test result publishing toolchain. Ensure that we meet this - * compatibility requirement: - * From users' point of view, Hudson core JUnit should continue - * to work as if nothing has changed - * - Old testReport URLs should still work - */ - @LocalData - public void testOpenJUnitPublishing() throws IOException, SAXException { - List projects = this.jenkins.getProjects(); - // Make sure there's a project named TEST_PROJECT_WITH_HISTORY - Project proj = null; - for (Project p : projects) { - if (p.getName().equals(TEST_PROJECT_WITH_HISTORY)) proj = p; - } - assertNotNull("We should have a project named " + TEST_PROJECT_WITH_HISTORY, proj); - - // Validate that there are test results where I expect them to be: - HudsonTestCase.WebClient wc = new HudsonTestCase.WebClient(); - - // On the project page: - HtmlPage projectPage = wc.getPage(proj); - // we should have a link that reads "Latest Test Result" - // that link should go to http://localhost:8080/job/breakable/lastBuild/testReport/ - assertXPath(projectPage, "//a[@href='lastCompletedBuild/testReport/']"); - assertXPathValue(projectPage, "//a[@href='lastCompletedBuild/testReport/']", "Latest Test Result"); - assertXPathValueContains(projectPage, "//a[@href='lastCompletedBuild/testReport/']", "Latest Test Result"); - // after "Latest Test Result" it should say "no failures" - assertXPathResultsContainText(projectPage, "//td", "(no failures)"); - // there should be a test result trend graph - assertXPath(projectPage, "//img[@src='test/trend']"); - // the trend graph should be served up with a good http status - Page trendGraphPage = wc.goTo(proj.getUrl() + "/test/trend", "image/png"); - assertGoodStatus(trendGraphPage); - - // The trend graph should be clickable and take us to a run details page - Object imageNode = projectPage.getFirstByXPath("//img[@src='test/trend']"); - assertNotNull("couldn't find any matching nodes", imageNode); - assertTrue("image node should be an HtmlImage object", imageNode instanceof HtmlImage); - // TODO: Check that we can click on the graph and get to a particular run. How do I do this with HtmlUnit? - - XmlPage xmlProjectPage = wc.goToXml(proj.getUrl() + "/lastBuild/testReport/api/xml"); - assertXPath(xmlProjectPage, "/testResult"); - assertXPath(xmlProjectPage, "/testResult/suite"); - assertXPath(xmlProjectPage, "/testResult/failCount"); - assertXPathValue(xmlProjectPage, "/testResult/failCount", "0"); - assertXPathValue(xmlProjectPage, "/testResult/passCount", "4"); - assertXPathValue(xmlProjectPage, "/testResult/skipCount", "0"); - String[] packages = {"org.jvnet.hudson.examples.small.AppTest", "org.jvnet.hudson.examples.small.MiscTest", "org.jvnet.hudson.examples.small.deep.DeepTest"}; - for (String packageName : packages) { - assertXPath(xmlProjectPage, "/testResult/suite/case/className[text()='" + packageName + "']"); - } - - // Go to a page that we know has a failure - HtmlPage buildPage = wc.getPage(proj.getBuildByNumber(3)); - assertGoodStatus(buildPage); - // We expect to see one failure, for com.yahoo.breakable.misc.UglyTest.becomeUglier - // which should link to http://localhost:8080/job/wonky/3/testReport/org.jvnet.hudson.examples.small/MiscTest/testEleanor/ - assertXPathResultsContainText(buildPage, "//a", "org.jvnet.hudson.examples.small.MiscTest.testEleanor"); - HtmlAnchor failingTestLink = buildPage.getFirstAnchorByText("org.jvnet.hudson.examples.small.MiscTest.testEleanor"); - assertNotNull(failingTestLink); - Page failingTestPage = failingTestLink.click(); - assertGoodStatus(failingTestPage); - - // Go to the xml page for a build we know has failures - XmlPage xmlBuildPage = wc.goToXml(proj.getBuildByNumber(3).getUrl() + "/api/xml"); - assertXPathValue(xmlBuildPage, "//failCount", "2"); - assertXPathValue(xmlBuildPage, "//skipCount", "0"); - assertXPathValue(xmlBuildPage, "//totalCount", "4"); - assertXPathValue(xmlBuildPage, "//result", "FAILURE"); - - // Check overall test result counts - XmlPage xmlTestReportPage = wc.goToXml(proj.getBuildByNumber(3).getUrl() + "/testReport/api/xml"); - assertXPathValue(xmlTestReportPage, "/testResult/failCount", "2"); - assertXPathValue(xmlTestReportPage, "/testResult/passCount", "2"); - assertXPathValue(xmlTestReportPage, "/testResult/skipCount", "0"); - - // Make sure the right tests passed and failed - assertXPathValue(xmlTestReportPage, "/testResult/suite/case[className/text()='org.jvnet.hudson.examples.small.AppTest']/status", "PASSED"); - assertXPathValue(xmlTestReportPage, "/testResult/suite/case[name/text()='testEleanor']/status", "FAILED"); - - - // TODO: implement more of these tests - // On the lastBuild/testReport page: - // Breadcrumbs should read #6 > Test Result where Test Result is a link to this page - // inside of div id="main-panel" we should find the text "0 failures (-1)" - // we should have a blue bar which is blue all the way across: div style="width: 100%; height: 1em; background-color: rgb(114, 159, 207); - // we should find the words "7 tests (?0)" - // we should find the words "All Tests" - // we should find a table - - // Inside that table, there should be the following rows: - // org.jvnet.hudson.examples.small 0ms 0 -1 0 3 - // org.jvnet.hudson.examples.small.deep 4ms 0 0 0 1 - Run theRun = proj.getBuildByNumber(7); - assertTestResultsAsExpected(wc, theRun, "/testReport", - "org.jvnet.hudson.examples.small", "0 ms", "SUCCESS", - /* total tests expected, diff */ 3, 0, - /* fail count expected, diff */ 0, -1, - /* skip count expected, diff */ 0, 0); - - assertTestResultsAsExpected(wc, theRun, "/testReport", - "org.jvnet.hudson.examples.small.deep", "4 ms", "SUCCESS", - /* total tests expected, diff */ 1, 0, - /* fail count expected, diff */ 0, 0, - /* skip count expected, diff */ 0, 0); - - // TODO: more, more, more. - // TODO: test report history by package - - } - - /** - * Test to demonstrate bug HUDSON-5246, inter-build diffs for junit test results are wrong - */ - @Bug(5246) - @LocalData - public void testInterBuildDiffs() throws IOException, SAXException { - List projects = this.jenkins.getProjects(); - // Make sure there's a project named TEST_PROJECT_WITH_HISTORY - Project proj = null; - for (Project p : projects) { - if (p.getName().equals(TEST_PROJECT_WITH_HISTORY)) proj = p; - } - assertNotNull("We should have a project named " + TEST_PROJECT_WITH_HISTORY, proj); - - // Validate that there are test results where I expect them to be: - HudsonTestCase.WebClient wc = new HudsonTestCase.WebClient(); - Run theRun = proj.getBuildByNumber(4); - assertTestResultsAsExpected(wc, theRun, "/testReport", - "org.jvnet.hudson.examples.small", "12 ms", "FAILURE", - /* total tests expected, diff */ 3, 0, - /* fail count expected, diff */ 1, 0, - /* skip count expected, diff */ 0, 0); - - - } - - /** - * Make sure the open junit publisher shows junit history - * @throws IOException - * @throws SAXException - */ - @LocalData - public void testHistoryPageOpenJunit() throws IOException, SAXException { - List projects = this.jenkins.getProjects(); - // Make sure there's a project named breakable - Project proj = null; - for (Project p : projects) { - if (p.getName().equals(TEST_PROJECT_WITH_HISTORY)) { - proj = p; - break; - } - } - assertNotNull("We should have a project named " + TEST_PROJECT_WITH_HISTORY, proj); - - // Validate that there are test results where I expect them to be: - HudsonTestCase.WebClient wc = new HudsonTestCase.WebClient(); - - HtmlPage historyPage = wc.getPage(proj.getBuildByNumber(7),"/testReport/history/"); - assertGoodStatus(historyPage); - assertXPath(historyPage, "//img[@id='graph']"); - assertXPath(historyPage, "//table[@id='testresult']"); - HtmlElement wholeTable = historyPage.getElementById("testresult"); - assertNotNull("table with id 'testresult' exists", wholeTable); - assertTrue("wholeTable is a table", wholeTable instanceof HtmlTable); - HtmlTable table = (HtmlTable) wholeTable; - - // We really want to call table.getRowCount(), but - // it returns 1, not the real answer, - // because this table has *two* tbody elements, - // and getRowCount() only seems to count the *first* tbody. - // Maybe HtmlUnit can't handle the two tbody's. In any case, - // the tableText.contains tests do a (ahem) passable job - // of detecting whether the history results are present. - - String tableText = table.getTextContent(); - assertTrue("Table text is missing the project name", - tableText.contains(TEST_PROJECT_WITH_HISTORY)); - assertTrue("Table text is missing the build number", - tableText.contains("7")); - assertTrue("Table text is missing the test duration", - tableText.contains("4 ms")); - } - - @Bug(19186) - public void testBrokenResultFile() throws Exception { - FreeStyleProject p = createFreeStyleProject(); - p.getBuildersList().add(new TestBuilder()); - p.getPublishersList().add(new JUnitResultArchiver("TEST-foo.xml", false, null)); - assertBuildStatus(Result.UNSTABLE, p.scheduleBuild2(0).get()); - } - private static final class TestBuilder extends Builder { - @Override public boolean perform(AbstractBuild build, Launcher launcher, BuildListener listener) throws InterruptedException, IOException { - build.getWorkspace().child("TEST-foo.xml").write("", null); - return true; - } - } - - void assertStringEmptyOrNull(String msg, String str) { - if (str==null) - return; - if (str.equals("")) - return; - fail(msg + "(should be empty or null) : \'" + str + "\'"); - } - - void assertPaneDiffText(String msg, int expectedValue, Object paneObj) { - assertTrue( "paneObj should be an HtmlElement, it was " + paneObj.getClass(), paneObj instanceof HtmlElement ); - String paneText = ((HtmlElement) paneObj).asText(); - if (expectedValue==0) { - assertStringEmptyOrNull(msg, paneText); - } else { - String expectedString = - (expectedValue >= 1 ? "+" : "-") - + Math.abs(expectedValue); - assertEquals(msg, expectedString, paneText); - } - } - - void assertTestResultsAsExpected(WebClient wc, Run run, String restOfUrl, - String packageName, - String expectedResult, String expectedDurationStr, - int expectedTotalTests, int expectedTotalDiff, - int expectedFailCount, int expectedFailDiff, - int expectedSkipCount, int expectedSkipDiff) throws IOException, SAXException { - - // TODO: verify expectedResult - // TODO: verify expectedDuration - - XmlPage xmlPage = wc.goToXml(run.getUrl() + restOfUrl + "/" + packageName + "/api/xml"); - int expectedPassCount = expectedTotalTests - expectedFailCount - expectedSkipCount; - // Verify xml results - assertXPathValue(xmlPage, "/packageResult/failCount", Integer.toString(expectedFailCount)); - assertXPathValue(xmlPage, "/packageResult/skipCount", Integer.toString(expectedSkipCount)); - assertXPathValue(xmlPage, "/packageResult/passCount", Integer.toString(expectedPassCount)); - assertXPathValue(xmlPage, "/packageResult/name", packageName); - - // TODO: verify html results - HtmlPage testResultPage = wc.getPage(run, restOfUrl); - - // Verify inter-build diffs in html table - String xpathToFailDiff = "//table[@id='testresult']//tr[td//span[text()=\"" + packageName + "\"]]/td[4]"; - String xpathToSkipDiff = "//table[@id='testresult']//tr[td//span[text()=\"" + packageName + "\"]]/td[6]"; - String xpathToTotalDiff = "//table[@id='testresult']//tr[td//span[text()=\"" + packageName + "\"]]/td[last()]"; - - Object totalDiffObj = testResultPage.getFirstByXPath(xpathToTotalDiff); - assertPaneDiffText("total diff", expectedTotalDiff, totalDiffObj); - - Object failDiffObj = testResultPage.getFirstByXPath(xpathToFailDiff); - assertPaneDiffText("failure diff", expectedFailDiff, failDiffObj); - - Object skipDiffObj = testResultPage.getFirstByXPath(xpathToSkipDiff); - assertPaneDiffText("skip diff", expectedSkipDiff, skipDiffObj); - - // TODO: The link in the table for each of the three packages in the testReport table should link to a by-package page, - // TODO: for example, http://localhost:8080/job/breakable/lastBuild/testReport/com.yahoo.breakable.misc/ - - } - - // TODO: Make sure that we meet this compatibility requirement: - // TODO: From users' point of view, Open Source *Unit publishers should continue to work as if nothing has changed - // TODO: * Old testReport URLs should still work - - - private void assertTestResults(FreeStyleBuild build) { - TestResultAction testResultAction = build.getAction(TestResultAction.class); - assertNotNull("no TestResultAction", testResultAction); - - TestResult result = testResultAction.getResult(); - assertNotNull("no TestResult", result); - - assertEquals("should have 1 failing test", 1, testResultAction.getFailCount()); - assertEquals("should have 1 failing test", 1, result.getFailCount()); - - assertEquals("should have 132 total tests", 132, testResultAction.getTotalCount()); - assertEquals("should have 132 total tests", 132, result.getTotalCount()); - } - -} diff --git a/test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java b/test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java deleted file mode 100644 index 320cd096656e..000000000000 --- a/test/src/test/java/hudson/tasks/test/AggregatedTestResultPublisherTest.java +++ /dev/null @@ -1,190 +0,0 @@ -package hudson.tasks.test; - -import com.google.common.collect.ImmutableList; -import hudson.model.AbstractBuild; -import hudson.model.FreeStyleBuild; -import hudson.model.FreeStyleProject; -import hudson.model.Result; -import hudson.tasks.BuildTrigger; -import hudson.tasks.Fingerprinter; -import hudson.tasks.Shell; -import hudson.tasks.junit.JUnitResultArchiver; -import hudson.tasks.test.helper.BuildPage; -import hudson.tasks.test.helper.ProjectPage; -import org.junit.Before; -import org.junit.Rule; -import org.junit.Test; -import org.jvnet.hudson.test.JenkinsRule; -import org.jvnet.hudson.test.TouchBuilder; -import org.jvnet.hudson.test.recipes.LocalData; - -import java.util.List; - -import static org.hamcrest.Matchers.hasSize; -import static org.junit.Assert.assertThat; - -public class AggregatedTestResultPublisherTest { - public static final String TEST_PROJECT_NAME = "junit"; - public static final String AGGREGATION_PROJECT_NAME = "aggregated"; - @Rule - public JenkinsRule j = new JenkinsRule(); - private FreeStyleProject upstreamProject; - private FreeStyleProject downstreamProject; - - private FreeStyleBuild build; - private JenkinsRule.WebClient wc; - private static final String[] singleContents = { - "abcdef" - }; - private static final String[] singleFiles = { - "test.txt" - }; - private BuildPage buildPage; - private ProjectPage projectPage; - - @Before - public void setup() { - wc = j.createWebClient(); - } - - @LocalData - @Test - public void aggregatedTestResultsOnly() throws Exception { - createUpstreamProjectWithNoTests(); - createDownstreamProjectWithTests(); - - buildAndSetupPageObjects(); - - projectPage.getLatestAggregatedTestReportLink() - .assertHasLatestAggregatedTestResultText() - .assertHasTests() - .follow().hasLinkToTestResultOfBuild(TEST_PROJECT_NAME, 1); - - projectPage.assertNoTestReportLink(); - - buildPage.getAggregatedTestReportLink() - .assertHasAggregatedTestResultText() - .assertHasTests() - .follow().hasLinkToTestResultOfBuild(TEST_PROJECT_NAME, 1); - buildPage.assertNoTestReportLink(); - } - - @LocalData - @Test - public void testResultsOnly() throws Exception { - createUpstreamProjectWithTests(); - createDownstreamProjectWithNoTests(); - - buildAndSetupPageObjects(); - - projectPage.getLatestTestReportLink() - .assertHasLatestTestResultText() - .assertHasTests() - .follow(); - projectPage.getLatestAggregatedTestReportLink() - .assertHasLatestAggregatedTestResultText() - .assertNoTests() - .follow(); - - buildPage.getTestReportLink() - .assertHasTestResultText() - .assertHasTests() - .follow(); - buildPage.getAggregatedTestReportLink() - .assertHasAggregatedTestResultText() - .assertNoTests() - .follow(); - } - - @LocalData - @Test - public void testResultsAndAggregatedTestResults() throws Exception { - createUpstreamProjectWithTests(); - createDownstreamProjectWithTests(); - - buildAndSetupPageObjects(); - - projectPage.getLatestTestReportLink() - .assertHasLatestTestResultText() - .assertHasTests() - .follow(); - projectPage.getLatestAggregatedTestReportLink() - .assertHasLatestAggregatedTestResultText() - .assertHasTests() - .follow(); - - buildPage.getTestReportLink() - .assertHasTestResultText() - .assertHasTests() - .follow(); - buildPage.getAggregatedTestReportLink() - .assertHasAggregatedTestResultText() - .assertHasTests() - .follow() - .hasLinkToTestResultOfBuild(TEST_PROJECT_NAME, 1); - } - - private void buildAndSetupPageObjects() throws Exception { - buildOnce(); - projectPage = new ProjectPage(wc.getPage(upstreamProject)); - buildPage = new BuildPage(wc.getPage(build)); - } - - private void buildOnce() throws Exception { - build(1); - } - - private void build(int numberOfDownstreamBuilds) throws Exception { - build = j.buildAndAssertSuccess(upstreamProject); - j.waitUntilNoActivity(); - - List> downstreamBuilds = ImmutableList.copyOf(build.getDownstreamBuilds(downstreamProject)); - assertThat(downstreamBuilds, hasSize(numberOfDownstreamBuilds)); - } - - - private void createUpstreamProjectWithTests() throws Exception { - createUpstreamProjectWithNoTests(); - addJUnitResultArchiver(upstreamProject); - } - - private void createUpstreamProjectWithNoTests() throws Exception { - upstreamProject = j.createFreeStyleProject(AGGREGATION_PROJECT_NAME); - addFingerprinterToProject(upstreamProject, singleContents, singleFiles); - upstreamProject.setQuietPeriod(0); - } - - private void createDownstreamProjectWithTests() throws Exception { - createDownstreamProjectWithNoTests(); - - addJUnitResultArchiver(downstreamProject); - j.jenkins.rebuildDependencyGraph(); - } - - private void createDownstreamProjectWithNoTests() throws Exception { - downstreamProject = j.createFreeStyleProject(TEST_PROJECT_NAME); - downstreamProject.setQuietPeriod(0); - addFingerprinterToProject(downstreamProject, singleContents, singleFiles); - - upstreamProject.getPublishersList().add(new BuildTrigger(ImmutableList.of(downstreamProject), Result.SUCCESS)); - upstreamProject.getPublishersList().add(new AggregatedTestResultPublisher(null)); - - j.jenkins.rebuildDependencyGraph(); - } - - private void addJUnitResultArchiver(FreeStyleProject project) { - JUnitResultArchiver archiver = new JUnitResultArchiver("*.xml", false, null); - project.getPublishersList().add(archiver); - project.getBuildersList().add(new TouchBuilder()); - } - - private void addFingerprinterToProject(FreeStyleProject project, String[] contents, String[] files) throws Exception { - StringBuilder targets = new StringBuilder(); - for (int i = 0; i < contents.length; i++) { - project.getBuildersList().add(new Shell("echo $BUILD_NUMBER " + contents[i] + " > " + files[i])); - targets.append(files[i]).append(','); - } - - project.getPublishersList().add(new Fingerprinter(targets.toString(), false)); - } -} diff --git a/test/src/test/java/hudson/tasks/test/TestResultExtensionTest.java b/test/src/test/java/hudson/tasks/test/TestResultExtensionTest.java deleted file mode 100644 index c6cc57b29f96..000000000000 --- a/test/src/test/java/hudson/tasks/test/TestResultExtensionTest.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import hudson.model.FreeStyleBuild; -import hudson.model.FreeStyleProject; -import hudson.model.Result; -import hudson.model.AbstractBuild; -import org.jvnet.hudson.test.HudsonTestCase; -import org.jvnet.hudson.test.TouchBuilder; - -import java.util.concurrent.TimeUnit; - - -/** - * A test case to make sure that the TestResult extension mechanism - * is working properly. - */ -public class TestResultExtensionTest extends HudsonTestCase { - - public void testTrivialRecorder() throws Exception { - FreeStyleProject project = createFreeStyleProject("trivialtest"); - TrivialTestResultRecorder recorder = new TrivialTestResultRecorder(); - project.getPublishersList().add(recorder); - project.getBuildersList().add(new TouchBuilder()); - - FreeStyleBuild build = project.scheduleBuild2(0).get(5, TimeUnit.MINUTES); /* leave room for debugging*/ - assertBuildStatus(Result.SUCCESS, build); - TrivialTestResultAction action = build.getAction(TrivialTestResultAction.class); - assertNotNull("we should have an action", action); - assertNotNull("parent action should have an owner", action.owner); - Object resultObject = action.getResult(); - assertNotNull("we should have a result"); - assertTrue("result should be an TestResult", - resultObject instanceof TestResult); - TestResult result = (TestResult) resultObject; - AbstractBuild ownerBuild = result.getOwner(); - assertNotNull("we should have an owner", ownerBuild); - assertNotNull("we should have a list of test actions", result.getTestActions()); - - // Validate that there are test results where I expect them to be: - HudsonTestCase.WebClient wc = new HudsonTestCase.WebClient(); - HtmlPage projectPage = wc.getPage(project); - assertGoodStatus(projectPage); - HtmlPage testReportPage = wc.getPage(project, "/lastBuild/testReport/"); - assertGoodStatus(testReportPage); - - - } -} - - diff --git a/test/src/test/java/hudson/tasks/test/TrivialTestResult.java b/test/src/test/java/hudson/tasks/test/TrivialTestResult.java deleted file mode 100644 index 6bcdd33decbb..000000000000 --- a/test/src/test/java/hudson/tasks/test/TrivialTestResult.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.Extension; - - -/** - * A class to exercise the TestResult extension mechanism. - */ -@Extension -public class TrivialTestResult extends SimpleCaseResult { - - - /** A list only containing this one result. Useful for returning - * from getXXXTests() methods. - */ - - - /** A silly world that is all the data associated with this test result */ - private String sillyWord; - - public TrivialTestResult() { - this("unwordy"); - } - - public TrivialTestResult(String sillyWord) { - this.sillyWord = sillyWord; - } - - public String getSillyWord() { - return sillyWord; - } - -} diff --git a/test/src/test/java/hudson/tasks/test/TrivialTestResultAction.java b/test/src/test/java/hudson/tasks/test/TrivialTestResultAction.java deleted file mode 100644 index f51f50d24d5e..000000000000 --- a/test/src/test/java/hudson/tasks/test/TrivialTestResultAction.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.model.AbstractBuild; -import org.kohsuke.stapler.StaplerProxy; - -/** - * A class to exercise the TestResult extension mechanism. - */ -public class TrivialTestResultAction extends AbstractTestResultAction implements StaplerProxy { - - protected TrivialTestResult result; - - @Deprecated - protected TrivialTestResultAction(AbstractBuild owner, TrivialTestResult result) { - super(owner); - this.result = result; - this.result.setParentAction(this); - } - - /** @since 1.545 */ - protected TrivialTestResultAction(TrivialTestResult result) { - this(null, result); - } - - /** - * Gets the number of failed tests. - */ - @Override - public int getFailCount() { - return 0; // (FIXME: generated) - } - - /** - * Gets the total number of tests. - */ - @Override - public int getTotalCount() { - return 0; // (FIXME: generated) - } - - /** - * Returns the object that represents the actual test result. - * This method is used by the remote API so that the XML/JSON - * that we are sending won't contain unnecessary indirection - * (that is, {@link AbstractTestResultAction} in between. - *

- *

- * If such a concept doesn't make sense for a particular subtype, - * return this. - */ - @Override - public Object getResult() { - return result; - } - - /** - * Returns the object that is responsible for processing web requests. - * - * @return If null is returned, it generates 404. - * If {@code this} object is returned, no further - * {@link org.kohsuke.stapler.StaplerProxy} look-up is done and {@code this} object - * processes the request. - */ - public Object getTarget() { - return getResult(); - } -} diff --git a/test/src/test/java/hudson/tasks/test/TrivialTestResultRecorder.java b/test/src/test/java/hudson/tasks/test/TrivialTestResultRecorder.java deleted file mode 100644 index aaa272bb10e9..000000000000 --- a/test/src/test/java/hudson/tasks/test/TrivialTestResultRecorder.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * The MIT License - * - * Copyright (c) 2009, Yahoo!, Inc. - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ -package hudson.tasks.test; - -import hudson.Extension; -import hudson.Launcher; -import hudson.model.AbstractBuild; -import hudson.model.AbstractProject; -import hudson.model.BuildListener; -import hudson.tasks.BuildStepDescriptor; -import hudson.tasks.BuildStepMonitor; -import hudson.tasks.Publisher; -import hudson.tasks.Recorder; - -import java.io.IOException; -import java.io.Serializable; - - -/** - * A class to exercise the TestResult extension mechanism. - */ -public class TrivialTestResultRecorder extends Recorder implements Serializable { - @Override - public boolean perform(AbstractBuild build, - Launcher launcher, BuildListener listener) - throws InterruptedException, IOException { - System.out.println("performing TrviialTestResultRecorder"); - listener.getLogger().println("perfoming TrivialTestResultRecorder"); - TrivialTestResult r = new TrivialTestResult("gubernatorial"); - TrivialTestResultAction action = new TrivialTestResultAction(r); - r.setParentAction(action); - build.addAction(action); - listener.getLogger().println("done with TrivialTestResultRecorder"); - System.out.println("done with TrivialTestResultRecorder"); - return true; - } - - public BuildStepMonitor getRequiredMonitorService() { - return BuildStepMonitor.NONE; - } - - @Extension - public static class DescriptorImpl extends BuildStepDescriptor { - - /** - * Returns true if this task is applicable to the given project. - * - * @return true to allow user to configure this post-promotion task for the given project. - * @see hudson.model.AbstractProject.AbstractProjectDescriptor#isApplicable(hudson.model.Descriptor) - */ - @Override - public boolean isApplicable(Class jobType) { - return true; - } - - /** - * Human readable name of this kind of configurable object. - */ - @Override - public String getDisplayName() { - return "trivialtestrecorder"; - } - } - -} diff --git a/test/src/test/java/hudson/tasks/test/helper/AbstractPage.java b/test/src/test/java/hudson/tasks/test/helper/AbstractPage.java deleted file mode 100644 index f3ababff8834..000000000000 --- a/test/src/test/java/hudson/tasks/test/helper/AbstractPage.java +++ /dev/null @@ -1,39 +0,0 @@ -package hudson.tasks.test.helper; - -import com.gargoylesoftware.htmlunit.html.HtmlAnchor; -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import org.xml.sax.SAXException; - -import java.io.IOException; -import java.util.List; - -import static org.junit.Assert.assertFalse; - -public abstract class AbstractPage { - public static final String AGGREGATED_TEST_REPORT_URL = "aggregatedTestReport"; - public static final String TEST_REPORT_URL = "testReport"; - - protected HtmlPage htmlPage; - - public AbstractPage(HtmlPage htmlPage) { - this.htmlPage = htmlPage; - } - - protected abstract String getHrefFromTestUrl(String testUrl); - - public HtmlAnchor getTestReportAnchor(String testUrl) throws IOException, SAXException { - return htmlPage.getAnchorByHref(getHrefFromTestUrl(testUrl)); - } - public void assertNoLink(String url) { - List anchors = htmlPage.getAnchors(); - boolean found = false; - String fullUrl = getHrefFromTestUrl(url); - for (HtmlAnchor anchor : anchors) { - if (fullUrl.equals(anchor.getHrefAttribute())) { - found = true; - break; - } - } - assertFalse("Link to " + fullUrl + " found, but should not be present", found); - } -} diff --git a/test/src/test/java/hudson/tasks/test/helper/AbstractTestResultLink.java b/test/src/test/java/hudson/tasks/test/helper/AbstractTestResultLink.java deleted file mode 100644 index 8a24e7216f9b..000000000000 --- a/test/src/test/java/hudson/tasks/test/helper/AbstractTestResultLink.java +++ /dev/null @@ -1,42 +0,0 @@ -package hudson.tasks.test.helper; - -import com.gargoylesoftware.htmlunit.Page; -import com.gargoylesoftware.htmlunit.html.HtmlAnchor; -import com.gargoylesoftware.htmlunit.html.HtmlPage; - -import java.net.MalformedURLException; - -import static org.hamcrest.Matchers.containsString; -import static org.junit.Assert.assertThat; - -public class AbstractTestResultLink> { - protected HtmlAnchor testResultLink; - - public AbstractTestResultLink(HtmlAnchor testResultLink) { - this.testResultLink = testResultLink; - } - - public String getResultText() { - return testResultLink.getNextSibling().asText(); - } - public T assertNoTests() { - assertThat(getResultText(), containsString("no tests")); - return castToConcreteType(); - } - - public T assertHasTests() { - // Text is either "(no failures)" or " failure(s)" - assertThat(getResultText(), containsString("failure")); - return castToConcreteType(); - } - - public TestResultsPage follow() throws Exception { - return new TestResultsPage((HtmlPage) testResultLink.openLinkInNewWindow()); - } - - @SuppressWarnings("unchecked") - private T castToConcreteType() { - return (T) this; - } - -} diff --git a/test/src/test/java/hudson/tasks/test/helper/BuildPage.java b/test/src/test/java/hudson/tasks/test/helper/BuildPage.java deleted file mode 100644 index f56d44caae1c..000000000000 --- a/test/src/test/java/hudson/tasks/test/helper/BuildPage.java +++ /dev/null @@ -1,36 +0,0 @@ -package hudson.tasks.test.helper; - -import com.gargoylesoftware.htmlunit.html.HtmlAnchor; -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import org.xml.sax.SAXException; - -import java.io.IOException; - -public class BuildPage extends AbstractPage { - - public BuildPage(HtmlPage htmlPage) { - super(htmlPage); - } - - @Override - protected String getHrefFromTestUrl(String testUrl) { - return testUrl + "/"; - } - - - public TestResultLink getAggregatedTestReportLink() throws IOException, SAXException { - return new TestResultLink(getTestReportAnchor(AGGREGATED_TEST_REPORT_URL)); - } - - public TestResultLink getTestReportLink() throws IOException, SAXException { - return new TestResultLink(getTestReportAnchor(TEST_REPORT_URL)); - } - - public void assertNoTestReportLink() { - assertNoLink(TEST_REPORT_URL); - } - - public void assertNoAggregatedTestReportLink() { - assertNoLink(AGGREGATED_TEST_REPORT_URL); - } -} diff --git a/test/src/test/java/hudson/tasks/test/helper/LatestTestResultLink.java b/test/src/test/java/hudson/tasks/test/helper/LatestTestResultLink.java deleted file mode 100644 index 61df16e747ce..000000000000 --- a/test/src/test/java/hudson/tasks/test/helper/LatestTestResultLink.java +++ /dev/null @@ -1,25 +0,0 @@ -package hudson.tasks.test.helper; - -import static org.hamcrest.Matchers.containsString; -import static org.junit.Assert.assertThat; -import com.gargoylesoftware.htmlunit.html.HtmlAnchor; - -public class LatestTestResultLink extends AbstractTestResultLink { - - public static final String LATEST_TEST_RESULT_STRING = "Latest Test Result"; - public static final String LATEST_AGGREGATED_TEST_RESULT_STRING = "Latest Aggregated Test Result"; - - LatestTestResultLink(HtmlAnchor testResultLink) { - super(testResultLink); - } - - public LatestTestResultLink assertHasLatestTestResultText() { - assertThat(testResultLink.getTextContent(), containsString(LATEST_TEST_RESULT_STRING)); - return this; - } - - public LatestTestResultLink assertHasLatestAggregatedTestResultText() { - assertThat(testResultLink.getTextContent(), containsString(LATEST_AGGREGATED_TEST_RESULT_STRING)); - return this; - } -} diff --git a/test/src/test/java/hudson/tasks/test/helper/ProjectPage.java b/test/src/test/java/hudson/tasks/test/helper/ProjectPage.java deleted file mode 100644 index 92ce4d136294..000000000000 --- a/test/src/test/java/hudson/tasks/test/helper/ProjectPage.java +++ /dev/null @@ -1,35 +0,0 @@ -package hudson.tasks.test.helper; - -import com.gargoylesoftware.htmlunit.html.HtmlPage; -import org.xml.sax.SAXException; - -import java.io.IOException; - -public class ProjectPage extends AbstractPage { - - public ProjectPage(HtmlPage projectPage) { - super(projectPage); - } - - - public LatestTestResultLink getLatestTestReportLink() throws IOException, SAXException { - return new LatestTestResultLink(getTestReportAnchor(TEST_REPORT_URL)); - } - - public LatestTestResultLink getLatestAggregatedTestReportLink() throws IOException, SAXException { - return new LatestTestResultLink(getTestReportAnchor(AGGREGATED_TEST_REPORT_URL)); - } - - protected String getHrefFromTestUrl(String testUrl) { - return "lastCompletedBuild/" + testUrl + "/"; - } - - public void assertNoTestReportLink() { - assertNoLink(TEST_REPORT_URL); - } - - public void assertNoAggregatedTestReportLink() { - assertNoLink(AGGREGATED_TEST_REPORT_URL); - } - -} diff --git a/test/src/test/java/hudson/tasks/test/helper/TestResultLink.java b/test/src/test/java/hudson/tasks/test/helper/TestResultLink.java deleted file mode 100644 index 79393ad832d1..000000000000 --- a/test/src/test/java/hudson/tasks/test/helper/TestResultLink.java +++ /dev/null @@ -1,27 +0,0 @@ -package hudson.tasks.test.helper; - -import com.gargoylesoftware.htmlunit.html.HtmlAnchor; - -import static org.hamcrest.Matchers.containsString; -import static org.junit.Assert.assertThat; - -public class TestResultLink extends AbstractTestResultLink { - - public static final String TEST_RESULT_STRING = "Test Result"; - public static final String AGGREGATED_TEST_RESULT_STRING = "Aggregated Test Result"; - - TestResultLink(HtmlAnchor testResultLink) { - super(testResultLink); - } - - public TestResultLink assertHasTestResultText() { - assertThat(testResultLink.getTextContent(), containsString(TEST_RESULT_STRING)); - return this; - } - - public TestResultLink assertHasAggregatedTestResultText() { - assertThat(testResultLink.getTextContent(), containsString(AGGREGATED_TEST_RESULT_STRING)); - return this; - } - -} diff --git a/test/src/test/java/hudson/tasks/test/helper/TestResultsPage.java b/test/src/test/java/hudson/tasks/test/helper/TestResultsPage.java deleted file mode 100644 index ddf40196d8d2..000000000000 --- a/test/src/test/java/hudson/tasks/test/helper/TestResultsPage.java +++ /dev/null @@ -1,19 +0,0 @@ -package hudson.tasks.test.helper; - -import com.gargoylesoftware.htmlunit.html.HtmlPage; - -public class TestResultsPage { - protected HtmlPage htmlPage; - - public TestResultsPage(HtmlPage htmlPage) { - this.htmlPage = htmlPage; - } - - public void hasLinkToTest(String testName) { - htmlPage.getAnchorByText(testName); - } - - public void hasLinkToTestResultOfBuild(String projectName, int buildNumber) { - htmlPage.getAnchorByText(projectName + " #" + buildNumber); - } -} diff --git a/test/src/test/resources/hudson/tasks/junit/HistoryTest.zip b/test/src/test/resources/hudson/tasks/junit/HistoryTest.zip deleted file mode 100644 index 617a44f4ef2e4fe5f3ffc9f1ebbe36c1d5a3d9a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17288 zcmd^nbyQVb*FN1P0#Z`aCEcwwNP~2DNvAY|NOvRMAPo`{3IbBnE!`l9f)f7rf$Np< zz907;zcIc)zJuq$7-#SK?78NgYdvetIhB=!ghBuVz1H<(xzGOi>jN4L6U@w7&+fjG zB0LymJT0T-3In60k~0)o?Rx_-*}w1mo)vTHKEz-5IaynoyPV%0E6wl^cOPB38~yU# zdJd)*27f(5;y()6&Aj{wx#K6Ew$H+v-#Hh{0K*!7o{5yZTY{~0ShXITN92iJ& zmHoE9DL5Ed69gF8{TmBDdvJPZON+D710g)SFnS^K-H+NB&>FsA-im7_9?yakjMykB z$n#Sq5Q?U;P05CL*zCf)bLh6o0~bJ0+q3EHJ>@(K7#$+g3E#_RrV?y9zZmta z_HL{Hw73r8peb>SoG%ceu3yAcrTv!gy>%UkpSHT6o$B?aA7EQ^Kp9Uc;Z^eJ_ovHN ziai>3=X|4HoMw$<&m&e>(UZtipLm#~jmx46C;9k`8*!R6S>34LOMRknAsvkG%d1IMw=P!slO@#??&wly-TOPGha9mOjs5}qtqLg5eTn( zl#B7o*uT4THH(R}U{Qpl)g`m0+>_`*h^yBNr_1{nQzT0-cToCL^u^d^v z6L$y6Lp9uhm{zxk(9fMQrr#sK1bqm3-cfht_yMI53@@_$A?eqsWh7UO0ylm3N=$T4 zzXm88YKag5WuNrgkTJ55j!xCs7Olr{mY+?P7b9le+jg+onvFarzmJ?UG~l46SXkEG zW^G@C`p9Tt%Jux?<_~xLn&sRR)1zvJKm$y1vcQ~<>FK9rF7^`B7(%5$P@y=z>iCDC z0-5q(2i2J=uLsptb6yQ95Z1pAsxz!#L3I`3e<7&k|C^vXDgbz-Zn%qRB9muX!+E=>-#o=l42Y8loC=46`nD z(vRG62^IVJYef_}G9_JV@;)_7frA_iP;$+hH1uxZ|vo?K$j zD3>fJfU1t-q}p34IEVsgm3U#>kK;AB72(p-%4)NW;PB|s-xd5}7uMVA*M)W|y4@df zH73ePGw)3%hfcZeadqFR?(WzcP#bVlZd7zzd3r}{6h&*2dsHTQ+tQghkIbTdQw_c3 ze$nBn#1lmShU#kTnxDn?8(_wEh9?Rq-3)E=E1Xe2D}7SmTqcHpTInX5DDSG${YZJq ztHtocdTpELSlD?2oUJ0VJ} zVkS)~8Sd8dvR}iH(^yPA$PZz|mEABPb5(~&BCRq!toUup6c+oGVlrR!i6jxk_L99g^B3iJ=PywY5%|}Uukg~$M)b=;%XO)OX962 zgX#}yC8*^dU%m3FEaKOd1T<|DkD-6BtJ43?oOu?h*XK;RE75v&&IHX0IQXuobpZ_(?mXzrQ;zA@A7j|y%r z-@#k8e4E8mHE~wolv?QPe+*CTUwg6&y%Xi=^lf1cd8W-OkHt93%lkj(_8OV-}``tFPWsm7z zK#E2#JX&s*6#8j=4tV%d38xH(k`kF&9n2fUS_*_6YL+fpHFk2(X4up`IfuIv1?}<+ zkjMJ&I8kC5gvK$>aHiz8c;)YOtvIx0hA5=j)$&>V--j6reR__-rm45qen&b6rNzmR zeJ)*Pz@qvg=7Wd6B%=~>J3+0Ihw|^VnRQWEt93q*g6AW9B(r*%JTWt@Md&Z?&^A(2 zCCHSF*$L*4oOGS(v1`c{-}dMr5gS6%NNToCt(Rd z;WW1L{Dg2w`!_8Hc_S`-ieet%jn(isq{V06_-h5f>VZ|tv(|tIdh}`AM16ZDLFO%6 z$+|8%+Nzjegy~H&1RI6_DRL~LFMZ+7ET?y{(nd8&pr4(iz0>T;^b}!))Nw;I}@ngY4tT_@bzu8kMQHPf$xVC+pZL)B!-$gyhMx)y zP4BIe8l)^GvBNtZzz^=?aPJh4R_3#C#KC0F+S1IVG9?M&AyRceA2zyu7iX~dX`$o8 zR3{UxHtZj0UvLR6^b|+lmG-oHYSC1BNWbqOB)QK)?xB?95%l=5rXg5!;|ZcSl@e5n z9X4D7BSit*Q~gTavZpA!5?IhVF+8!H5Jnj<*PC~=JYZU(N=iy}o;-Ep$N9>C%pRYf zwa6O!nE`+6l^aLs#{ACcfCp?aB5d22TDZCqIFdd)$J$zr$Z~L0YN|(F35U;G-Cb4Q z_ExVy9bMah6XV40zPuGxKSptu(TwV)yqgLNd%ad(1Ovl@6S@x+U*5IkN>|4R^-~qw47x_+oi1#v z<4|MZYhLHzjs{chZK_vQ#LG&OJNwTBDK?SALZ7~6kme;n$XMF?BqDu!3iW&T*92k! z*b)Byy3wwRg^q>&oB-PVBLM^nZbc#06a@%i=*6G?$00O9ys3uGuo%NT&Q+izY;Uil8!}H9bbPak`2}(M>~*w(u+z#akS_Inb+$SzM;g^e+Pd~LoLH{D1PmTe-SY0i zrqde4!G{$=eP#n&P`$nH!)V+ zWmGFomRBb4eE0pJyM9e2c%*z%BBY2f)qsWT?l=$bz}7&p*gJb$;Z?W+|DNj0&B)s9RIzE=opN z8?h@1Iw$i!kx^I4;U13V)TgcTJ#F>V5^XQi7~fAP63b!V@Q@a61;LtNcVrR~c<|x) zIebQyPQqhe5gRD~uCCVCY?fipy&x`f=rhjb`I_(jj{(S>oL9O9qTmkiO!w~mo&g>M zf%>oa%x5#eb^d33C0MWWKhUI5Cm6xV2&}jxH|KxAr0^&HcWr98#Q*%njVC%edJV|4 za=-a}f%I#H@qWcq&(!a!J>IS(Pei`I(T_Mov9-O~F^G2@&?8@gNkkPjzn0(n5FH=`8;IHc2@ptPp<>&D| z4Vy&?(4&(pLZ*K^CG}o)ZQkuURn#pw8XE*<+0bxGKRzL&{zy2{g;&;3x>gD?XiJ%F z$KD&}cyrKYj~p|03lVi|+BH!Y7D!4hq5H(nHBmNh^mB-sPRILz6CUaXtZ#_P^Tytt zX=7g~#HM@Rq^UU1mzD6|@_lT8|D5~NGH%n?144#4Zv{zMz3-ci*^6i4Y4a$XLV45F z!yhyT8C75w;E>>Ad{;UcVVciL?&%@Dx`9D-xSm1c`CI-a6vCdwA?! znQp|inUU1)n1-XnwVZwH9{+YU*ZMZ581{y>!+8f!{;#J{Bbb6MWOSB;Bk8#W^Ol7H zhgj*MwtG&tW)|fMkw2?erv&u9g8A#x%%RqZI&qZt8q9^)9zR2*+AkPm;|bb(ehje} zRyc@@-6K_^&jw!YcpsOUh1?|$E#-6E62)75l#FM-j(ZMbX}-E&9Xn!zrnR#4DAayt z`#7vuS@rDAhd*s2KXNZSN%{f#n+k#)Q|!5{UKQY&1b}1S=!Env2!2t)tIl|p3KI7_ zstv`J_~*;3(m=@Mp^|epla<{|d(h!IYX?D9I8yuo4c_k2V*O5iT4*r?mO^|E_Un8=EKew1SVn0`dzj79#04>ff^`mubsL;qW%PaHjEHpg#? z);^Mo$=zcmYF8v~PM~B)%tP1w{=rPlzU*1T2U^@v7rT$1OIcrpj7%~@`d1rDzCDtL z`%0AyoAS{Y9Vt=@jrhbn@5SZJB~3i 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 I3I_K709wK+ApigX diff --git a/test/src/test/resources/hudson/tasks/junit/JUnitParserTest.zip b/test/src/test/resources/hudson/tasks/junit/JUnitParserTest.zip deleted file mode 100644 index be9f9d5939c67eeae577b3a465c713cb9fb62255..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274222 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

qus%m))r*D|HQm^Ko|IJYulTBq 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 z

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�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ⅇ5W);%D2;Sic>#A8S0>q?4({xC z<-+46L|gNIE&oL$#K{-G5kK&;Sl~1zZznJv=45uf64WNso)EZng}6s;TAzn~UZnA4=nHx7vdUBVzko#RiJ1so3d-2;)3&vVWJt`@d*~sts zyE}K9$n+%a1PE}k_zuk;(4+p80lAu=JIkQOIcas$+O6mwwMKJKU^v8c7|S6eRH0#T zc`Ii))5{z+tYow5$bXtA>p3P_(!u8FAzwKc;8x~TAwJagwK0xVeTU|Z@K|QVG+(7Q zW4Suuc^sJd$+>@n^K)}`ex#vXKONC`!V-u<*$o0QsI(7G`nfO}xt)5E-&gS?8*$UH z3d&O3X-6Nz)TtJa=VO?{mj+6tYxmw<=KfD-1vcQ3DxcoQolTJ32ufrPn=+s7SW?|a>+gt-_fVa@;~%;{S} z3G-Q}#LL9SaOI|}it%!UVg$=>0E((FxAb%D{pj`emm^wCqIPq|-TX4569|ghC|t42 zoXW%F)nDPmFe5Z!fgPd&Vo)vq`(HIU01z6uC={j&dqK-4oTW$9vT;Y=@V=wzZ~;^boef3ov*?EpLP=!_-;`tLy0 z5-);V%aWN${5GhAZ%%UgpJ6I+6e5e>pSX@=OhF|F?;z7c)njIp z{@yVi)cX2f9yoNM z466Q3L3JfI@KiwIGREl}k%fr0Ajv|QCmRj3%JG_oH5JZBj!#SCMiRTX2i7-?Exbf4 znKSW`_7Ohl(Ha``pJHCKy6Y%0$rk;@M;S{La4rb^fbKHF_Oz%c2`uUnbnP~l!8u7~ zpQ1Y1l4sR0?b=re|h=))gmE=IY{Q3nMs86ocd-TAwk_+_7=R93W+Q)zQM>78Wo(4)p zaXoS^40TrZZ!S!Uj@+2rS93Ue`Y;n+rpIQ7r;}7-pGU#CyYCN21@-MB$=xos@1iAT zwXp2FDwezLr#VO6EOFJG!oEjm?cX~w{s}DV5w7?SJH@(R`dC_QXef%|751&eIRuEV z8i8G2=uS&HKxRvYTbV#}@8kv9Z6l6-*S1O-DKBuF*=Rj;%q>%;DvW!nmhqLb%Vo$6 z1NXyA#BCT+?8Ye1EYre)S7IggkqcMFhCm^z<$DTWnyf9+A;pXbT2feCG$&N9qS+$@ zLs>ZU7hR_ztMD{^nO0tzLpJJEtjj*|00^t`^RtsqcUNB*{-sKjfi-&|P(EGdjCI-E zS7!X)i? zW%`RVlN;q8`L(bN=^>vJa-2rOsJc+HT+3+wbU2PWS^xA41WF-EbhDPn$FQQ7v(o1| zM-S*+VkP*iqF4>zTqhn)ECNR_<-ty)KVC25&qR?wPD|rBTl;?GK4AaSjH48feP~g9uoGMx?Ls1HMwb`el3bp_ z47Fp4Z|JZLegz0bmt4MhQGs)0>kI!;Kn_PnSEwwvCB8V+TmXy)xUm7J2ir*(JX z>gdF@z}(4VJl1X8h6b2=hEJxRWj-=P-Ojusu&DQyqtzo9bd}0q?f6vma9iC_vO@pR z(%N{h1zOarR|-`-c}e?)7qM zy}x_iT{)S!RNpMj51dq0pksFVSCFMA0*iXuZWG+;cQB+gtUGJ#59ACjL7+vwO!c~* zSbpi~c6$}8UI@z%phdmQB$jl00$8-^FJLlNbJ_uRZ$YZw2}so|8+|`rX&QCmbtLyO zq16zysCWGHyn3AKSIy&XCjd&-{I#fOVw3op(*{`7dp)vY`e#uOeqKrwjgtpHI>K5z zD(t+kn(uRh)D>1Kzpu{XXc>js2F%1jNmlI~4?f>KwNmNWN?1tcRE|UML8_j?_Df(^ z4^Z`xpJ(-IsLtAzdOoYNjMFj~j3&)RPPxgAox1|0UK$TJRZ&`w1gZ+jlvmA;n?gE0 z)b00HrQ~YWy*C(4=!(Eu%9Rf9M!u*6DZu7Xfa~)&=DT(pL+DLEi$SJUubUn47`^*h*q+Ose0$UT&#>Xh^Ooc$5UK9tCQ zy?_>#0auulI^VTgR3(SU(sXF6;9ILfg|lzLK2_(%X*rAz628vR8e-z|qAKCtWFFdMbZ;dUQ{o9zNjd72hN}42A}(fIL0YNAWaA zSanL>=6C$C!P(4zdwL35F!ynM_s&_s;Cq1Rz07t&5||ApQvqBxSKBvfsfy}$=w(}| zf90Xj;=}%MQYRoz3X-K}Q)uoFCq?nZNtL7S?Esuq_#*Eiz)7)bXj@(5cZK?LFb5`l zwwBr>>oGM8ZadwC`Y=C;I1mfup$KIhl_`)MfjpG)#mdZ@X#^-w9(S5u=4V1F2MNlP zTfR<3*L8mHszaO;F>BjG5f^0Am39y_W?G4NcA2ach0s`=*`Pr(B;0`dQNu3a%Y~V6 z9E{agjpyq$NFYxR4a$=%Qs2diad>^fmKU-E<;gP)aGvwzil99C4Ajb<1Umpq{p4X! zUt{f}U1ba12Ia{&ocm5TfBh4bhjJj^M1y1i@=z=7 z>dl}$6eW;{n&yG)f6haZfHXavXH5_BFHMiSHK-F3f1V1wlON>`NYlIgOVd*;nOf@H zU=Ml3xn=eGk}f=jQKNT+qoSg)(oPhyN_{MVnw&^GV_ZO}r{B-hSC>dk%x=l^tKjr5 zqar3|YSSv$lP3^*uMiQ?^aj`l>Yg;cm+gIkrpNes+Z?6XZeQ-zJ6J{BdSM#<&_(x1 z`%+`|hHNyEkkXd}=YXas>s83sf0@mAOw`R1J-URpGIHWnE#sid5aflS`m3wcD%L_K zeaw<>z#)IOz&BnAnK_D37e<304Q0L1`_LR>-MMc3bF%B~qM-_o|2WT&YByk0&q%{S zJq|cX9sRSZ2RcZtD5f^{2Y-KY%d|yoKj>>uaY69*Ls#NEX&oHUL24Y>)O+~RhrTl5 zX``OJnELXwP1NvGUUO^0fu#Cply#eV^bw*dMc#0SdMlZs=Y!OGh-qEz`u74CT@0p( zFqSDC|HYSdc=3WJ;32zQm1?o_=`m^?|{;ZCupnH^4Y#fB9=|W8M7S}v*kE$~*gCbD8g6ltc z=>tf5n|~xd7XK(>_^JPt^n~$&;vZL!Y6VyO`#otTk9*KP%Jj^WyV#Tl@6SC-Paq%i zn1Xr^!_Rx+fK+^H&<+U(&We-87f zx6gwk90j0z)L(Td?XL*#2k=_S`S3U3?gk*|^{Oc-;kz&ixNnTvL#xpn#(7-*40PgJE z>HTkq7k-ZoEB72fqq?fVJxSo(1i*EQcmmKgX-1lVyw?V2f#OEL)Cc}1L4>R_0ijaI z7eD++(n!h$mD)JZ%kfX)a}$kAbRMjaDh#|CP@VV zl>#>POxDewHuZcf`qn(+Htm_C-~m)B?+KN%+0;*cMy1fPK7ls%`m!hv8?z=<0aPk< zXjue6rIf*xb72&jpHV3_=Zq&*s!%jxrwD{f^$ zO6+8KMx}sFJph$L!#$@wmf@iMOrg^z3CcrF0(mHmxy+M4d8p#2JQM`5srUKD^G_b? z2qm#d6$>(KHj z8gYn1etcCn*CV>cbOuXSpMkx7Pv)h@Z_O8E<#)zo}WNP6qs7WXIwE}y3^ zmCZGcNpopNlyg?FC$EP1=dRV~d~Z?ylYNSB7WDWHT$f%0BA)2~jD3=^GgGp2HgvXg z{67#+NAi31l`B`}MW59gk9IjN=7q9%D%5oiMh&qjbJD7suB5lfZ6zevbrz_gn)x3h z4_F=Mw_&z;b|pWLL>zqMB^-@7-~foH$c~XPM#8b*f6C)clL$tScRv?4?0%jXosH`I z-q6Bg@gPC&(%PdIL>!-y^wIc-q!FcSb-sjwXBJB?INNzG8B%!Gm$M_@oGTY$a#%RI z!CDKsJ-XPK{Q!ZXp>PR17wLNqbjQ>FIV!P0|8-OnPsc!3&XS#|cfzZWI8~>Y=;EIF zW<@Y}i}TstM7F$OVy}N`A9!{=I9_~afiDgh=1wpCCLvxMg1*q$QZHnIUwR;T^}9N9 z2kAI%QGaP`=%LQIFm3Mab**rR2Rdoq8OyVO2e$>*w*m6+euT{Wi`8OWSgQf?r_PC4 zC1!XB+@|OF)7-g(w;QJ~DE_pDeM?IGtwINvOwj!Jw^TQ4c8(LXKr3_(3mM{Mq0_g1 zwf1;NX>iWO)Yoz|KzLjkK0Y|fiKczM7&YjXIrh-O7Imcw!w)!r;CGcPE!#reCnKRI zP>CxTBEx^zE_M(edbI^ZypaUsd)MM9J<`uDU4KNo%4gUU>K^@*;J&#Y2(i>*n9a(3N+cPIOd#8ieEGP`*vHWG_j?=vX8{OX~_F}Iqj?$2I_wi%9 zv)(heb-uLoa6QANI1v9S6&qyp%7$HQr0DQ;G>6I&POf9rQ! zagH4WAkqoc9VfB(2S_Ja;VVUy$$gpR4s(ndhg-I{Lk_~j`sIaDSg}pL!Tqv&kOjmh z@8sIeC+8l^)!9XHrph?CYeebG3*Pg{9kM@Pl?n}W3-lw2daDNaf_D?>l#zowb;xQn z@|!A-L|qAPn^Jf0f1g+-f1{Z6juN&NU#xrI^6h;~l>m{InOmrIYCC>%`V0Ti9rNg{ z7oYy*pQLbv@o%aA&OdeTUkDt1AUS%cpc>2^%MkaG5atn^VY&E$SGQ=|PetZTi%JsW zL~KJyO1*f<YIA!?p@YWp(CAiXpBsvIZtRA4DRmXE2;Emh}b2+`fV`2V6QLEVlxj{ zwtDFU*mupt;6{Lb7taIOcddTY+Mw(>6p$TXC2f}x+x?hj`BD4QmrVbZJJ0P#mv&Q%<3eussCWgdJu6mLJ&(HO#FB!IuLDDotNiJJlFR{prih_OtEJD^fH}L zU|25EAAvpR#%^M}?7`vUs`FwgvC_y5h9X|7IxG{y(BWaS3Vn_)gnnJ<3X@|qzCAJ~ zq+0(d1wqzO0hPgggb{waYp?Gq|J1Vh$qtl%a&~*lKT(15PfUg%0Qv6bBd;e&zKaB{ z-m$s?t9Kyz?&@TJuj|k19Ycqd1}Z{Fg0o)AZkY9w{E^GQ^G~=>t9PLM(*v-2*QxlG z0Hp}(5Ih2X&KQvIWM7MDlt42Mn;s#xOo`C!9ruvTsJ?AzxKsQKb<%oXz3bels*)-! znt31sR`1HDFAuQNzC5ko=?ZOwR_}s1qEi2?-cgy;m;kGHq$13fHoVm1BojdXiTWx3 ze5Zdc)M250pA{V2JbV2r=)7xfTejV?nrm}WPf9A}=t&Z)=mO1XhlO?}R zuQrje&Jnt5{t(Hgq&&;7tprW#K`-ajetwLTTU`z=ChAfSdD8C~O*b?E{Voio-&rf> z@5X7#O<@bt62!!#i3Na#?@AvGNQ#wawSfWIaW?Hg+3~lg-3n-H^DXWPk3*pBc-RZA zF=0y}JKog7a6Lq>J)$gz2}Y7oJ?0hvmUxU^yR7S|7bQyW(}y}JQ$93!vALGnpMIwv zKf+{nQkjWpO%VUm?~)HRe0E;R9`#&Jl*fvbK*cM+g7de`^DMu-L;f<6Z;*MVP90lo z$(u(kMoj&ha<ahQTwrxhG}d!UzW3b0Nc#~6+4&cP-C>l6TDo!SA`DWs<&5~*Gq z#5y^DZ3nSV1bd%vTAo>_5fJMH-ESK<1Q)4{7U+%A{Y_3#(e|Lu}T!NC#yQkT^zAwP+T@YyY4oP@@0Nd{rn(rL^(+(i;m%swAej-2v9;saZ1G{OC)Ii#{0{}xak4@3$3QyotOs^hEm zkYbU!RDD_1c;EzPag3xDC_!{eU-Y9VtzYBPXozRqG+sH5gBdM%KGmP5U)q!C!x{z4 z)z#G*r4tXp|VuBzh<3;FuSIuPr-P&gcvF+N9F^wJKbut$F@cf3gpfwmYOo@ikS7+p~QG*mumXf7^F- z&-R_P@f&qRG6#@-7cK$VcOcM71^}J1}qj%@f@WObY(L1EE1F1i(4%*|YQ%t>BwUT`Q=!F~6b!&ruFxdiy8-MD-kh zdMVWjia$v{$Df3Xd!cj}7<5X}wzG9W@h8ElKk+9mUQ{`M>z5V*wR6Jrlo-BpBx$^= z5fs^1T?7@>@)d}`9AD5nM^ZX1WlSvi+xh0V3#^m%C{3XTn>0AK*b+|F!T%Y5vgHxynEqC>I0j2BG7V?q z=`}c4;G>ZG?p6W&xBU9YzMaDmyPe-mS_SoAp5jj~>uWXrtOauBHJDrVO4iD)Ky*A= zJgN+$G&2O|#EH+X8tkv=_#xvLL_v!Ta}eeP%|u&4BW2AF2#R!$uanv}S_qq2z_oXY zie#78g!TOHlN{0NO+c8_hZKQz=}NM)h)W1Duw5E!>qqlCcmQ&2Mtb?N^- z7~)MoFW!sLfhdq^j|}wiTqXjwpMdCiCiH!@yP|-d2pG16A40qtBe7L?1N)7gv_XM^ zc*lb_@>%=`gIZeVHGjeuUL5;Cr%gHu`2Q9i4}Xe|SCI~YqT{Ad(Q(RQLv}d$cN)iL zQ1vo**0iL+<{b(qCr?xizTCDV*e!J0tBPX>p5tQYMl5u=Uuv3 z&W+Rtx$Mz%sYPb*Jn0QA&tFSHL-8;sy zuyXbUG95nT|5s-v>Hqt)63D>&>#QX5=d47LxH1GX@Se{~wEuBdvivV+rK^Si-?Ng( z?~5Bn*~XGy;6-^llxvOr!DE=WU|3yYUN3;&2P$hR7~&m9o%+PdzAZDJJVLRmFSNmx zQsbd6Lax%_>4Ws;Nzh)?3b~1C+A78MC#bmP%91s^%gNK1`b6rH&~ooNzF7a^oXl_H zX1a&pH9m7r*8u0Vumx~VNBIp|+H+Xr&}u8Y1TK@3YG>+Wm97$m6O$jI&>u(MPh{#2 zepxW&$4(>c(jyr0*;z62k)fD-54d*C|IM{KDc~dn-J8&Wdz0Y*?A|16Xkq<-k$d{D zg>eTr(=|EfbQuZ<)Iu-QOHl5KSR1{Dbc>_?{x_XcrO4cLryP;J0I@noKd~n5f3fS< z|7F*$19sif&;7iM(G}lo(5>kb(qj1APH)6<_{%<;?|wRI=bt8gQGi>MrqGTwLs&@c zX0#}S92dn`)WJoDZ=DwAutSN9^)R-9yut~wE4~&reBu#efpAgwq1%CV)yLrF72k-n zh36!#KHg)S$8uONd9mf*eL_G#p0+W^qu2%p?sRZs_xd+o?--kjcq3Z$_)Q|bEsa+q z%p54!v#I?1SZx`~74bc-s%8!|RZqS{WNh^A1xL(1)($1HIBkC{kmrc{9#ZYQWkRbm zB~O~O_%g29L}v&K7gc$zjnzN0{}hqT+Z`WQN{la3`1Yf@(#->7I!_c~nV7t~YCZ(M zQ6ePit036`31s=6ji4||5z)Qs;1>6sw{H+t3SAod)jHxGg~4$Wxfvp6RArMC;p1$*_W66&(!^byG6}hbAiE(8MhFsn+mf2nskfO~&>NkpqXOp#N0r{Qpww5KPlT zARx0gWu-7we*NCaRQGx{@rH&ac|xLsLnj3cIz6$fC2U4tUB58Z!=01xeN*#@#+BE- z$I36~e(SNC5oosBn|I558JEYalgSq_fKfNnbg=BP!tAMQHD;SDw=>CQb=7o0UE>I= z507hdQUAs{+fgoxu*I}NlH;C_2|ZRriJVF9LpzC)m(yqucX@6EP?Y;slPm?%m)v<*W_lH{dX!NswMP~aJziChGRN8+gv z)eJG}j$RJq&rEtdaeK7j^Yie3I;tdQ#GoQ!ffvgicv#U{*#at0rb+6U4UHMzUWEL% zDr_|SpE)D%wPagyd7}!{>*QnUvx+c6? zM69=Z@HBh4G4SJ48#x3|BoE-61S(GiqhmaRU~nlvbc+6)QFrv0Q8%HdNiZPOqO{G8 ze`n0WuW-*TnJopO#5_!s|76rTQR(&qM%~A5gQkVcxv8WjxO_{_Cn`s`7+6OINulQ~EIkB3TuklB3m*%YPgUmLEQjkn_2Ni=-H39^u z>J3d>v5_%nVT*+CN)P`(jJgXN(NbDwipVwh2%@srsq3ou-*RVU=)}>{5Lr{}@EkoQ1OenwH9= zkJ8GN-ON8mofcr!+3&&yoFxKAo$bGjx;T-%doFYO$&Z419ECWYZQ3sj$#z^#y52tA zFgCW@{xRw{xXk{GQCCqW{x730pI?k$3}n<5qtB@Uji*0G-Ov9t>YOslGY_lQt@`wF zjPE^e?cY9Bq2eG0#k(%%Lf0cOO1+EXltw?~d2=WA*3W{Cm-V;W%dbV9cu_j4Q@;;? znbBEYYJkS=NKa>I1qv4k&qqh4|2IY*`Z`Y;1$fd)DO^fk)~BSc=+1D|A7iYsiqVA0 zYB1wUyAS>sy-|B0qt5aCe{a+|E_q5ZSC@6h_nK3(d*gBpitQmO(P0G(hZnR%_n0>D&k|0h8O(g^oV@ z$H^|WX}u9cykdwJ*;mw70$FwiI-&fL85v*UA?)CXbckO?jQf0BL))s#Axo_%H=)-U zK&>Q?K*yw-P#=;R{HbMTe#+>XwiuCF^GZcVkrehz^snamGwv^Pss298`o%KyUoMiu zu;GgQvJ9FM0HsdF@OGKa?KMHa29EDhIwMkLTeS)HF)x2bJi;2MoheGMZQ+t_71(SQ zhE(^nQYR=&o6(&7j!s5WFEt!B7qT)BVZ+EWm7#q!$FYAoY zXC}^Y-j!XAbRCXor4BeVJu7vBfKu0JR0H$>sMO(t&P=e##%tHWnTdHs;OWei`t7O+ zSt|vV2j1HfbY{YQIx{iRcJ+OURRqpVr50=#K1PF}Gn31w5zv{bld1E@Pckp}0(542 z3pz86%AOJ`U^c%4&P=YLGt*K*teQJLaApbz&P>w1ipHQblf$O)^O>n2&I33zO}(Wx zprRf(!#W?5GRRx~m9yIJVfPILFHOlZ#Tg9O44Ys>?rpH+BAB4hYv*}#hYGJ%ozF2r z_gH|FKoOZ6&FC=tL+p|W_9`#TEqzvu)*1F95Y@d%g4QeA7atw5k6V2!%xV@$D(_)R z6~~rg1xc2Qi;~JL8Ap2Jl#Y~A-;kn7ZW34ebZ3&P?g789bpq%m1wGuv+^0KJ4{&Gd zU~-j=9n9STJ6+2-m zkGFz|3h8u>vuwvXoGe%`8DnK>pg*fr)f~KzH;0SWQZ7-Hj{+Twbf)dpY9kZp^O~SFG^S zyqhgXVP<87U~}M=+fVXXr)yUTk}AHa3z3Su|F=<>K$SuJ$knFW+1`ymYQHvQz12SI z66Uys)TP^@(i5p;S3nG`+aVWpKdswUTTpINm%f%0{bFZ9NX6B)+|kC1MKxeJQyuf= zJx*Pkq=YCV(z*QU`*x;a`;X&O+BX3eM>L)D)3Cdkb~SVt`7RO}v6zUU7y?`;wcbyQcvPtAmB4gFC)yI*jFEdu z;N^D=asTHjiP?B72B9on)DKF}1?rpkFKZb(xk zqDC z2M>0QY&#zH4hfTT%JpfmvbOXU(D9qH1kKyMIB7LXEO-t*P45wW3UmAg^E&`d#{(Ib z_#&p;^L%n+k0uG``cg??Q|y!Qfkwv4OErbcFmG9vsN1pCO)6nanDTMZyxo_j;3W~p z(|E*%t31wm;a`?bFFA39;&2bg2Hc3*Ga&HEL6@duaFJ;=lm5$u8d)GS-hcUK#Yw-5 z=0Eu*ZZcK!(B2vHi6pLU*=owpc%!`=RSC`k9xmsDwaw6aEc&X3SZvgi=J=rV>WyvW z+yT^A+mb@Jejj>Y2XWSlemDR*haSj~ETGnto0tI&sP%N~)pt^Xr$o=w^b^KSiC^KR zgtuUASNynd2W8eKJl+C7uEn~zR_3fKIjHrtVC=*WYCU<4Z*Atf@6`sLVY#S`3hf`^ zzT~~wnWgV%;?J4;O2=Prp`-pkHtGzYjk<6uH&`wRs9Z=s_h*2q8%oT~PN)h5FfnM> zQwRY@UAzk3kw^Z4oJeAqWQxSu1|=`Vd~9}0%L|@k#MWd4jeP5j!qbmPG=d8L_}vn8 z6k&^`TM`MoweKt&Ztz;PH+zO&3c^h45jXh6;0s|gdK748O%j zJm&zLy^knN&9<|5a5`!2R&m;F7KKY3f-m2M4(-0xol&y8bdXs1V`61usjl&HWl5@N zzyF;lz;RotdkA~}utnL)@a8(M=5z59=2vOkWjv+#Jdj^H{H!dxi;|AS=oFJDZ)0U{ z#b^RwOFFa>ez>ZP^5QCI;bC$Qxw{0MOBh~29t1EozX1TI^tJbR0KlY;?z+N~RL%-n zC7J=Z@DOv7s30^$H9Zqj4_iN; zs0H*wbRtPW8vkIs=w<-`FvXCRv5)>Q_TD0>u7_{44ek(J0wGv%cZcBa?(R--hXBFd zCBaF8d+^|%;1DdhOK`vY0Qt+;-St&>-KxHI>z(bvsXf?(Gg!5r^;^<-Zeq`Z;5a?8 zL=o~XoY}2pO>f7Y#5VW z^2qR6{+aE``9}JdvDamZe$fz_yAt{6{gn@ThE9N9O|q~K0j-U7Xe32*otAeqO>>Qk ztx(lY#5Sh*$olumZ{DJ*XUQhsGVw3wIaOb_SEL2m+VEehdWb7GB{l)lcx;IgI}cYXCB}!NTvN@SA>1KL+ zUSjHGyuG^wybLs;8w^o&pBP*1hY()|k#WO!zuFp1y8`lO%d(nt4S8Kh(_{ zo}VSMaYqXS#@Pz_YezU&)_I%LmGgB9^L2I1 ze|QdeX)|W01Y8#UIv*?oCB=LEKN_$8;wV=WjvuY-x!g7R?Z)ihQcS(K@~p9w+@HaE zJ!E{$&CA3Pi|Gd^;Rn5<%|UUX`sM#tbN};?K2#&qZ4JT4L0W7%tkrfoYO!Q>)l4817>n--Z#J>Opeahw$0QZ%%E`9C^LH+_M%oMD(dDLuqhuBDt>bPtRH?a%XGWnreH8_IA&c zx0DJh-3>x$9ClePuZC7lm|7b=v-YN$*6cY3RSaKOITN}NEPesf;ryOyOnPFCn?`%PbPg8GDMroc0^g7DY0)rZK5!1b+oraOQWQmju|<3-kscb^ z0&(^7*XFJ8fxq{L*MreyNAnvWh&QQ&4%+4YIcOILy&MSjF2U9)b>N09to@T`jp^-r zvRxHuC+FyNjQFsVGiq8Q{#IMB=pS1Z%E?7Icjz0fn%;Hm+sOE~6gqH#Oc(h&ylWGj zzV}@X4((M^E+Tt{Xf9wh#WpkH)0F>W4sm-jns#^a-_-XcUykVjMpF{&7tD&v-VBal zArhaa0OPKmE2EGKLC!OZ`t~mYvmahhDrD&OlY-T^TQ*U zPpGy_gp$y(V5?e0C)f`xl&wnn1fC4Xhjhh>_?Z26o=V*U&E(b`uI#xN89ST+)D-3j z>5B|U0)F!;M68Ahj^1@+w!EA5ljH1I%ua` zES$cS2p@Q?G6HK-_v$Mw{JfT7v>G(GB=M*Z0V{Uew^w*H8pGcUwU(V9R&oV;p!PSg zlB?x^Sjm9{E4es7;qg+?O75?Nb`f-%>JKZqpP++wJIXuC@2st;d+ff!lHkFjmCWR@ zfZ|PQykvc?fA`ylCLB^d6$jiEB&|86kMV8W}O8v zn%;3l@BC#nkwk^{8juNdunie2=ZTq~`d2G|ZPmX$>e)NK@$ukw|54HeZ<#*Sv6Wjw z+y#GI5=x;(i+6r=;M>G=V`k>^(_NOy*)|X^N^Qws z_l4`=4Ziw@)#=UNmLdcGadaQorJ9zbTqLnT$&ypa2(qGDj7<{<37SUVu7;W%w;}*s zNtplb#;|GssWi!c8Z!l5w4;i5vE_7ws_ijJvsMv={;zy3D}77*W>YUc?I}lrl~i5`U;Q+GCtb zRI;=;swje-FJ$T{MlZ& zDl>Ho;&feEL0ljxZoTf_nZyVRiobXaiW>!=g2ju=?K}j>ZPrAm?_lv`>v7h znLQaz^4QgyO(DX_<@qZ`HIuzM1so@@hB<`;^aYjriNT74uJ9(yF)+8PP&`b@{xX_| zeT+G*PL&YJ0Heu?1Tou(m2Y zRv}e;#Pdb4_i4&Ci~O09{sxESVK9-V=pWRiYYCtx=s&2b8Bu0VyMrd4Npg~25eSNt zX&U)I1jT)5=pzRt))ZWTcvHW)4F^^!c+!+2#5ru6adZ*KR5-z;fEKQkd!LY|F&xX! zoP);I4;af}_ z9S)mbv5$yimB0BH{T;9RMGsa`~(1RC=T?P2jZoBDSn)uNHg z?FW_I+q(PXzOQ=vSZ$j@2kpZD9JJF%Pj)oyLB%|P3wBhNw5bC zBbr|>smsr*M($I(IvEfQ_yEbNF>Yu4G5qnM-J8#p$kvJh`ACz04%#(89kf$snP5kQ z%m)tIQMvB(GALQmB>)HQB;+fAgLc33*_5u}E4+8e0GX_DquKwPd~i)ok{t_dduBm+17ir5g{kU{4ix_U#ooAo#eb8*7aZb}$q$vqa5!8d1 z(&P_Am& ze*IUdWBdieGDm0Xv3gApl~ReYuDx=f1rTU@ z1AwMR05o}r`~gi*MR5>ldJPQ}#WjO-{|TDtVFA!2@kePg?UXxIv8zr@p_0^!YG6g- ztsL@|uPxyUDlUpoXg6oXq@M17g&B-7dA~*Z`M1?HLi77q9RnA!Gp=UlJkV7zmKs)urur*c{@FsP~JR)`@Iwpc*54r_op~X9*O=e-|~P*$MNVi+Qp4od00zQfbE7S5{6X&C*Sm z4j+fJ$r0f!#n756Q|y;m|6!mN29%pv+=ez}4F$gJ%i@iW$)reH0k}%l_t|C zrAersKmikq5C>42lu%77K|{HC@0f!RSRp-ydu_d}zh|Qk754>asFn7gpNPVX!g-yb zLCjK&tPCJTEVKu?Tt5pL)T^|Y3*wq4qAIQh%1u8rL+Refv&3TcD0o0SzY=ot=5t$u z@?oDUm+Z^hc;ZYMod9R*2RM`PBWDW6T_kX{T7Un++qCtOGbMpIQw|HjnIe}YFS58` z_Hnz4oSm4cVqdViRD=Yc%qaEL!>f{C^t6yBPL*LbS(UPv)g^zbt2D4IViz8t*dkMw zeCBHsrvnCXCOSueGfmpZlqZ5XldBKK17`~G^B6iX+N}jRQ-WFs2~wPko%+(Y`o}K5 z5v|3fchXVuW0)5a~e}-~{>r-Rb z#V(2L`fBt0ZW3!_{)MMTz6@vJP#Mue9;};p(+AOG~{F9z#8L(zX2>n-Jbjn%nDb|=93m2`3{v;sI#P675#{wy~LyS(h zxzHmS=$%1A$U^hb6z7Ce_-uOgV+?4DX97)eAuLY(cRt8vHFP3)5jGD^@me9xSGfVc z%6>cFWqLqOac!U}{*G|nzWxva;7sLy@4}tjKCdlqgE$kmI1UDgGa2aRhMd)YsFDG* zYCbw$xZtH7vjSr-f$`x0hH}HoLTpb>@lKH>_EykP4(k%Ho^qOox3RbNBVMzg4n0gJ z_}nbi`CfW_$ARWUQydt|MLF4TSvY5NaRE(nOl;z@wrl4W{|#u0Le`brTW0K_!gUQyq6S{jRcX z)lthjwmkVT`^!;nKn-K{aP;a8Ip$}v^_W8C9F>gg zjvsIt*_BE(eP`s%_b=y1?h*bCp&W>8$j<@cNeF;YV*lF^%FfQ(iB3{jO2XF38Hfb` zx7yQz(n@_CFtHO?s8Km6m37%Ag=Fez>3_yu4iQ8=xVwKHr)b^9F`bl68X_=Hc&}M$ zG$3&k$e{LCWy!fNFKOKJZ5`A zJsm-9(UcRCMjTcF6T6$341!FYv$lYM2!*84%PPX2P8ncgX9k+s1pyPg&NUV$$b2yN zyZQ?k0tf#{=O=0goUHNw=TnAK6WrSY}3mL-W zrHPuSe*qCG^4O2Y7)zv%S)s4<4_vFZRxb7pZ|oJ+xH?hK#KnmXI9MWX1y&qHx>yQw zoaV&zyndvjLBo%8E*gJc0_DUr1|kW`cD}wIqiB>MVuOwjBSJLuw)JZhWq*;&5MvpwqXXyd8Aronk+tqL8A1kRWSS475B>;U zDPh51HSsN=CeF*wvNOFnFMZGxt!C0)3e?2m>v0`NZce*_pg2$y&zvWtvw?QXa|PAJ zb43Ec6HYF*67s`%@srXgenC=)ss_hdD0Hl@&&Mj=i$#`1o-JY>*kU@Mv&2nll zCmB}OUmZq|in_+WS?nmBxLNmY>U15sx*dbkMf3nBc90`|?^y|lJ(E5IKVxLFo~bXi_eOCw~AByD9LZpzeShmM}5NS4~U zmR((Y+`N8inaEJsr6Q+`g+n^GE|;K<-4w8~yY2yP?6SNK?C*?URDilo3ZQP&;ZwKC z71V9&jm84HO;=XSE>GR2gYLTI$8HlF%P^ndb5wUy;z8F>{gSQaVr617yt9l$-nrrH zs%t5|bhnImj9EG|)v_wRwY82n#1Sc%v9GKpHu6(Td%JH>_+;)N;;hn+-7f9ZvGs)R zW^r~#b{fO`vh#cOIX=~_@Ugb(_$d&34r-*?uOOg~KXjWs|JiM_rSo~{HUS6jM5ug+ zz^9w{?d?4@w=l+P?t3~2|GCKRI#a z-iMsH$VtA-V@{k9dk7_s_H?CgrsGmNQiD-hn4^F^YmMJY^f4zsEpF2?{a3fi!1x!l zp*X19Bn0lw40M}(ZVt^SaNLyi*HQn~ZDOT7Zc`MEVKqsp>`iIWH`Np!;SwBcJi0xx z{9Tm)!7+?jP(D)mU?OW#@GTd{?(vAZ{*UnFhjk4QTLRtv zhu3yN7BNr-v^{e<{FH+_7P zQ=12hsPaE6kc&3@DC;Ao4y<7P1#;qz1)MCfp(GDEapqlb(1p7PAQf8j;66Q0?4*BV zDPr+IOzhYIAk|zOuX^zkaGxUIKe$g16FUiffj{okKPPr5fcpe&=B_~QlkY>gX<~pO z!Emo;$Os4W#gbYYtO?pztvpli_avz0yB05mRyf|p1}s`UxKBbL_lf!E%+HtyAVtu_ zdz$jjCvR75vCko48A+&GKPd0XeR={?j1q~Yr%q?kGV_l>YU%+<<^KUvz=b=!Y6)r2FVTQHwv7n+pHoK0(b|gWRWlBI%hEko!aoa-Uwa0q#@I?jQFl0dSuh ziNseT(1Ib)+REQao>Ir9Aqg8n?JzI^?vpH+z#sQ%>(PDsI8k%1nz8;+6KA!|11|dk zC+?g--|=!HmpTyaDsyaRB{1!d!{BPBfQ7j6k;{JbI!ZI75X&Ej1`;g&g3LyA?2*k- zf%(S>CL_36bobUvpMEVFBAeAaZ$$lGD&!Jr*vDEf)u%END`i(g&KWta! zVnK7nR7EQ!X059Z#n4%{Hdx9Uz*sAPp(!!Z8lfdinn#?1bwz&3|0_tS{>|1l>$M;U zY=Xg_Wsr4v-9i%dC|91`)|lKiWq{(UzCvqE1D&Zrx=4ftV#%4qY782UO?hygR=a97 z!o}tucy)u0yKsI^aaJtxpOKy4e;wJSf<|`XnS8*=?&VK!P)vMMv*kh|gYO|G{@;x3 z%C8Rcf0+g;ls%-IqJVT$6ci}kR3N}c_I2~uO}(%%ZpFM;G$m4hDBn-Ak3+^&>w5_K zblA=|E%p_nDKL&i@D&TtDmx>=6eyGZR;L0SXTXg+B+!k!T;RqX9B|_fAW{qHpqO|! z5EBP0|IP`-#64y05FTRUPzt%nbI!qI&zQ5*Ni)!=$o3=1Kk=%j{zeAeC)xtLKkgHj zPf630`xIo^CK=@N=swY?cRsmK><{i!r3z2{O21gmraP-xawjMzUIWC$Ig*v;U z=>%|}u*)hz?vv%*llw$|m=AKFEE>_F0QU(RaG%%#_elsp|G|9{5}sr<+4{?U`q*}! z)rs(L_o)$6rQm(Ylluf5?|pEeBsqI|zB=!%oV>3m^( zh_ilAoqHRkAh3nWR_n`B*%@8USMxuc*@2i8Xl5tEG0h4vsgeKn%uceEDgFkM9b-X6!{l}p@(9RAxbT`cwrm(ectW3;qy}SHOY-UXLkx3l@?o%1yJ|%10Wi`kD zgGoVwm{h?dlal?zqyYEHjDO02=7~w|uAej3YOUM99H1VS4$PZ>fl<$;YF;sNJnCdj z6u)xf4CV9FrYfl$vaM!LlBQcwF-F#6U7W!;kxT2@Z`y36(VJkoA5{34L;#bz41cE$ z9J<3y|NGEgl^hakcWIdp97NNZ;Yio+`qe^bS`&rPVj zJ1$}fdVD%=n%N$=phI_V7}sXE`-Qr8oy9qbqWjP(jTWPYrL2xDDNF!rTJO`ayC_ES zbDiAr**+It76Cg81^=E5ii!IQPli?TUfBr&D?6!g3!s%<@YBk!iPyqD)M<4n8sTAO zXDc}VDYbP5PkX#*OhnMNk0(R}fBjH#2W?D$Hzr3RVZ9vv8j6YLq6%EQTbB(B?KRZ$ zWjKCThy!xZak(EaQWS!^8%M~L=3Pye*b0ihf2YC^Se(!J$gCc_Ul6!-Fv};?yY3SVyzkw6q2I8N}_IvB-&b0k*^S5fp z_ScGc;{~==H7=_J_(5mwyv(&*;)&Q{uhSh`$tb#tTk*RPBFwXI*4&m6h3=4DJ*EQo6Q8?PJL`^FY(${}lL4q8q1 zwCh{0y%kNn;e6rcE%?1j&}AYj?V7?dm>atJd2Gf7j|l`ldRcnfw|+lLn~xh zNxiJiz*O8=^)z8?!s@gm8h>0C6qY$bTpY#w9C69Yn=yWNgYO#gL6kIe zU#x7Cq>dJjlNu|ppk`Sjxlmf-<*H)y255hW7C-i#<;_p&Fhoo*bv#@}Q7~DO4bcAXj3axvJDPoEBmL_r zQB=9u8#ITGj|RIic+q7Eaz_2!8{Q}3Biu@Her#_`>p=BzQ&^xLejv7009a8#J^UH7 zX=h3+#<%C-NH^~qG(!qD$+*N~2sOGJez1ONX^;$+hKbC#Sbh#&DGr35j#hp{FdC#> z>N;yTU>dFVq7BDFWngD8e2aeWm%v`EEdOyu&UXP{UOM@U4C?@@-00>6BI9OLIRsD- z|9Z)^INSk@6VDreW}JTDS4XC46vOJsdduis&iZP==b$M%WMkiuK{#o?b@%OcGQ_~< z`4@w_aO-Q373Bf4qToE&ScZ3wh#%tN{2(jJ{LaRbf?7jC6u0oZKBL1;e%bC^;g`f! z*f*F3Q@u2$~AQ-{xle{$3YahR?K)PTaTN zZ0@t4KmjfymRqnpZTq zY49MkZ#}!O8_VC3r!64z6a_?{UV*(^XF>T?R?Vr13xV$rM4oJj*{+Z`Jpk=1UIioB??l2 zq)DHr9l15mKekaEm+N4$+!sY}GW`1fOmVS!`GvT;2p2Z8a+r?rL%l8g<#J)()s5xTZ-*80yR;k!UsdG>V3XNsm0hF zeZAvwu)IKo;j3@A0j0we@P6t)q{EXy>F|h)8j9B!mq0pv;a)*q;Bzg!s9}bFX+ycB zC+Sn>=|!Gv7WiN?3mo@KVdEo$qK}Rb`FR@lh5_}@%#!X^K`udAgCx^Z(D{l!xt5sj|fT%zZ^hNlETwv zx$AF~a8|{n(wGr%ksP=UZKp)FQ_2VfW{(^nEGnzv})mb5JE6$onCR_QpU5xfv#?0QakggZR zrIpba{)3lxuYHq<1Ai4wMqQ6Ta|IK9kI!I6^=n~+r$_}N#q`)H(2f(74nGB@!}sl4 zrYhI{POo=m-^I0>g6-nT~#n&4xBos%;zeboO^qu1yIUt`}Nwr-wk^gD^QkKvL zmr`}pPDFUd@<;uK@4eC4VRq)0&4z}_=A5V%|Hs(rf2PANLFsTZ7gEb)sn&)0MOnL^ zktsbC;G!LV?%)PfMR`N9-PwYp7yqlv4mr25z+s5$#c1)z%+rg9%v1MfO-$4Q4^;7n z7?645JX$~kGEboc)t+HGHjkMn3{BZJQ06J71`CvV+SCFvPr^Xvi4Vv;v1o1292{@# zG~ibm7QwnoN4JLEcj8)jro=td)F)}UG@L3ukm9TAOR8calHw-{F8>ab$V&R1UFl0_ zcJ~PL=kB(2eDasS&>k{RL64cI_}4Gh`(Z1oM8ib7Pmst9OisQauz2J1%e2axYQj?$ zilaeJh@a{1UuG&73bpeQmMW9(jeAInz`;?5e9*5;qP^u-{snnQ=lUwMR~^siK9Cg8 z*#Ds&?ru!2Hs`uH#3#$!_;c^IP`Q~^!uuJ;;v(W25gCcEZtQ)*=>biQYN(>{l|eu| zob<>vxa{OzepyULo8|LH3RzBHF?q1}K_%$cpGS=`d-_ZVB)%98ifqG_+RVJOKQXRO zo@-%_SmE&dIOy{u46>cuxoaDFfQ8h8oO!`uCIB~xk|WmJQ2&!3#E-;>?sG!+U zw=p)FgqWI4rSC~V<_Q@Id^r@yk09?9@%lLdSo2znfp;6Eq17!mq`5;NWG9P}RJ>OZ z%X_`wdW;gDTGFyJx<4fbyiuytT6=^MAEl^JodOo*e@Ib%fE1-#j<2#i6c?p zLg8jVsb}LW3`kK-h?HNNYu(|X+o3Nq3$)XM_K`uEr%)J)v+Br?4yF2}zer?ugO7ri zxHJm3FFcFcQKhhDuWGr2SdnG3>SRNd^=#@)Tx~ z{KJ?fah9hcI$fjM~=onCly&H$-7N!IdsMl?QOitl%odh)p7m4sCC+~;-U<+Cvu0r?UaGQ`tH>8EYSYB zc*pDn>?Dka4G53ITc8$+$Y}H;W z^qGG$qkuF4DN!!_5DZGx-T8nL1t(t#C{fFR5_JLJ;$Af&q`tb}FrSPwYiLulmQL8U zZSelNra%s5NixpQhw+^&Fur3Fms5Ss>dDY9lf@F6*{Bk<<}3Fu9aXe>okOWNgbP3E zBOr2RzKJOIvzB!JaeV6jK9tF@@$#h-UIK8<4&hBY=$ak7q)zu%x0jJuAOk|@8w|r{ zTB@mRB+xZG_TT>YyJqR)T7VKYs#<(#g}1y*X~Y9Y@CcxY9|08c5CEVErD|_cZI%6t zez@CmcbNO3XQz^CKL-F*Mt&s#pd5n~nSP^=MejwE4F*H{iy*YBF6bq|wCmd}yy4U* zd&3=GtMk=X3X5hr$ky1eM#z#q?%L}IR;395pho`yDC^|U9{>PlU;i8gpcLdxV#p#i zr&l_Dj&1wVB*E}CUXOdsx=zEX?UswJ;++V{Fl{xekeckqsN-%zOjzJXf!g6x5AASF zpdDV6+Y^7m_^k^SlKN;4jlW&31!#v;Q9iW8k$Yd?3;wj30FxHUBt?3xJVE}cJmu?k z2qGfyq51#PgM6qwg*dW5R-OhXw(ou&p)UJ&0Q|{uL*7NC^pQW2gSL0qfAOa=5Pv!X z_){l{KPhJ{#^>c3vtG^?y+ruXzD@ZC;7?VNzjYq?lPJS-A|mJn_mzSr>DHO^cpK+um`_uI$$UFEqRPB!)BM=APMg92qIPvQt-(U;ylTadU+{^1wqFfds@GVhPd1#v6-lrgnQELU zzTDT}^Bm!0b;D_FaUnxIoDJt?KfZ3%%jy~N9XVgzzVmgZ{#Z*sc6qw$lcTd1xv5ge zt$DS)^=<5`Vu}zd7IIju!gu1}Zh9vYCo!SDcOD!;jSNttM5Ca`guf;EX?RS$xSNJ) zYutY8yL&ErBLfb?PuR~^m;n6576;%b`oI;?51XU$O|6jH`#$vsA$S}f<+KwG$D;7l zJt$EP4@#7QmAwK`H-VZb3&)pTW(ZN!Oh!ZMMt*3Ab64mA?Qma3zt7VH-EZ3R1bBQ? zJHi=;f4QMzl^3=S38l5R4Shxc|>4Co83}*vU zqLfNt4Cd&US^y<#(mA%{ew`C1UnHrn+>eo(D=7%Co^F~3qOiC1jMW3oQxN$pRJ{ZI zemXmQ$YRZ;KH^-X;Y;w0^(Ch7n;#Fh%k^HB)%&evL1Vuw-dM9&H1_S-L9}(Z=~K_s z-J2lmIgY(i6x=S3#D<`Vbj@uYY8ft!-&vFjp7kO-_$_>;x7ZSlJq7S5HR7@;RW`P7 zq8al)OImf4=4U_Ee!P4udI_I*z+i5*#g{7%I%a3wM++RYdtDa2p>1hX|MgkRufm1f zg~LzWRx!$+oE59|KNnvYH`9E1qfMEIc+c87KWx?W-gMIZY ziGbK1y)FY0O>YG8rZ$Hqx;_3hI@!I&j{X)pQu?CAR)&)vAsv`JZn}A^#N_ap`nhef ziK#QJl-T<~##EkrNA~#meHRy}bL}j577YP?U8iV^Ys`e&sSi?mVCLt)o+)&7>^bxJ zW(@X>y|GNp2Agh8DD{~7Ry1Debrt8`^lSfUN+K1PZnrhY>Zwyf9tFE)lmQWqP zNG!x=58lMP@ZZz_8%^chP;SlvE>xGy|FH}8Pc-%4;HdwrXY3%K?VODJ11?m-)(xdN z+VU1pCB@<0_xBZpw<#VO-ANxunT`JT6*&smj2+Mi8kWmsm3sb8=D73zU@SLtc{!iZldwUq~Brml>w8T-o5qp9%g z31a93;LWIxS82q43_y`HlIo-AwAkfC6OvrCGaCyz+Pl2CYbtdPGTMy~?fm9wkpTIz zeI+i;;*H3Ln_mkgs5XvK#;Tt5}{VeA8O+dBGk=;2=zMNP7RxLC%65_a_`n@pVzdj zY%rZmRIlN8{+CO?D%kn)hzr>{_FQ2K#iCd@xd9XE)T3uu;=E|FM2R~3kX$gn=_P+K z-T3g<(cTmf`+Kv+!X&l`Op|JdFq*9A?COxSwao*Mt#O-@LG^#O#xEyM_C0P~b#2FM zsQ%ZjapkAhINw8SJXvilq^fVP<93yc9$YDwiK$SZWqbF2t?R9VXpL2ryG`tI_*Pv= z-@K^F@wb;6ODxvo|2bgy-yE>J;HH<~vH8D$z)tBE%`l;-Dsdy!4-xIn1@Mq2rfCJV z*s~oOr;n6~@XJs`xT5W8ZUmflRwSi;Q$LS}MAD!8?MLaN;7xG@BGe`6Ya08{{}iDh zK8LT%{w+euMm&j7G+%HU`Uj3V@$c7CiB)T>XgZiY7ILErieD0|A-mU(! zZ1^O{sf^i~Zds+xoaUd)yq}^#1Zt_5;61R+J5Za#9t%IZomm4SP_k$Vm!JsL#_693 z6!>dJd>7jfw}R5MU8E`x5h$jNUN)hTJZJE8I_cY2S#N*{)V-lU3)hrhG<`-z$ASduTib6No@rT`x=AF}oV?{*TK%Ib03M z2=&o72P%`H0*lrSXss_6`8imj7qC(;g(+}Mt_^b``Zq+V*&J;8y~-09jVB^l!Xvhr zO>2!#GtpU^2^MAO$x%cB2t@&cP^Y?kmjud%Qtf;PWy-H@COpJNB7~KJVV=%F@E!Um z`wsnd?igg_FNnT}k||)E`m>IR7g;S8iBhO;^k>fseae3BRT2RasQ%8~O=acS*__u& z!+O@0Shb{OdnOUF!T5iMdFbA&Tj&oFC={~d=k&lZuj0=z&!%$5K5hrcGYk6Tl#|Ch z`$6OCcmP6aFOdd;AXHq?F9heVEdWC0nZqzI7(PHK)JOw@7xu{k{4-)(nt?hG5Q^y3 zn-i+eVJkD!=F@Kwgu+Ng$1fy?y?hyFlnFqn@3A>`MuhU{&WJ>iAPD8NNJ0C!%;OA= zRiQ8ZfCMb_w1L%oBIC0~sU5B6ClP80Smupv{=LkbUS-XpaUTRN^XwQ{O|EUoOJKde zTOP$d=WL65pF62Z;+i^28pL5n2p0e)L>Ug5hqi5{{!LNY_&*oy{&T_Z`?|~8e=gYl z=Yrk;Z!Xw%{pW(+e=gYl=YrjTF4+Bl?t&dQaKVmt<%IN=LuTJAgT-Gn$@pj^ zplt}I$gIe@+=sgwUTeLWuwQ`lAqWvOCLf ze&36`LvF6i@0S~PtzL1$;<54)TnN&ELFh-95UYtSq@Sky4l&>zhutKx zb5hd)$!23sf z9tkxkHV74K_uMZDWH#lmxcX)tC`d$!g>5Jd&Lk7&Iv>U)|;=1ShIoMIvxB7EJ zWcbS5zM8|)!<&ilEHnONcqU0D&Pg+KM$ox*9J3Dbl=9;WWy- z?YcAGPqHjg$x+r5{Q;rI$;0cKbwnm-=DavjvpbBb*a4mv6+M}*D4Yyu%2k7U2sP-_ zU`e9JPDcF8mQ-eeW7`r7uGX{#o#^}Ffyl3_`59<}ZclQP%HML+wtrft<)3+7Flb)) z+w#hut--rKTN@O7Vv=1)e3;iY)zkHFx(rnm(K`At-kvcu`~=PGNFL{Pd_FiM!)5!0 zz`TwdAIvFn8Z@u-rmqI(b-Ho~-6+W>-C5(nye^0Ue(~;f_U?2N{I7YPu?sltYtXz7 z8kpBzg64HUK=V4eHWJ*&c^&6EJ!oF%(G&QIt2))ol;;oe*UOA> zUlc;M^lk5#h_cvj4&&J)A>?kdvKg253$8pi_3xSSCnI01@8_-=yf2AyC+*!S zeF?`KUzp4c`^%Ql)K%@B9UjN9LP=U20L+$)Wr zhsOs&^SZkD^l;F;4mXgFuvh>%VV8mqI$`%U(Za2PcPa{)*V%Sm4!z*@%gUsKz_t~B zn%5nj-%jj-=5;WS^SYwyAh%tOitRu1x=_Gvk`kUNV+YOaLPZghm=U)Cs>J#)sx8UVo%DVrAh*P1Xv~uzt&OOcu9l2;Bm9drCLPcljtR1KxuKciPfu{$F%tQzH;7gb{c`QMS_=^S*l!J&JR=x%j1D6f!rp5Dk(ov zrJyIOq!>_(rVCId#cqwi!W|Cav%?N1O zqJY{&cBDrGs7>PA)mFiOF4!q+4xc=zO^+Asrkwz_Nd!=vFdo-+9d$FeGt$wZb=}um z`s{IjSF!Gw1+V?EPGT0kwkDp`rtqM6sI^W-ERV9vV8|=e&xsfF7kBN&jEA+IbL5I0 z6hE_Diiwmw{$OL@A+gjM+ zZ4KOZ#+}}{P5hKsqKQ%*8XqG83twwB^WFCirmeu^x^DJxOzj&|FW6X;QQP@RWQn%q zcJnku#znJj-9U)`h$;noReV8C*fF zt?Oj|Ue{>=>pCiJ=sRP=d@CfEV%VZRb(q2P35>b!L|2#E;#o6xaTg_HS^ETWyii_@ z9xgDEnU5qgc0E~4AgCk{{dB-i(nk5=fL-5T2ka2Qmp|bM?EdS39VO_19V+O6o&1=X&BHCsA`k;;vhf!tG(P5~)kHqD3y=(o!Qxu-3_Y)UG} zNSpz3PwROMqYnq{41oi7MGpt;BrDEl*PRdpkPZ=~^4Q?!X+gQCSVXt8T@9ffU|koy z2$aR&I0gux$W4W)ORQ|M$9%(J><-0P)Ydj`Xa({GI0C>$-B8|LMAJY;UiG zV+bgV`^s6Jh-2Q!Hg@c9J(R_@SGcB&4~sk%`^%LGjm-_9wU?Cy=Yo_jz=zpDPeNMSEZ&M zmb!SPB&Nd!xz>)F#43L-kKDKFb|pkE?ID|GUu4{ilDvvJAc^#-G&llU(S^>N1(;vHu>s~P3W`ZOo z?6t&;2rQ+FfD(8`195}f?958b*5E)K{8>uy4t|tZRG$VT&(>_qi@U%a;3hv$%y+D? zhu-5}(|B%Y3e96S>mJ}LE6Xpo6GkkBdHm~!-S|%_A_d@vofG<7A33+D8+NDyfn$a6 z#k@`ZZ2ff>MGk~6==?eY%;6IxXodW^;u{_?zO4 z{CcTFnu~#QcF5H*E)@ z9b)7tyg5jvf8G6y?zFukWPYz;#EE0hpo{{tajK1!Y0{2)himv;nmg5IOoN=bO?F;L z44HJMMH0mjOd2=I1x1HIHpKat|A(}28peZt3n8knRovrMp9E zNu|5HySux)zW0Ei+WS0bpL3pnV15{`nd@fF`?Z#?d^I~(bmvQ)8n#B6^W7~y^_M%S zw-t}ZCyZKg9Two3@MAe(eA;9cI33%1T-WJ-)d0(>m;=^z4UfhrMMgP&9wnW8#pZ2= zpeN%KU=~LsQdCN+0wb?+kYBuhG(OoZD10{a8u{zKY2qX3zDbae1Y~?#7ThueUe=Z6 z_kEK9zvV2^_rTApz`8E-Z|gcngBWU62NA|Z#z9nyZO050Fy;73~JcbF>UEhU{yi(R{G&V1g_e6Tv|Qz ze5hKuW7`Z}ErE0v`!vmsCZ zB;q2br}HK!h@l+A`)NkN_!LP4S1r8G-n&BQA1f4F38okODp;4we=ZKavv_d;&Jycp zN|`L~Re&@GJ161_ZpelX(6GbBC_epr!|qG^Q^OAXbP{OTm4g~~-=-3afrcH0w&5vZ z5Y+F6T_4b}V}MG}=sdd>noD_8EWtY5p3}fGE)3{s>U*^3Jzh5@kh%lcO%vH79=U`^Bf%JO zkJn8+>it=fB^Gb_&3VEx+=%Xq4q}(Our3uYzHEYoPr=1#MvuZLgFl2%4d9|0U?Aa> zyom>UKWJ@t_lD&3xA2M9vuN#`L&LRsw6ge){9JNRE7w9~NM_7;NXWnZVj^d32vEe|P8owYTaO96!&eZH}}#t1ZpE zdUfB?HAQR%t(inUzI()Wed~v{Z9eJhK>w4xo8w+R*Z(46Cy&O80VM3~|CX?Go~}U` z%8Xf?o7i1>sZ`M*-QD}5DRdhLj;v}4qh(<)cdf(SS)Co5?QSXO*H0IVrF~bK^es6} z;PHQJJb15w)@hC4UHle%<>M7J=xy`@tbnl>%%>GRzK4#_wKLrq`^8d@-l7hg8_tq9V`g%Gxw(`c-20Hrx0Wcld zEI&G&(qtbUPArfpD29ew^f2$bq)=qNdiU#Tql!P%|D@&-1-@!MZcV$|W56Du4W>(rgEm;vz)dTzpfe?QQDAo^jrgS;)2$F-BxdEh~c`7>=!Qr^UaEZf&`< z#3LLO`Gx)?Ue|fTj6WeSK}4Zy#C1A`S^%Sy##_*1UXD^2g@e*rIqR%boBOdjNj7J; zBMAo?y+<8WHm#nORcWU&s!qTN`k1(fjd9vmLjDeKm(-MX(C{zfkeb0RQd#beBc8c;W zO7=KwaYGvxf*8iL>qgpg$F?Gz8cdTf%*~P`1dCk8TkaT*+^2;VvmJ)aFKDEw(~-51S>65a~!MCFUn zBDBvHADG{MIzrCWXNJ#B9Kb@BX{gsqvTuSla%=6<{hF=5?`xxcMo=#~W-!H#2Um4p z&!fPJ%9=UBH8q5woFWm;z7xE|y&y~LWp>NdSl^0%M+~`ti%ua5V|?aK@y-iFw40lm zt`>eqrWUYnhA})pJWSs8KB~jg1kfVbNkedwG}y=VyK-2qDzZxxSh2(DpE= zRk%^{u+pA#k~vYMyx3;qzf?e&;k{9koQF*r3JyDQ-%}2}DVsNszd+ElhT|of0*U6Hxhi|rC2R%C!u|P2 zqc}OpDDIIk>Tq_mdC-w~V7rjO+8B@9rFqeHik@hSI)J8G{Q`Y*BeN+aBA`_3 zAOX%!Ck%texSj5hrPZXXN(0L(xM2?QKuGfavuYk^JY)3@T#!*bjBbF2^2sPZdS*Pp zbP>dopq8meRCC&K*kNhUHO`?xG}GOE6i7$3{@J@2Eg8eGng|Cm(*MmBqDY}}zwN1G zEZPF^eK+85O1#NCO8wlK#*^MUP zieciBZC+K1Ij!RROM2&|xe!`^xw-DVwDNgQT%KtPS*oFhh=5;1->n87?)986vN>A)@5V{7;NefwZi@#@_)I_~6m*%9)xq#yL& z%G0E#)IpHX(T8KZqa%Zq`MkK2SQm;aMn?`xI(p)Z6=Z{EhDyc!Agp*M716v4mD7SvgxiPl8G`Uwg zV?GY$QZDr96OYbd$@$WDq7-T7OWuWJgQgqB8)MtV9`Z_a;4q%X=@z~VUeRZgPll?M z(i>KU%sg3NEhg)SW2#v>$S0oEk#b<0FGYjPg|+vV^#C4&?O2CwM5~mj{sC6w=ky)X zOY-TVAO~d@ZAcw4UVh~c=h>`9X#|;RA&b=BTr>%qq4r&{E)3 zsWpj-peBc{MwLxhY2>H0Fd{e8UeIYREd)bfW*DmVL}daIa5k){KtpExv_Ou9F$&fBE!pg`@q_JzE|Qa8=cVkLkuX+xSV zJ10%jpR}5Ke}j*feK+@-LMCPW$tX^z%+c`SJZZV>xahe$Gp>5?5xi3WtRnvH`)sm_ zIo{c~5(c}SXNDBb{?l99s%9ie+>>I7e(wvLVVC7Iu4C52zw__n!Oz-+f5)|#q|CjJ zwd$$zm47k9`|#%BZ3w$BWmKWo2!XGg7S?#VkVu7No_Q{90snCn_ucncLNdM(^fS2l z9bL#$&DJ=f!Hk^V~pR!{i zE~JoJTU3)kmMQ*e3N-hS=SkcOL8RXG>xnfhDc^bQ+sZ4~hkin#I|7fE3IZQ$8vZpVZY9pdp` zre|j`w*T}`&IZ!_G<~$IgdF^fZ%titexnGQ**I%8O!75|HNo1elvw2lqBgdkqht1@ z)(pO6%(LI3Ed)MsLa|BcDph@3f(S4p>WHjO>!GmqHguiv0)0|ZWY$P0Z(Hl-3) z3bcOzO}uX9FuvyLCP?7ag~nnJl8OTYr=L#(C;P_rPb1u#fKd+Y+PwI`3a~HIF zE@};}(zqIL=q2lsR>kTqj(oX|TdB92KHT4#!&^8t*~X19VkC^WLZO_z*l_VSH{ZQ% zQNyavDY;I*E}B`6zwY(-LMhrbS@287=v`~x`aS!UZ`*4X2|m8TN%5R_RWL+VC^1F4 zt1m`#JqYwF3|Kb8YnOYOM5gOTaFse>U!FT@R+m%hTPGzIHd>UJk2l9Xs|;8Ba>XVB zJ4}9t3$tD%Yh=S)zg8l+y>Qs2_L-mdSw|ng#m}&we!2`@m-=}c={|cX$_1D6oY&r+ zN2QcHo=Td#RS9$Ru5P&8_gpi-t>WD&5{9uWGd}^Vc!t*WUQ=_VG*rrX_9u%)e^@pg zf%#a?8@Y;ii}Es3Q2pp}??i{Q%bAOrpA1e%v7a75^*Zs2yW9!901OCQ$XA{zFDgGc zIY0j;ll0E#f#roEkh$BfH=xrpg*MFNMD5?YpOFRC>n#3Wue&Yyt6s+ls@E0$OTF$6 zRIgL`qh43hx#$F{*CGB@uS;KB*aTU{|52|a$sV!$t6pb=08HrkMthc09w&4uO%Lc; znC(t6v4sBg1Mk|wU#f4Iq1PvGXt`i>`D^ezPsW{{WWVSOjBF};w2GU9tm2H8OQxrd zHnx*J;YLX7H^)sBn8lwzL>HAjj z`6h^AkGAJJhJ>{;RiLVxJH;xubg2vCFqrLp|3WBgPQ@pqyXOmp$J8y0=$ZjJd*ez+ z;?@GxQ@xHV*OfMBA9i5wa$B^aNpHnc3bUmXZQ!_=h^7JJjn*QYW$bxub)ekMMe&nV zybX|wSLSVdT6cVQDcH6~j)+yOE54nc$9c*mG>7yqOM9M_m!wsrVm!}_J;=GXG@hr+b{#LNT_5=+-Yj$o8YV4f z-nN5(J($dSs9~p{?UW3mgyPDZA&B~8KsV~vy>o2OIrTK4+tt%d?OO(%;us@U~&G>(GgWvwm4Sox_!7*%|M<4H&(0$=j zF1>BhClOJEF0YVR(cDGS;sB!tew2RDFD5UZ8!L%frbsFmcYOjoBB~Oew=~(|;m|yE z^&imPk3<*m8@`KE|hxv%$Pr8aDOjV0m^VPcK>9Q!V*j$m;pQL3Ww>=fBVJXs{a z_ZJ+{b!$}-zCKVF4zbeTH{$&sO^+v?JrP+mwYT}{)b2Kn5jMx?IU{htB;uC^tv6Cx zkC_g%%nch{Tva8~Ux=?mXq39|R&2RfxxqeN}PN zOmDK%zM1%zcY)MQjwo1SfSQSD;|ri>a%WBC4%w#>MvS$~#LBSOG~+h&p_@(C$2n@b6EcKU9S9y!R;(t~miV6ZgZHBv zCIvV^^L8c5Q{;>u-SE&}kY$N08gkTyYm1(m`C-~>VtaCEdT6*Oo3Agm=^yVoCzWvT z6VQfG*9fosq}Xv-7TZYxdT>z!M5)=Uqh~7i5BU>&sd#Ea4Ms1kHS}jl$4xFOCxB60 z?4c3gN-aLEH)s?$GzS{R87^cCeZ;5i&S)oRa+JXJSbC@I`S}mJw2mF$)z1#1OKwaD z;|W! z`;;a|Is&`qR$5j`{yvKvyUYTDb<7<=ux`!qde6$bL1wD9SR9=V2AlcL`jjm}Lz73M z!YtmJ4R@V_enh1j&gGNw_|Jx#`1w%$qV6D#Z|g3vEE!i*u6Ba2c9OxamEYBft53tP ze>ix7WXmZW_yQusSn4G0S}ZX=ioP*C)>C+xL^u7wv!1b66Y&(E%~twa!H$ga>b=UM z^;s8`OaKBV=r9EGwZczD!8FMrk$FM&V ztcj52{dUBooM}`dMYE64x5g!DP74DhXX+>;QbdnOov?IkUnn9>T(-NjT5dgLe^I#z z$%-}#X)dE{_WiJyx1d6Ww>KJtetF}2-0H@NGo0f|da{dO}QjI0;B<2>A1x?PmzPtM(oW}*~)H`2mP;+Ybn0jjyHVpCzW2=+8^b5L;DI_LQJ{%ZIB7f4? z%im10{<(@<@t^8j)jiEob3z+sN%U_KRulY+cCCgiQ?AOif4ShnIe)KY#IetrfyJ?6 zyvB&#^)eM5p(I~6_%-c|l`M36AADtN;qUfUr)$@SoOq%5G==BC)lAk^#Z~zh=l#~M ztb|ufjNyxEHgJ0v#KSZsxvD!B9sAKs0_DWcuQONPUGObm4ZR{VNTut7DBQr*hSqMoSNX(ai3WZdQ9fCIu1h z2T zzI~0^vvaf04D@Oy6hB1FWl+V}i%3-9YJbX)FXd>qALw0%J;0!DG+ ze~jYXoh6h%O;$la*+dzTrCr=u)*013;IWf-02DL3BxkSh?eR z_S>TLxlFZ?M=U^>LhN|Cq@|k7L3Ak*pi4gbtN>jSJ`M;y_@>-WPS%ZpNACRYoO_H< z9MxOeOPc@SB6wK#M{p3UdCU8t{M{sPmMD8k8)GCS;r3^)v;{_!H=EF#)E)3U&q?8wc+>~H$jW09{0+UnRAXni?O`KXVHtG z5Z&I`eVI^Q<)=bo06>up^)()`vUcz*d!QkBTUX0O0~IZt*y0*I}XZG9DT2$Lv#{;+nex9~8#UOI5m+e&YkaRS<5$91%~_v?~u zJ>xFuyzSVj(neq^!vQtZ^E}gor}L!;5z|rNe5t?MXMgH%=S!6?s(+j>;Vxe#vB8|Q znST9-3&5p$A_^IN) z2F*#v=APH4@24 z8f`^%lgkP!zgv&WryBPeTrzRDdd0?R`C=l$mXI70Gsl3W5!*|;lPb|>b}NnLe#h_A zdeP(uK(B6I_qzP*XU5bA!eZm4iSC=gZ9>faKJgsLd;w#lAr|oo$u4if-c3~qWwi`@ z;;J4Db3(N?M)pEi`M?w<8(Y!diYhTxwSHWG8}>H0!SK^~Y<-Ay^mE6Db6aO#^t|V( zdu|`O_DFYqvjI8ND7LM%B*j*?LWcfs7#s7T%a0L;+L~cA(R@sU-Cvdp*oWR>_+0p{ zp{TDz2_3&|_+5h4ZwHs7$O!@px{7rx-tjBMX|p{17Wq-pZtc>zuV`ilVX*wLI}f{2 z3Rldyt&4;GNSOCd&tzl_K9$ls_()PC1c(=_7VP8WH}K!mPNq-E?cx3af_2peGBSL3 z&pd#S&;kUX{!_5d@hMmb3kufdMs}XKG>eHTMivEcA3eiP;x-W3TUIESsh8vrz9~)w z1?!ex)H4aYh;W%Zd?(}&7;eN)`q*-$rMc*9m9l0U4PxX_@xrl%Zb{t87wH?1 z_e|Q$sT5m?E5i9|>ZMyz zys;8!s2Y%+iM?Fh8n83j|7mB+VUtUK-T7~JCWpA9?~7c-N*V5C-z6#lJCi{*;xX!| z?!#p%9%hx0CI>w2Dqv^Q?*{BlY1&cE2b#LPIBQO>PF^~I__+eHc;Ge@?m|B2j{1AV z#~rSs{JGrCVKz}z6D!B#Q@y^8rne(<$jO86|dDB^4JIL;9&nFK^82cbhzUoQ@*^5B2oFO`nb7kZDu+`DK+ zbnhs^&A**UG&;!GE-;J3-hPQ}XXgwSjnbH!tFQFz*t}u{SAn*H8TU>8TJP!nH)XmSw(r;bNiI=SJr#r`X-%gVVLykW0gMO+VjQT5YX z^c6yKk!&WLH*pPO$<)uTVg?{h+*`7Z(L!#Ka9Kld+uqZ>OAq+kcja8c!MuQ%?{+Yi z?FX$lF;VCXrs?u?!`j~F?xtn)pLXz?xZig01AG5J?ch3q9b6ytX5-Ng-kJLy7jf<- zox@0mw1(-XF`WT`jCvza<`?A%o*mRq+>IW*YzqY6eGQRD3o6##hvlOgxm+&zHA(0f7UxkfzhLcxiUv4JJ5SS!U>^-t#>JN z{B2g#(^$m%=6z+s+z*P|M3 zRA@3pW)r-RE*gTHgtH!`ZY-0t)M}_?zx`1Lx?hU^eZM4x=%(a<2kz7kfqTJJNhZNX z>#q`i2T{aOxmNa8FU7G;DHeA?cv~FeOYEmwOkR^(oV&ZDk1T+*n-c5eNqp@O)GZIU z23Tp@#v+aZ0S&wYGc(^{wwekxk2KX(CRio2~r{I^WxXu?Y)Iav~`DFLjS|b|FJQ6d`e?{RgcD0_&EE6ooh zXel#YYYumip+4#CI`G8OoINdHGp^CYT)p%LG^VvccBXldohgIn(ay9|UiiElFLuA| zM~|S0=BKmtZBrMU-mZtHI0=0B26y?$Pq&UvcOO!mqWWHgf_0@=uwpZ&gPBFoN^dMZ z^Ox;8@%r{jN`^|qRM(82+0$lbKLzXNJ^Hxkfq#1po^;_ru&#?52eCd*t|hSUw9bQ<^|L7|k5UOY);_Sg?)oTuv(x;N^bn4& zk9YK?`Roy6ct>eCd1m1I);#Y@cpB&M;iJfS60bJq-ER>8$(t~yIy2XQkL1MvPrM0` zfa@99*vMNO7>Jwv4^ni0>X)89-^B}wFnDLRyr1&f^DC6~&EmLvQ zh#pxd`wF=R=MWo-W`Zyp#Jq4ablz;}7gA;Yw-J!zct$kH%U-C*!H{4}h+$Wo6X~tm^^>B=y0~JNi==meA`qPEVR=<0Kq2ax+JM0l8TbV zqrJd^PTNml()zlGd}xACU^s;i|kc3wSDn-79CPADmIvY zJ>N8w&>Ox|kpDTTun-vsLxJVdRW%t(^`>0^oB3z1L<}s7%YZk(N`t_Y1onyPGfwa9 zS==xeG=mOkx5fO~nz>;_-%!VXrhf^KuN9xvE@3YPxycxvOum#RkbELp4qGUp4BJ_y zK0>B4!K~AdDUYxHIv=yA<2|NW8d&m7kAiWY=6BQ=SK)fe${Iablj2gg9Ap&YY@3*! z-l5YNkrq9O0yM>G?x%o(>2>EH1}2&SSD$C4wW68c6nG6cC%TUYrtA_N(G&q``vAU; zvD>1Rvx&CYDMS1eX_AFP8k_MBpOvl^=rh^WCb2Qs$Qb{BGRt;*|iulOV5p7Of?k_ZQl1El%Xq`Tx^wmojjIt?4i3ZCV ze~GKK<

Qs;}=+H3=boi9BKQ9g9*C1rv%NfGUO`%J+Wm_ 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 HgyjDKlnK@k diff --git a/test/src/test/resources/hudson/tasks/junit/JUnitResultArchiverTest.zip b/test/src/test/resources/hudson/tasks/junit/JUnitResultArchiverTest.zip deleted file mode 100644 index 5eb62534de3d61ca027e0c07e036d0f12f581868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 272687 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 F^?&-G@)`gD diff --git a/test/src/test/resources/hudson/tasks/junit/TestResultLinksTest.zip b/test/src/test/resources/hudson/tasks/junit/TestResultLinksTest.zip deleted file mode 100644 index b68c47764fc7385a79548c1d12140c33e6a795df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1049 zcmWIWW@h1H0D-9`Q?0=aD8b4g%8-?xRIDEw!pXo~^+Vsg7KlSDSQvJkNMQ)TsgDn) zuOzXsG_@!*kyHaDFbpWqFUl@1NK8(}ZIlSm)f`|y)ZKBK%f`sSa1w|O@EDar`gW7o?9<=KaJ{%6}Nu5UgX2Yt-7*lXEWyRVstNclHTc7 zeT8>n`ro!~eS3tbY8f|VPH|nvT~n*CxW@fiJ>zr1AbX)U_3M5<3;iB0P)u9nB3K>G zU!3G=vE|aQL&9183or4XxuSaW#OE(@`b-!`_1>@d7KeXiTAA9@c`PUPHpH7FKk_SaPBB1BgTsg=K z40b^v<^l$Ea(-S~W;)Iw+<9 hp+*U^Rk}wr$&)*tTukZ_li?_SyS658jhMQb|?% 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 - - -java.lang.NullPointerException - at org.twia.vendor.VendorManagerTest.testGetVendorFirmKeyForVendorRep(VendorManagerTest.java:104) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at junit.framework.TestCase.runTest(TestCase.java:166) - at org.unitils.UnitilsJUnit3.runTest(UnitilsJUnit3.java:171) - at junit.framework.TestCase.runBare(TestCase.java:140) - at org.unitils.UnitilsJUnit3.runBare(UnitilsJUnit3.java:138) - at junit.framework.TestResult$1.protect(TestResult.java:106) - at junit.framework.TestResult.runProtected(TestResult.java:124) - at junit.framework.TestResult.run(TestResult.java:109) - at junit.framework.TestCase.run(TestCase.java:131) - at org.unitils.UnitilsJUnit3.run(UnitilsJUnit3.java:101) - at junit.framework.TestSuite.runTest(TestSuite.java:173) - at junit.framework.TestSuite.run(TestSuite.java:168) - at junit.framework.TestSuite.runTest(TestSuite.java:173) - at junit.framework.TestSuite.run(TestSuite.java:168) - at junit.textui.TestRunner.doRun(TestRunner.java:74) - at org.twia.junit.CustomTestRunner.run(CustomTestRunner.java:76) - at org.twia.test.ejb.JunitCallerEJB.testSuites(JunitCallerEJB.java:136) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.invocation.Invocation.performCall(Invocation.java:359) - at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237) - at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158) - at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169) - at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63) - at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121) - at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315) - at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) - at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) - at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) - at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) - at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) - at org.jboss.ejb.Container.invoke(Container.java:960) - at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at org.jboss.invocation.unified.server.UnifiedInvoker.invoke(UnifiedInvoker.java:231) - at sun.reflect.GeneratedMethodAccessor288.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:201) - at $Proxy16.invoke(Unknown Source) - at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:795) - at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573) - at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:387) - at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166) - - - -java.rmi.ServerException: RuntimeException; nested exception is: - java.lang.IllegalArgumentException: id to load is required for loading - at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:421) - at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:209) - at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) - at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) - at org.jboss.ejb.Container.invoke(Container.java:960) - at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169) - at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118) - at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209) - at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195) - at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61) - at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70) - at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112) - at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100) - at $Proxy108.assignAdjustingFirmAndLocation(Unknown Source) - at org.twia.vendor.VendorManagerTest.testGetRevokedClaimsForAdjustingFirm(VendorManagerTest.java:120) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at junit.framework.TestCase.runTest(TestCase.java:166) - at org.unitils.UnitilsJUnit3.runTest(UnitilsJUnit3.java:171) - at junit.framework.TestCase.runBare(TestCase.java:140) - at org.unitils.UnitilsJUnit3.runBare(UnitilsJUnit3.java:138) - at junit.framework.TestResult$1.protect(TestResult.java:106) - at junit.framework.TestResult.runProtected(TestResult.java:124) - at junit.framework.TestResult.run(TestResult.java:109) - at junit.framework.TestCase.run(TestCase.java:131) - at org.unitils.UnitilsJUnit3.run(UnitilsJUnit3.java:101) - at junit.framework.TestSuite.runTest(TestSuite.java:173) - at junit.framework.TestSuite.run(TestSuite.java:168) - at junit.framework.TestSuite.runTest(TestSuite.java:173) - at junit.framework.TestSuite.run(TestSuite.java:168) - at junit.textui.TestRunner.doRun(TestRunner.java:74) - at org.twia.junit.CustomTestRunner.run(CustomTestRunner.java:76) - at org.twia.test.ejb.JunitCallerEJB.testSuites(JunitCallerEJB.java:136) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.invocation.Invocation.performCall(Invocation.java:359) - at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237) - at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158) - at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169) - at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63) - at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121) - at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315) - at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) - at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) - at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) - at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) - at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) - at org.jboss.ejb.Container.invoke(Container.java:960) - at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at org.jboss.invocation.unified.server.UnifiedInvoker.invoke(UnifiedInvoker.java:231) - at sun.reflect.GeneratedMethodAccessor288.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:201) - at $Proxy16.invoke(Unknown Source) - at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:795) - at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573) - at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:387) - at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166) -Caused by: java.lang.IllegalArgumentException: id to load is required for loading - at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:51) - at org.hibernate.event.LoadEvent.<init>(LoadEvent.java:33) - at org.hibernate.impl.SessionImpl.get(SessionImpl.java:812) - at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808) - at org.twia.persistence.hibernate.HibernateDAO.reloadWithVersionCheck(HibernateDAO.java:712) - at org.twia.persistence.hibernate.HibernateDAO.reloadWithVersionCheck(HibernateDAO.java:782) - at org.twia.claim.ClaimManager.assignAdjustingFirmAndLocation(ClaimManager.java:3119) - at org.twia.claim.ClaimManager.assignAdjustingFirmAndLocation(ClaimManager.java:3092) - at org.twia.claim.ClaimManagerSessionEJB.assignAdjustingFirmAndLocation(ClaimManagerSessionEJB.java:547) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.invocation.Invocation.performCall(Invocation.java:359) - at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237) - at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158) - at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169) - at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63) - at org.jboss.ejb.plugins.AbstractInterceptor.invoke(AbstractInterceptor.java:111) - at org.twia.stats.StatisticsInterceptor.invoke(StatisticsInterceptor.java:79) - at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121) - at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350) - at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) - at org.twia.security.SecurityInterceptor.invoke(SecurityInterceptor.java:105) - at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) - ... 81 more - - - - - - - - -java.rmi.ServerException: RuntimeException; nested exception is: - org.twia.dao.DAOException: [S2001] Hibernate encountered an error updating Claim [null] : - id = C0147909. Reason = The given object has a null identifier: org.twia.claim.Claim; Logon Id: tbotadauth. Claim Id: {3}. - at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:421) - at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:209) - at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) - at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) - at org.jboss.ejb.Container.invoke(Container.java:960) - at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java:169) - at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:118) - at org.jboss.invocation.InvokerInterceptor.invokeLocal(InvokerInterceptor.java:209) - at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:195) - at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:61) - at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:70) - at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java:112) - at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:100) - at $Proxy108.updateClaim(Unknown Source) - at org.twia.vendor.VendorManagerTest.testCreateAdjustingFirm(VendorManagerTest.java:259) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at junit.framework.TestCase.runTest(TestCase.java:166) - at org.unitils.UnitilsJUnit3.runTest(UnitilsJUnit3.java:171) - at junit.framework.TestCase.runBare(TestCase.java:140) - at org.unitils.UnitilsJUnit3.runBare(UnitilsJUnit3.java:138) - at junit.framework.TestResult$1.protect(TestResult.java:106) - at junit.framework.TestResult.runProtected(TestResult.java:124) - at junit.framework.TestResult.run(TestResult.java:109) - at junit.framework.TestCase.run(TestCase.java:131) - at org.unitils.UnitilsJUnit3.run(UnitilsJUnit3.java:101) - at junit.framework.TestSuite.runTest(TestSuite.java:173) - at junit.framework.TestSuite.run(TestSuite.java:168) - at junit.framework.TestSuite.runTest(TestSuite.java:173) - at junit.framework.TestSuite.run(TestSuite.java:168) - at junit.textui.TestRunner.doRun(TestRunner.java:74) - at org.twia.junit.CustomTestRunner.run(CustomTestRunner.java:76) - at org.twia.test.ejb.JunitCallerEJB.testSuites(JunitCallerEJB.java:136) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.invocation.Invocation.performCall(Invocation.java:359) - at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237) - at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158) - at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169) - at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63) - at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121) - at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:315) - at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) - at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:168) - at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) - at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:138) - at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:648) - at org.jboss.ejb.Container.invoke(Container.java:960) - at sun.reflect.GeneratedMethodAccessor289.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at org.jboss.invocation.unified.server.UnifiedInvoker.invoke(UnifiedInvoker.java:231) - at sun.reflect.GeneratedMethodAccessor288.invoke(Unknown Source) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) - at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) - at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) - at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) - at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) - at javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:201) - at $Proxy16.invoke(Unknown Source) - at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:795) - at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573) - at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:387) - at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166) -Caused by: org.twia.dao.DAOException: [S2001] Hibernate encountered an error updating Claim [null] : - id = C0147909. Reason = The given object has a null identifier: org.twia.claim.Claim; Logon Id: tbotadauth. Claim Id: {3}. - at org.twia.persistence.hibernate.HibernateDAO.handleHibernateException(HibernateDAO.java:274) - at org.twia.persistence.hibernate.HibernateDAO.handleHibernateException(HibernateDAO.java:242) - at org.twia.persistence.hibernate.HibernateDAO.update(HibernateDAO.java:443) - at org.twia.claim.ClaimManager.updateClaim(ClaimManager.java:4475) - at org.twia.claim.ClaimManagerSessionEJB.updateClaim(ClaimManagerSessionEJB.java:68) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) - at java.lang.reflect.Method.invoke(Method.java:585) - at org.jboss.invocation.Invocation.performCall(Invocation.java:359) - at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:237) - at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:158) - at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:169) - at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:63) - at org.jboss.ejb.plugins.AbstractInterceptor.invoke(AbstractInterceptor.java:111) - at org.twia.stats.StatisticsInterceptor.invoke(StatisticsInterceptor.java:79) - at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:121) - at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:350) - at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:181) - at org.twia.security.SecurityInterceptor.invoke(SecurityInterceptor.java:105) - at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205) - ... 81 more - - - \ No newline at end of file diff --git a/test/src/test/resources/hudson/tasks/test/AbstractTestResultExtensionTest.zip b/test/src/test/resources/hudson/tasks/test/AbstractTestResultExtensionTest.zip deleted file mode 100644 index 1110eebf793d800cb836780907a30bb96eb5fd51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 709 zcmWIWW@h1H0D-9`Q?0=aD8b4g%8-?xRIDEw!pXo~`9t5k7KlSDSQvJkNMQ)TsgDCJ0IlFEeFHP=V>L8Kvr-pr7=xX-It!JvwRDW&@n0qh% ztk{PYYgTr*f7+Lju;lGj$ybjq?Ym%f*t`xaFn=zadZM|W2}ykqxR+;!5|;2L1$FfxfVZXaox|ymbUIp^?lAiR91< z2E6)t8Ibi`!1N;`8^au2(F`#M80!p68iAHV+yOHOInq%~WMu;?Wnc!vTR{3MNIL@n D6Xxg% diff --git a/test/src/test/resources/hudson/tasks/test/AggregatedTestResultPublisherTest.zip b/test/src/test/resources/hudson/tasks/test/AggregatedTestResultPublisherTest.zip deleted file mode 100644 index c0b70ddc532b8d68a67780592a9acc90ad20cd01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 274239 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%0DcEnlC|oRg5bdQcOQmmmTFM{JFS0`{&}$Q7WGh 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

lUNgdAZnSt~r6lZx!phJPeQ?E|&0t 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

3z0WhYW`X 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 D5c-kk diff --git a/test/src/test/resources/hudson/tasks/test/TrivialTestResult/body.jelly b/test/src/test/resources/hudson/tasks/test/TrivialTestResult/body.jelly deleted file mode 100644 index 201940681c40..000000000000 --- a/test/src/test/resources/hudson/tasks/test/TrivialTestResult/body.jelly +++ /dev/null @@ -1,114 +0,0 @@ - - - - -

TrivialTestResult body.jelly

- - -

${%All Failed Tests}

- - - - - - - - - - - - - - -
${%Test Name}${%Duration}${%Age}
- >>> - - - - - - - - - - ${f.duration} - - ${f.age} -
-
- - -

${%All Tests}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
${it.childTitle}${%Duration}${%Fail}(${%diff})${%Skip}(${%diff})${%Pass}(${%diff})${%Total}(${%diff})
- ${p.name} - - - - - ${p.durationString}${p.failCount} - ${h.getDiffString2(p.failCount-prev.failCount)} - ${p.skipCount} - ${h.getDiffString2(p.skipCount-prev.skipCount)} - ${p.passCount} - ${h.getDiffString2(p.passCount-prev.passCount)} - ${p.totalCount} - ${h.getDiffString2(p.totalCount-prev.totalCount)} -
-
-
diff --git a/test/src/test/resources/hudson/tasks/test/TrivialTestResult/body_es.properties b/test/src/test/resources/hudson/tasks/test/TrivialTestResult/body_es.properties deleted file mode 100644 index 367e280c2635..000000000000 --- a/test/src/test/resources/hudson/tasks/test/TrivialTestResult/body_es.properties +++ /dev/null @@ -1,10 +0,0 @@ -Total= -Loading...= -Age= -All\ Tests= -Fail= -diff= -Skip= -Duration= -Test\ Name= -All\ Failed\ Tests= diff --git a/war/pom.xml b/war/pom.xml index d1dcd0198ee1..0d956c12ec7b 100644 --- a/war/pom.xml +++ b/war/pom.xml @@ -367,6 +367,12 @@ THE SOFTWARE. 1.3 hpi + + org.jenkins-ci.plugins + junit + 1.0 + hpi + ${project.build.directory}/${project.build.finalName}/WEB-INF/plugins true diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate.html deleted file mode 100644 index 0fdb7263edeb..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate.html +++ /dev/null @@ -1,11 +0,0 @@ -
- When checked, Jenkins simply aggregates tests from - all the transitive downstream jobs of this project. This is convenient - as you don't have to individually list them and keep them up to date - as you add/remove jobs. This normally works just fine, as your test - jobs are normally set up as downstream jobs of the build job. - -

- If for some reasons the auto aggregation doesn't work, you can always - manually specify a list of jobs to be aggregated. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_de.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_de.html deleted file mode 100644 index 262471fda7c0..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_de.html +++ /dev/null @@ -1,11 +0,0 @@ -
- Wenn angewählt, fasst Jenkins die Testergebnisse von allen transitiv - nachgelagerten Jobs dieses Projektes zusammen. Dies ist sehr bequem, da Sie - in diesem Fall nicht alle Jobs einzeln hinzufügen und aktuell halten müssen. - Die automatische Aggregation funktioniert in der Regel problemlos, wenn Sie - Ihre Tests als nachgelagerte Jobs des eigentlichen Build-Jobs einrichten. -

- Sollte aus irgendwelchen Gründen die automatische Aggregation nicht - funktionieren, können Sie immer auch eine manuelle Liste aller Test-Jobs - angeben. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_fr.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_fr.html deleted file mode 100644 index 7c103e5fa018..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_fr.html +++ /dev/null @@ -1,11 +0,0 @@ -
- Quand cette case est cochée, Jenkins aggrège simplement les tests des - jobs transitifs en aval pour ce projet. Cela est commode, car nous n'avez - pas à les lister individuellement et garder cette liste à jour quand vous - ajoutez ou supprimez des jobs. Généralement, cela suffit, du moment que vos - jobs de test sont configurés comme des jobs en aval du job de build principal. - -

- Si par extraordinaire l'aggrégation automatique ne marche pas, vous pouvez - toujours spéficier manuellement une liste de jobs à aggréger. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_ja.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_ja.html deleted file mode 100644 index 271f4da78e56..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_ja.html +++ /dev/null @@ -1,8 +0,0 @@ -
- チェックすると、このプロジェクト下流のジョブをすべて集約します。 - 個々に集約するプロジェクトを指定したり、ジョブの追加・削除のたびに維持する必要がないので便利です。 - これは、テストのジョブがこのジョブの下流のジョブとして設定していれば、通常正常に動作します。 - -

- 何らかの理由で自動的に集約できない場合は、集約するジョブのリストを手動で設定することができます。 -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_nl.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_nl.html deleted file mode 100644 index bff3aa683aa1..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_nl.html +++ /dev/null @@ -1,10 +0,0 @@ -
- Indien aangevinkt, zal Jenkins de testresultaten van de transitieve onderliggende - jobs van dit project samenvoegen. Dit is handig aangezien je de jobs niet - dient op te lijsten noch de lijst te actualizeren wanneer job toegevoegd of - verwijderd worden. Over het algemeen werkt dit perfect, aangezien test jobs - typisch als onderliggende jobs van uw huidige job gedefiniëerd worden. -

- Indien het automatisch samenvoegen van testresultaten in uw situatie niet werkt, - kun je altijd manueel de lijst van samen te voegen jobs opgeven. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_pt_BR.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_pt_BR.html deleted file mode 100644 index 8e759fa81ffe..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_pt_BR.html +++ /dev/null @@ -1,11 +0,0 @@ -div> - Quando marcado, o Jenkins simplesmente agrega os testes de - todas as tarefas filhas transitivas deste projeto. Isto é conveniente - quando você não tem que listá-las individualmente até a data - que você adicionou/removeu as tarefas. Isto normalmente funciona bem, como suas - tarefas de teste são normalmente configuradas como tarefas filhas da tarefa de construção. - -

- Se por alguma razão a auto agregação não funcionar, você pode sempre - especificar manualmente uma lista de tarefas para serem agregadas. - diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_tr.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_tr.html deleted file mode 100644 index 0fdb7263edeb..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_tr.html +++ /dev/null @@ -1,11 +0,0 @@ -

- When checked, Jenkins simply aggregates tests from - all the transitive downstream jobs of this project. This is convenient - as you don't have to individually list them and keep them up to date - as you add/remove jobs. This normally works just fine, as your test - jobs are normally set up as downstream jobs of the build job. - -

- If for some reasons the auto aggregation doesn't work, you can always - manually specify a list of jobs to be aggregated. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_zh_TW.html b/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_zh_TW.html deleted file mode 100644 index dfb4a6565c2c..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/auto-aggregate_zh_TW.html +++ /dev/null @@ -1,8 +0,0 @@ -
- 選用後,Jenkins 會簡單彙總所有下游專案的測試。 - 方便您新增或移除作業時,不用一一設定測試專案清單,並維護清單的正確性。 - 您只需要把測試作業設定成建置作業的下游就好。 - -

- 如果自動彙總不適用,您也可以手動指定要彙總的專案清單。 -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help.html b/war/src/main/webapp/help/tasks/aggregate-test/help.html deleted file mode 100644 index fa61e9b4db62..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help.html +++ /dev/null @@ -1,12 +0,0 @@ -
- Because tests often dominates the execution time, a Jenkins best practice - involves splitting test executions into different jobs, possibly in multiple - different jobs. - -

- When you do that, setting test aggregation is a convenient way of - collecting all the - test results from such downstream test jobs and display it along with the - build that they are testing. In this way, people can see the overall test - status of the given build quickly. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help_de.html b/war/src/main/webapp/help/tasks/aggregate-test/help_de.html deleted file mode 100644 index 8d849a1590d8..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help_de.html +++ /dev/null @@ -1,9 +0,0 @@ -
- Da die Testausführung in vielen Fällen die Build-Dauer dominiert, ist es - unter Jenkins-Praktikern üblich, die Testausführung in einen separaten Job - auszulagern - eventuell sogar in mehrere Jobs. -

- In diesem Szenario erlaubt die "Test-Aggregation" auf bequeme Weise, die - Testergebnisse nachgelagerter Test-Jobs zu sammeln und zusammen mit dem - Build darzustellen, der getestet wurde. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help_fr.html b/war/src/main/webapp/help/tasks/aggregate-test/help_fr.html deleted file mode 100644 index 56fc12c8c593..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help_fr.html +++ /dev/null @@ -1,12 +0,0 @@ -
- Parce que les tests prennent la majeure partie du temps d'exécution, une - bonne pratique Jenkins consiste à séparer l'exécution des tests dans des - jobs différents, voire de multiples jobs. - -

- Si vous faites ainsi, demander l'aggrégation des tests est une manière - pratique de collecter les résultats des tests provenant de jobs en aval - et de les afficher avec le build qu'ils ont testé. De cette façon, les - utilisateurs peuvent voir rapidement le statut général des tests d'un - build donné. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help_ja.html b/war/src/main/webapp/help/tasks/aggregate-test/help_ja.html deleted file mode 100644 index b722c0fce28f..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help_ja.html +++ /dev/null @@ -1,10 +0,0 @@ -
- 多くの場合テストが実行時間の大半を占めるので、 できればテストを異なる複数のジョブに分けるのが、 - Jenkinsにおけるベストプラクティスの1つです。 - -

- ベストプラクティスを実践する場合、テスト結果集約の設定は、 - 全下流プロジェクトのテスト結果を集約したり、テストしているビルド毎にテスト結果を表示するのに、 - 便利な方法です。 - こうすると、素早くビルドの状態を見渡すことができます。 -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help_nl.html b/war/src/main/webapp/help/tasks/aggregate-test/help_nl.html deleted file mode 100644 index 22db13ea3b77..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help_nl.html +++ /dev/null @@ -1,10 +0,0 @@ -
- Aangezien testen vaak veel tijd in beslag nemen, is het binnen Jenkins een - aangeraden praktijk om uw testen in aparte jobs uit te voeren. - -

- Wanneer u uw jobs op die manier opbouwt is het handig om de op deze manier de - testresultaten van de onderliggende jobs te tonen bij de job die ze testen. Op - deze manier kan men snel een algemeen overzicht krijgen van de teststatus van - een bouwpoging. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help_pt_BR.html b/war/src/main/webapp/help/tasks/aggregate-test/help_pt_BR.html deleted file mode 100644 index 9596b14028f1..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help_pt_BR.html +++ /dev/null @@ -1,11 +0,0 @@ -
- Por causa dos testes frequentemente dominarem o tempo de execução, uma prática melhor do Jenkins - envolve dividir as execuções de testes em diferentes tarefas, possivelmente em múltiplas - tarefas diferentes. - -

- Quando você fizer isto, configurar a agregação de teste é uma forma conveniente de - coletar todos os resultados de testes de tal tarefa de teste filha e - mostrá-la junto a construção que ela está testando. Desta forma, as pessoas podem ver - o estado todo do teste da construção rapidamente. -

diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help_tr.html b/war/src/main/webapp/help/tasks/aggregate-test/help_tr.html deleted file mode 100644 index b3c3af70832b..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help_tr.html +++ /dev/null @@ -1,9 +0,0 @@ -
- Testler, bir yapılandırmanın en uzun süren parçası olabilirler, bunun üstesinden gelebilmek için, - test işleminin birden farklı ise bölünmesi yöntemi önerilir. - -

- Bu şekilde çalısırsanız, test kümeleme seçenegi, tüm downstream işlerdeki test sonuçlarını - toparlayarak, üzerinde testleri çalıştırdıkları yapılandırma aracılıgı ile gösterme imkanı saglar. - Bu yöntem ile, yapılandırmanın üzerinde çalışan tüm testleri bir arada gösterilebilirsiniz. -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/help_zh_TW.html b/war/src/main/webapp/help/tasks/aggregate-test/help_zh_TW.html deleted file mode 100644 index 16616a03edc0..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/help_zh_TW.html +++ /dev/null @@ -1,7 +0,0 @@ -
- 通常測試會佔用執行時間的一大半,Jenkins 實務上的最佳用法會建議您把測試獨立成另外的幾項作業。 - -

- 這麼做之後,設定測試彙總就能方便您從下游的測試作業取得結果,並顯示在被測試的建置中。 - 大家都能快速的看到特定建置的全部測試狀態。 -

\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list.html deleted file mode 100644 index 1e44d02bf29d..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Specify a list of job names manually here. Multiple names can be separated by - comma, like "foo, bar" -
\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_de.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list_de.html deleted file mode 100644 index eae18d806d13..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_de.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Geben Sie eine Liste von Jobnamen an. Mehrere Namen können mit einem Komma - getrennt werden, z.B. "foo, bar". -
\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_fr.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list_fr.html deleted file mode 100644 index 6004231e392e..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_fr.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Indiquez ici manuellement la liste des jobs. De multiples noms peuvent être - séparés par une virgule, par exemple "foo, bar". -
\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_ja.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list_ja.html deleted file mode 100644 index ff714c4f4a00..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_ja.html +++ /dev/null @@ -1,3 +0,0 @@ -
- ジョブ名のリストを指定してください。ジョブ名はカンマで区切ります(例 "foo, bar")。 -
\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_nl.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list_nl.html deleted file mode 100644 index b0784ed1ccea..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_nl.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Hier kunt u manueel een lijst van jobs opgeven. Meerder namen dienen door een - komma gescheiden te worden, vb. "foo, bar". -
\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_pt_BR.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list_pt_BR.html deleted file mode 100644 index 0b82cc79707b..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_pt_BR.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Especifique uma lista de nomes de tarefas manualmente aqui. Múltiplos nomes podem ser separados - por vírgula, como "foo, bar" -
diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_tr.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list_tr.html deleted file mode 100644 index c4e820d4f003..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_tr.html +++ /dev/null @@ -1,4 +0,0 @@ -
- Iş listesini manuel olarak belirleyebilirsiniz. Birden fazla isim virgül ile birbirinden - ayrılabilir, örn. "foo, bar" -
\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_zh_TW.html b/war/src/main/webapp/help/tasks/aggregate-test/manual-list_zh_TW.html deleted file mode 100644 index 6d7a1332349a..000000000000 --- a/war/src/main/webapp/help/tasks/aggregate-test/manual-list_zh_TW.html +++ /dev/null @@ -1,3 +0,0 @@ -
- 手動設定專案名稱清單。多個不同的專案可以使用半形 逗號分開,例如 "foo, bar"。 -
\ No newline at end of file diff --git a/war/src/main/webapp/help/tasks/junit/report.html b/war/src/main/webapp/help/tasks/junit/report.html deleted file mode 100644 index 106299dc5790..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report.html +++ /dev/null @@ -1,17 +0,0 @@ -
diff --git a/war/src/main/webapp/help/tasks/junit/report_de.html b/war/src/main/webapp/help/tasks/junit/report_de.html deleted file mode 100644 index 3566ba9436fe..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_de.html +++ /dev/null @@ -1,20 +0,0 @@ -
- Jenkins unterstützt das JUnit-XML-Format für Testergebnisse (das auch von - TestNG verwendet wird). Wenn diese Option konfiguriert ist, kann Jenkins - nützliche Auswertungen der Testergebnisse bereitstellen, z.B. deren - zeitlichen Verlauf darstellen, Testergebnisse in einer webbasierten Oberfläche - anzeigen, Fehlschläge verfolgen usw. - -

- - Um diese Funktion zu verwenden, richten Sie Ihren Build-Prozess zunächst so - ein, daß Tests ausgeführt werden. Dann geben Sie den Pfad zu den JUnit-XML-Dateien - in der Ant glob-Syntax, - an, z.B. **/build/test-reports/*.xml. Stellen Sie sicher, daß der Pfad - ausschließlich auf Testergebnisdateien im JUnit-XML-Format zutrifft. - -

- - Sobald ein paar Builds mit Tests gelaufen sind, sollten Sie Auswertungen wie - diese sehen. -

diff --git a/war/src/main/webapp/help/tasks/junit/report_fr.html b/war/src/main/webapp/help/tasks/junit/report_fr.html deleted file mode 100644 index 1e291f8f7eba..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_fr.html +++ /dev/null @@ -1,23 +0,0 @@ -
- Jenkins comprend le format XML des rapports de test JUnit (qui est le - même pour ceux de TestNG). - Quand cette option est configurée, Jenkins peut fournir des informations - utiles sur les résultats des tests, tels que les tendances historiques - sur les résultats des tests, une interface web pour visualiser les rapports - de test, tracer les échecs, etc. - -

- Pour utiliser cette fonctionnalité, tout d'abord configurez votre build - pour lancer des tests, puis spéficiez le chemin vers les fichiers XML - JUnit en utilisant - - la syntaxe classique de Ant, par exemple - **/build/test-reports/*.xml. - Assurez-vous de ne pas inclure des fichiers qui ne contiennent pas de - rapports dans ce pattern. - -

- Une fois que des builds produisent des résultats de test, vous devriez - commencer à voir quelque chose - comme ça. -

diff --git a/war/src/main/webapp/help/tasks/junit/report_ja.html b/war/src/main/webapp/help/tasks/junit/report_ja.html deleted file mode 100644 index 654d5bd0b67e..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_ja.html +++ /dev/null @@ -1,16 +0,0 @@ -
- Jenkinsは、JUnitのテストレポートのXML形式(TestNGも使用しています)を理解していますので、 - このオプションを設定すると、テスト結果の履歴、 - Web UIによるテストレポートの参照および失敗の追跡など、テスト結果に関する有益な情報を提供することができます。 - -

- この機能を使用するには、最初にテストが起動するようにビルドを設定します。 - そして、 JUnitのXMLファイルのパスを - Antのglobパターンで - 指定します。このパターンにレポートでないファイルを含めないようにします。 - 例: **/build/test-reports/*.xml - -

- テストを起動するビルドを数回実行すると、 - このようなグラフが表示されます。 -

diff --git a/war/src/main/webapp/help/tasks/junit/report_nl.html b/war/src/main/webapp/help/tasks/junit/report_nl.html deleted file mode 100644 index bcf8445e12e8..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_nl.html +++ /dev/null @@ -1,18 +0,0 @@ -
- Jenkins herkent het JUnit testrapport XML-formaat. Ditzelfde formaat word bvb. ook door TestNG - gebruikt. - Indien U deze optie configureert, kan Jenkins nuttige informatie over uw testresultaten tonen. - Deze informatie omvat historische trends, een web-gebaseerde interface voor de testrapporten, - het volgen van gefaalde testen, ... - -

- Om deze functionaliteit te gebruiken, dient U er vooreerst voor te zorgen dat uw - bouwconfiguratie voorzien is op het starten van uw testen. Vervolgens geeft U het - pad naar de Junit XML bestanden, volgens de - de Ant glob syntax op. Bvb. **/build/test-reports/*.xml. Let erop - dat U geen bestanden selecteert die geen rapport bevatten. - -

- Van zodra er enkele bouwpogingen met testresultaten beschikbaar zijn, zou je iets - gelijkaardigs aan het volgende moeten zien. -

diff --git a/war/src/main/webapp/help/tasks/junit/report_pt_BR.html b/war/src/main/webapp/help/tasks/junit/report_pt_BR.html deleted file mode 100644 index 8fc4a7569a44..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_pt_BR.html +++ /dev/null @@ -1,17 +0,0 @@ -
- O Jenkins entende o formato XML de relatório de teste do JUnit (que também é usado pelo TestNG). - Quando esta opção é configurada, o Jenkins pode fornecer informações úteis sobre os resultados dos testes, - tal como tendências de resultado de teste histórico, uma interface web para visualizar relatórios de teste, rastreamento de falhas, - e assim por diante. - -

- Usar esta característica, primeiro configure sua construção para executar os testes, então - especifique o caminho para os arquivos XML do JUnit XML - na sintaxe do glóbulo do Ant , - tal como **/build/test-reports/*.xml. Tenha certeza de não incluir nenhum arquivo que - não seja de relatório neste padrão. - -

- Um vez que exista algumas construções executando com resultados de teste, você começará a ver - algo como isto. -

diff --git a/war/src/main/webapp/help/tasks/junit/report_ru.html b/war/src/main/webapp/help/tasks/junit/report_ru.html deleted file mode 100644 index 197d58559632..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_ru.html +++ /dev/null @@ -1,15 +0,0 @@ -
- Jenkins понимает XML формат отчетов JUnit (который также используется TestNG). - Когда эта опция настроена, Jenkins может показывать полезную информацию о - результатах тестирования, такую как графики результатов тестов в историческом аспекте, - позволит посмотреть отчеты в браузере, поможет отследить ошибки и т.д. -

- Чтобы использовать эту функцию, прежде всего укажите вашему процессу сборки - запускать тесты, затем укажите путь к файлам отчетов JUnit в виде - синтаксиса Ant, - например, **/build/test-reports/*.xml. Проверьте, что посторонние файлы - не попадают в этот шаблон. -

- После того как выполнится несколько сборок с результатами тестов, вы увидите - что-то вроде этого. -

diff --git a/war/src/main/webapp/help/tasks/junit/report_tr.html b/war/src/main/webapp/help/tasks/junit/report_tr.html deleted file mode 100644 index c509360888dd..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_tr.html +++ /dev/null @@ -1,18 +0,0 @@ -
- Jenkins, JUnit test raporlarının XML biçimini anlayabilecek altyapıya sahiptir (Bu XML biçimi - aynı zamanda TestNG tarafından da kullanılır). - Konfigürasyonu yapıldığında, Jenkins test sonuçları ile ilgili, geçmişe yönelik test sonuçları - eğilimleri, test sonuçlarının görüntülenmesi için web arayüzü, hataların takibi gibi bir çok - faydalı bilgi ve imkan sunar. - -

- Bu özelliği kullanmak için, öncelikle yapılandırmalarınızı test çalıştıracak hale getirin, - daha sonra Ant'ın fileset sentaksında - belirttiği gibi JUnit XML dosyalarınızın yolunu - buraya yazın, örneğin **/build/test-reports/*.xml. Buraya rapor olmayan dosyaların - kalıplarını yazmadığınıza emin olun. - -

- Bir kaç test çalıştırıp, test sonuçlarını aldığınızda, bu linkteki - gibi birşeyler görmeniz gerekiyor. -

diff --git a/war/src/main/webapp/help/tasks/junit/report_zh_TW.html b/war/src/main/webapp/help/tasks/junit/report_zh_TW.html deleted file mode 100644 index 6804ba2aadcb..000000000000 --- a/war/src/main/webapp/help/tasks/junit/report_zh_TW.html +++ /dev/null @@ -1,15 +0,0 @@ -
- Jenkins 認得 JUnit 測試報告 XML 格式 (TestNG 也是用一樣格式)。 - 設定這個選項後,Jenkins 便能提供測試結果的有用資訊,例如: 歷次測試結果趨勢、 - 能查看測試報表的網頁介面、追蹤失敗案例...。 - -

- 要使用這個功能,請先讓您的建置會跑測試, - 再使用Ant 檔名樣式語法 - 指定 JUnit XML 檔的路徑,例如 **/build/test-reports/*.xml。 - 請注意該樣式不能包含不是報告的檔案。您可以設定多個檔名樣式,樣式之間請用半形逗號隔開。 - -

- 有幾次建置都有測試結果後, - 您應該就能看到這樣的東西。 -