diff --git a/test/ci_support/CDashAnalyzeReportRandomFailures_UnitTests.py b/test/ci_support/CDashAnalyzeReportRandomFailures_UnitTests.py new file mode 100644 index 000000000..ab8888673 --- /dev/null +++ b/test/ci_support/CDashAnalyzeReportRandomFailures_UnitTests.py @@ -0,0 +1,71 @@ +import unittest +from unittest.mock import patch +import unittest.mock as mock +import datetime + + +from FindCISupportDir import * +import CDashAnalyzeReportRandomFailures as CDARRF +from example_cdash_analyze_and_report_random_failures import ExampleVersionInfoStrategy, ExampleExtractBuildNameStrategy + + +#################################################################### +# +# Test CDashAnalyzeReportRandomFailuresDriver +# +#################################################################### + +def getDriver(): + return CDARRF.CDashAnalyzeReportRandomFailuresDriver( + ExampleVersionInfoStrategy(), + ExampleExtractBuildNameStrategy()) + +# +# Test getDateRangeTuple member function +# for how it constructs a tuple containing +# the begin and end of a date range. +# +class Test_GetDateRangeTuple(unittest.TestCase): + + def setUp(self): + self.driver = getDriver() + + def test_date_range_tuple(self): + referenceDateTime = datetime.datetime(year=2024, month=2, day=12) + dayTimeDelta = 3 + expected = ('2024-02-10', '2024-02-12') + + sideEffectList = ['2024-02-10', '2024-02-12'] + with mock.patch('cdash_build_testing_date.getDateStrFromDateTime', side_effect=sideEffectList) as m_getDateStrFromDateTime: + result = self.driver.getDateRangeTuple(referenceDateTime, dayTimeDelta) + + self.assertEqual(result, expected) + + +# +# Test getBuildIDFromTest() member function +# to check if it can get correctly get the last value of +# a slash delimited string +# +class Test_GetBuildIdFromTest(unittest.TestCase): + + def setUp(self): + self.driver = getDriver() + + def test_single_slash(self): + testDict = {'buildSummaryLink':'build/somenumber'} + self.assertEqual( + self.driver.getBuildIdFromTest(testDict), 'somenumber') + + def test_multiple_slash(self): + testDict = {'buildSummaryLink':'build/two/somenumber'} + self.assertEqual( + self.driver.getBuildIdFromTest(testDict), 'somenumber') + + def test_no_slash(self): + testDict = {'buildSummaryLink':'somenumber'} + self.assertEqual( + self.driver.getBuildIdFromTest(testDict), 'somenumber') + +if __name__ == '__main__': + unittest.main() diff --git a/test/ci_support/CDashQueryAnalyzeReport_UnitTests.py b/test/ci_support/CDashQueryAnalyzeReport_UnitTests.py index 513534c39..f120841c5 100644 --- a/test/ci_support/CDashQueryAnalyzeReport_UnitTests.py +++ b/test/ci_support/CDashQueryAnalyzeReport_UnitTests.py @@ -1070,6 +1070,20 @@ def test_getCDashQueryTestsBrowserUrl_project_name_ampersand(self): "&filtercount=1&morestuff" self.assertEqual(cdashIndexQueryUrl, cdashIndexQueryUrl_expected) + def test_getCDashBuildSummaryBrowserUrl(self): + cdashBuildSummaryBrowserUrl = getCDashBuildSummaryBrowserUrl( + "site.com/cdash", "somenumber" ) + cdashBuildSummaryBrowserUrl_expected = \ + "site.com/cdash/build/somenumber" + self.assertEqual(cdashBuildSummaryBrowserUrl, cdashBuildSummaryBrowserUrl_expected) + + def test_getCDashBuildSummaryQueryUrl(self): + cdashBuildSummaryQueryUrl = getCDashBuildSummaryQueryUrl( + "site.com/cdash", "somenumber" ) + cdashBuildSummaryQueryUrl_expected = \ + "site.com/cdash/api/v1/buildSummary.php?buildid=somenumber" + self.assertEqual(cdashBuildSummaryQueryUrl, cdashBuildSummaryQueryUrl_expected) + ############################################################################# # diff --git a/test/ci_support/CMakeLists.txt b/test/ci_support/CMakeLists.txt index c44a40168..1c0207b65 100644 --- a/test/ci_support/CMakeLists.txt +++ b/test/ci_support/CMakeLists.txt @@ -398,6 +398,24 @@ tribits_add_advanced_test( cdash_analyze_and_report_UnitTests ALWAYS_FAIL_ON_NONZERO_RETURN ) +tribits_add_advanced_test( CDashAnalyzeReportRandomFailures_UnitTests + OVERALL_WORKING_DIRECTORY TEST_NAME + OVERALL_NUM_MPI_PROCS 1 + TEST_0 CMND ${PYTHON_EXECUTABLE} + ARGS ${CMAKE_CURRENT_SOURCE_DIR}/CDashAnalyzeReportRandomFailures_UnitTests.py -v + PASS_REGULAR_EXPRESSION "OK" + ALWAYS_FAIL_ON_NONZERO_RETURN + ) + +tribits_add_advanced_test( cdash_analyze_and_report_random_failures_UnitTests + OVERALL_WORKING_DIRECTORY TEST_NAME + OVERALL_NUM_MPI_PROCS 1 + TEST_0 CMND ${PYTHON_EXECUTABLE} + ARGS ${CMAKE_CURRENT_SOURCE_DIR}/cdash_analyze_and_report_random_failures_UnitTests.py -v + PASS_REGULAR_EXPRESSION "OK" + ALWAYS_FAIL_ON_NONZERO_RETURN + ) + tribits_add_advanced_test( CreateIssueTrackerFromCDashQuery_UnitTests OVERALL_WORKING_DIRECTORY TEST_NAME OVERALL_NUM_MPI_PROCS 1 diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/1 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/1 new file mode 100644 index 000000000..ac5d913ed --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/1 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs1_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs1_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/2 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/2 new file mode 100644 index 000000000..b415ffb51 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/2 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs2_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs2_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/3 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/3 new file mode 100644 index 000000000..b95f27937 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/3 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs3_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs3_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/4 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/4 new file mode 100644 index 000000000..060412cf4 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/4 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs4_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs4_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/5 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/5 new file mode 100644 index 000000000..3fdba9468 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/5 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs5_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs5_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/1 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/1 new file mode 100644 index 000000000..ac5d913ed --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/1 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs1_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs1_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/2 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/2 new file mode 100644 index 000000000..b415ffb51 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/2 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs2_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs2_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/3 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/3 new file mode 100644 index 000000000..b95f27937 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/3 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs3_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs3_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/initialCDashNonPassingTests_2018-10-26_2018-10-28.json b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/initialCDashNonPassingTests_2018-10-26_2018-10-28.json new file mode 100644 index 000000000..e8eeac36b --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/initialCDashNonPassingTests_2018-10-26_2018-10-28.json @@ -0,0 +1,89 @@ +{ u'bugtracker': u'https://github.com/trilinos/Trilinos/issues', + u'builds': [ { u'buildName': u'buildname1', + u'buildSummaryLink': u'buildSummary.php?buildid=1323424', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1323424', + u'testname': u'testname1', + u'time': 10.72}, + { u'buildName': u'buildname2', + u'buildSummaryLink': u'buildSummary.php?buildid=1323424', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1323424', + u'testname': u'testname2', + u'time': 10.72}], + u'date': u'2018-10-28', + u'datetime': u'Wednesday, October 31 2018 19:42:20', + u'documentation': u'http://trilinos.org', + u'feed_enabled': False, + u'filterdata': { u'colorblind': 0, + u'debug': 0, + u'filtercombine': u'and', + u'filters': [ { u'compare': 61, + u'field': u'groupname', + u'value': u'Specialized'}, + { u'compare': 65, + u'field': u'buildname', + u'value': u'Trilinos-atdm-'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-white-ride-cuda-9.2-debug-pt'}, + { u'compare': 62, + u'field': u'site', + u'value': u'ride'}, + { u'compare': 62, + u'field': u'status', + u'value': u'passed'}], + u'hasdateclause': 0, + u'limit': 0, + u'pageId': u'queryTests.php', + u'pageSpecificFilters': { u'TextConcat': u"GROUP_CONCAT(text SEPARATOR ', ')"}, + u'showfilters': 1, + u'showlimit': 1, + u'sql': u"AND (bg.name = 'Specialized' AND b.name LIKE 'Trilinos-atdm-%' AND b.name != 'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial' AND b.name != 'Trilinos-atdm-white-ride-cuda-9.2-debug-pt' AND site.name != 'ride' AND build2test.status != 'passed')"}, + u'filterurl': u'', + u'footer': u'views/partials/footer.html', + u'generationtime': 0.969, + u'googletracker': u'', + u'hasprocessors': True, + u'header': u'views/partials/header.html', + u'home': u'http://trilinos.org', + u'logoid': 1, + u'menu': { u'back': u'index.php?project=Trilinos&date=2018-10-28', + u'current': u'queryTests.php?project=Trilinos&limit=0', + u'next': u'queryTests.php?project=Trilinos&date=2018-10-29&limit=0', + u'previous': u'queryTests.php?project=Trilinos&date=2018-10-27&limit=0'}, + u'nextdate': u'2018-10-29', + u'previousdate': u'2018-10-27', + u'project': { u'showtesttime': 0}, + u'projectid': 1, + u'projectname': u'Trilinos', + u'projectname_encoded': u'Trilinos', + u'public': 1, + u'showcalendar': 1, + u'startdate': u'Sunday, October 28 2018 04:01:00', + u'title': u'CDash : Trilinos', + u'unixtimestamp': 1540699260, + u'user': { u'id': 0}, + u'vcs': u'http://github.com/trilinos/Trilinos', + u'version': None} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/test_history_cache/testname1_buildname1.json b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/test_history_cache/testname1_buildname1.json new file mode 100644 index 000000000..09b5099ab --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/test_history_cache/testname1_buildname1.json @@ -0,0 +1,140 @@ +{ u'bugtracker': u'https://github.com/trilinos/Trilinos/issues', + u'builds': [ { u'buildName': u'build1', + u'buildSummaryLink': u'build/1', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Passed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1', + u'testname': u'testname1', + u'time': 10.72 + }, + { u'buildName': u'build1', + u'buildSummaryLink': u'build/2', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=2', + u'testname': u'testname1', + u'time': 10.72 + }, + { u'buildName': u'build1', + u'buildSummaryLink': u'build/3', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=3', + u'testname': u'testname1', + u'time': 10.72 + }, + { u'buildName': u'build1', + u'buildSummaryLink': u'build/4', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Passed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=4', + u'testname': u'testname1', + u'time': 10.72 + }, + { u'buildName': u'build1', + u'buildSummaryLink': u'build/5', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Passed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=5', + u'testname': u'testname1', + u'time': 10.72 + } + ], + u'date': u'2018-10-28', + u'datetime': u'Wednesday, October 31 2018 19:42:20', + u'documentation': u'http://trilinos.org', + u'feed_enabled': False, + u'filterdata': { u'colorblind': 0, + u'debug': 0, + u'filtercombine': u'and', + u'filters': [ { u'compare': 61, + u'field': u'groupname', + u'value': u'Specialized'}, + { u'compare': 65, + u'field': u'buildname', + u'value': u'Trilinos-atdm-'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-white-ride-cuda-9.2-debug-pt'}, + { u'compare': 62, + u'field': u'site', + u'value': u'ride'}, + { u'compare': 62, + u'field': u'status', + u'value': u'passed'}], + u'hasdateclause': 0, + u'limit': 0, + u'pageId': u'queryTests.php', + u'pageSpecificFilters': { u'TextConcat': u"GROUP_CONCAT(text SEPARATOR ', ')"}, + u'showfilters': 1, + u'showlimit': 1, + u'sql': u"AND (bg.name = 'Specialized' AND b.name LIKE 'Trilinos-atdm-%' AND b.name != 'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial' AND b.name != 'Trilinos-atdm-white-ride-cuda-9.2-debug-pt' AND site.name != 'ride' AND build2test.status != 'passed')"}, + u'filterurl': u'', + u'footer': u'views/partials/footer.html', + u'generationtime': 0.969, + u'googletracker': u'', + u'hasprocessors': True, + u'header': u'views/partials/header.html', + u'home': u'http://trilinos.org', + u'logoid': 1, + u'menu': { u'back': u'index.php?project=Trilinos&date=2018-10-28', + u'current': u'queryTests.php?project=Trilinos&limit=0', + u'next': u'queryTests.php?project=Trilinos&date=2018-10-29&limit=0', + u'previous': u'queryTests.php?project=Trilinos&date=2018-10-27&limit=0'}, + u'nextdate': u'2018-10-29', + u'previousdate': u'2018-10-27', + u'project': { u'showtesttime': 0}, + u'projectid': 1, + u'projectname': u'Trilinos', + u'projectname_encoded': u'Trilinos', + u'public': 1, + u'showcalendar': 1, + u'startdate': u'Sunday, October 28 2018 04:01:00', + u'title': u'CDash : Trilinos', + u'unixtimestamp': 1540699260, + u'user': { u'id': 0}, + u'vcs': u'http://github.com/trilinos/Trilinos', + u'version': None} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/test_history_cache/testname2_buildname2.json b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/test_history_cache/testname2_buildname2.json new file mode 100644 index 000000000..25a33686d --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_0_ift_2/test_queries_cache/test_history_cache/testname2_buildname2.json @@ -0,0 +1,108 @@ +{ u'bugtracker': u'https://github.com/trilinos/Trilinos/issues', + u'builds': [ { u'buildName': u'build2', + u'buildSummaryLink': u'build/1', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Passed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1', + u'testname': u'testname2', + u'time': 10.72 + }, + { u'buildName': u'build2', + u'buildSummaryLink': u'build/2', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=2', + u'testname': u'testname2', + u'time': 10.72 + }, + { u'buildName': u'build2', + u'buildSummaryLink': u'build/3', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=3', + u'testname': u'testname2', + u'time': 10.72 + } + ], + u'date': u'2018-10-26', + u'datetime': u'Wednesday, October 31 2018 19:42:20', + u'documentation': u'http://trilinos.org', + u'feed_enabled': False, + u'filterdata': { u'colorblind': 0, + u'debug': 0, + u'filtercombine': u'and', + u'filters': [ { u'compare': 61, + u'field': u'groupname', + u'value': u'Specialized'}, + { u'compare': 65, + u'field': u'buildname', + u'value': u'Trilinos-atdm-'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-white-ride-cuda-9.2-debug-pt'}, + { u'compare': 62, + u'field': u'site', + u'value': u'ride'}, + { u'compare': 62, + u'field': u'status', + u'value': u'passed'}], + u'hasdateclause': 0, + u'limit': 0, + u'pageId': u'queryTests.php', + u'pageSpecificFilters': { u'TextConcat': u"GROUP_CONCAT(text SEPARATOR ', ')"}, + u'showfilters': 1, + u'showlimit': 1, + u'sql': u"AND (bg.name = 'Specialized' AND b.name LIKE 'Trilinos-atdm-%' AND b.name != 'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial' AND b.name != 'Trilinos-atdm-white-ride-cuda-9.2-debug-pt' AND site.name != 'ride' AND build2test.status != 'passed')"}, + u'filterurl': u'', + u'footer': u'views/partials/footer.html', + u'generationtime': 0.969, + u'googletracker': u'', + u'hasprocessors': True, + u'header': u'views/partials/header.html', + u'home': u'http://trilinos.org', + u'logoid': 1, + u'menu': { u'back': u'index.php?project=Trilinos&date=2018-10-28', + u'current': u'queryTests.php?project=Trilinos&limit=0', + u'next': u'queryTests.php?project=Trilinos&date=2018-10-29&limit=0', + u'previous': u'queryTests.php?project=Trilinos&date=2018-10-27&limit=0'}, + u'nextdate': u'2018-10-29', + u'previousdate': u'2018-10-27', + u'project': { u'showtesttime': 0}, + u'projectid': 1, + u'projectname': u'Trilinos', + u'projectname_encoded': u'Trilinos', + u'public': 1, + u'showcalendar': 1, + u'startdate': u'Sunday, October 28 2018 04:01:00', + u'title': u'CDash : Trilinos', + u'unixtimestamp': 1540699260, + u'user': { u'id': 0}, + u'vcs': u'http://github.com/trilinos/Trilinos', + u'version': None} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/1 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/1 new file mode 100644 index 000000000..49d2641d8 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/1 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' 592ea0d5 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' b07e361c [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/2 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/2 new file mode 100644 index 000000000..49d2641d8 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname1_buildname1/2 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' 592ea0d5 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' b07e361c [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/1 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/1 new file mode 100644 index 000000000..ac5d913ed --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/1 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs1_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs1_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/2 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/2 new file mode 100644 index 000000000..b415ffb51 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/2 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs2_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs2_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/3 b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/3 new file mode 100644 index 000000000..b95f27937 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/build_summary_cache/testname2_buildname2/3 @@ -0,0 +1,97 @@ +{ 'bugtracker': 'GitHub', + 'build': { 'command': 'build command', + 'compilername': '', + 'compilerversion': '', + 'endtime': '2023-12-20T16:59:05 MST', + 'error': 0, + 'errors': [], + 'generator': 'ctest-3.24.3', + 'id': 1323424, + 'lastsubmitbuild': 0, + 'lastsubmitdate': 0, + 'name': 'PR-12620-test-rhel7_sems-gnu-8.3.0-openmpi-1.10.1-serial_debug_shared_no-kokkos-arch_no-asan_no-complex_no-fpic_mpi_no-pt_no-rdc_no-uvm_deprecated-on_no-package-enables-1957', + 'nerrors': 0, + 'note': 0, + 'nwarnings': 0, + 'osname': 'Linux', + 'osplatform': 'x86_64', + 'osrelease': '3.10.0-1062.1.2.el7.x86_64', + 'osversion': '#1 SMP Mon Sep 16 14:19:51 EDT 2019', + 'site': 'site1', + 'siteid': 49, + 'sitename_encoded': 'site1', + 'stamp': '20231220-2248-Pull Request', + 'starttime': '2023-12-20T15:48:14 MST', + 'time': '2023-12-20T15:48:14 MST', + 'type': 'Pull Request', + 'warnings': []}, + 'configure': { 'command': 'configure command here', + 'endtime': '2023-12-20T15:50:06 MST', + 'nerrors': 0, + 'nwarnings': 0, + 'output': 'loading initial cache file \n' + 'Trilinos repos versions:\n' + '--------------------------------------------------------------------------------\n' + '*** Base Git Repo: Trilinos\n' + 'dc6cb45 [Thu Dec 21 07:49:49 2023 -0700] ' + '\n' + 'Merge commit ' + "'71d07d7370583c071c3e0fa98cb00b4794be6cb2' into " + 'develop\n' + ' *** Parent 1:\n' + ' bs3_p1 [Mon Jan 15 22:26:29 2024 -0700] \n' + ' Cleaned up git log and cmake command argument formatting (#597)\n' + ' *** Parent 2:\n' + ' bs3_p2 [Wed Jan 17 12:33:03 2024 -0700] \n' + ' Cleaned up empty lines (#597)\n' + ' ' + '--------------------------------------------------------------------------------\n' + '\n' + '\n', + 'starttime': '2023-12-20T15:48:14 MST', + 'status': 0}, + 'currentdate': '2024-01-23', + 'date': '2023-12-20', + 'datetime': 'Tuesday, January 23 2024 16:00:15', + 'documentation': 'https://trilinos.github.io/documentation.html', + 'generationtime': 0.05, + 'googletracker': '', + 'hasconfigure': True, + 'hascoverage': False, + 'hasrelationships': False, + 'hasupdate': True, + 'home': 'https://trilinos.github.io/', + 'logoid': 1, + 'menu': { 'back': 'index.php?project=Trilinos&parentid=1323325', + 'current': '/build/0', + 'next': False, + 'previous': False}, + 'newissueurl': False, + 'nextdate': '2023-12-21', + 'nightlytime': '22:00 MST', + 'notes': [], + 'previousdate': '2023-12-19', + 'projectid': 1, + 'projectname': 'Trilinos', + 'projectname_encoded': 'Trilinos', + 'public': 1, + 'relationships_from': [], + 'relationships_to': [], + 'startdate': 'Tuesday, December 19 2023 22:00:00', + 'test': { 'nerrors': 0, + 'nfailed': 0, + 'nnotrun': 0, + 'npassed': 178, + 'nwarnings': 0}, + 'title': 'CDash : Trilinos', + 'unixtimestamp': 1703048400, + 'update': { 'command': '', + 'endtime': '2023-12-20T15:48:14 MST', + 'nerrors': 0, + 'nupdates': 0, + 'nwarnings': 0, + 'starttime': '2023-12-20T15:48:14 MST', + 'type': 'GIT'}, + 'user': {'id': None}, + 'vcs': 'https://github.com/trilinos/Trilinos/', + 'version': 'v3.1.0'} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/initialCDashNonPassingTests_2018-10-26_2018-10-28.json b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/initialCDashNonPassingTests_2018-10-26_2018-10-28.json new file mode 100644 index 000000000..e8eeac36b --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/initialCDashNonPassingTests_2018-10-26_2018-10-28.json @@ -0,0 +1,89 @@ +{ u'bugtracker': u'https://github.com/trilinos/Trilinos/issues', + u'builds': [ { u'buildName': u'buildname1', + u'buildSummaryLink': u'buildSummary.php?buildid=1323424', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1323424', + u'testname': u'testname1', + u'time': 10.72}, + { u'buildName': u'buildname2', + u'buildSummaryLink': u'buildSummary.php?buildid=1323424', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1323424', + u'testname': u'testname2', + u'time': 10.72}], + u'date': u'2018-10-28', + u'datetime': u'Wednesday, October 31 2018 19:42:20', + u'documentation': u'http://trilinos.org', + u'feed_enabled': False, + u'filterdata': { u'colorblind': 0, + u'debug': 0, + u'filtercombine': u'and', + u'filters': [ { u'compare': 61, + u'field': u'groupname', + u'value': u'Specialized'}, + { u'compare': 65, + u'field': u'buildname', + u'value': u'Trilinos-atdm-'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-white-ride-cuda-9.2-debug-pt'}, + { u'compare': 62, + u'field': u'site', + u'value': u'ride'}, + { u'compare': 62, + u'field': u'status', + u'value': u'passed'}], + u'hasdateclause': 0, + u'limit': 0, + u'pageId': u'queryTests.php', + u'pageSpecificFilters': { u'TextConcat': u"GROUP_CONCAT(text SEPARATOR ', ')"}, + u'showfilters': 1, + u'showlimit': 1, + u'sql': u"AND (bg.name = 'Specialized' AND b.name LIKE 'Trilinos-atdm-%' AND b.name != 'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial' AND b.name != 'Trilinos-atdm-white-ride-cuda-9.2-debug-pt' AND site.name != 'ride' AND build2test.status != 'passed')"}, + u'filterurl': u'', + u'footer': u'views/partials/footer.html', + u'generationtime': 0.969, + u'googletracker': u'', + u'hasprocessors': True, + u'header': u'views/partials/header.html', + u'home': u'http://trilinos.org', + u'logoid': 1, + u'menu': { u'back': u'index.php?project=Trilinos&date=2018-10-28', + u'current': u'queryTests.php?project=Trilinos&limit=0', + u'next': u'queryTests.php?project=Trilinos&date=2018-10-29&limit=0', + u'previous': u'queryTests.php?project=Trilinos&date=2018-10-27&limit=0'}, + u'nextdate': u'2018-10-29', + u'previousdate': u'2018-10-27', + u'project': { u'showtesttime': 0}, + u'projectid': 1, + u'projectname': u'Trilinos', + u'projectname_encoded': u'Trilinos', + u'public': 1, + u'showcalendar': 1, + u'startdate': u'Sunday, October 28 2018 04:01:00', + u'title': u'CDash : Trilinos', + u'unixtimestamp': 1540699260, + u'user': { u'id': 0}, + u'vcs': u'http://github.com/trilinos/Trilinos', + u'version': None} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/test_history_cache/testname1_buildname1.json b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/test_history_cache/testname1_buildname1.json new file mode 100644 index 000000000..7b2cd50a5 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/test_history_cache/testname1_buildname1.json @@ -0,0 +1,92 @@ +{ u'bugtracker': u'https://github.com/trilinos/Trilinos/issues', + u'builds': [ { u'buildName': u'build1', + u'buildSummaryLink': u'build/1', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Passed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1', + u'testname': u'testname1', + u'time': 10.72 + }, + { u'buildName': u'build1', + u'buildSummaryLink': u'build/2', + u'buildstarttime': u'2018-10-28T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=2', + u'testname': u'testname1', + u'time': 10.72 + } + ], + u'date': u'2018-10-28', + u'datetime': u'Wednesday, October 31 2018 19:42:20', + u'documentation': u'http://trilinos.org', + u'feed_enabled': False, + u'filterdata': { u'colorblind': 0, + u'debug': 0, + u'filtercombine': u'and', + u'filters': [ { u'compare': 61, + u'field': u'groupname', + u'value': u'Specialized'}, + { u'compare': 65, + u'field': u'buildname', + u'value': u'Trilinos-atdm-'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-white-ride-cuda-9.2-debug-pt'}, + { u'compare': 62, + u'field': u'site', + u'value': u'ride'}, + { u'compare': 62, + u'field': u'status', + u'value': u'passed'}], + u'hasdateclause': 0, + u'limit': 0, + u'pageId': u'queryTests.php', + u'pageSpecificFilters': { u'TextConcat': u"GROUP_CONCAT(text SEPARATOR ', ')"}, + u'showfilters': 1, + u'showlimit': 1, + u'sql': u"AND (bg.name = 'Specialized' AND b.name LIKE 'Trilinos-atdm-%' AND b.name != 'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial' AND b.name != 'Trilinos-atdm-white-ride-cuda-9.2-debug-pt' AND site.name != 'ride' AND build2test.status != 'passed')"}, + u'filterurl': u'', + u'footer': u'views/partials/footer.html', + u'generationtime': 0.969, + u'googletracker': u'', + u'hasprocessors': True, + u'header': u'views/partials/header.html', + u'home': u'http://trilinos.org', + u'logoid': 1, + u'menu': { u'back': u'index.php?project=Trilinos&date=2018-10-28', + u'current': u'queryTests.php?project=Trilinos&limit=0', + u'next': u'queryTests.php?project=Trilinos&date=2018-10-29&limit=0', + u'previous': u'queryTests.php?project=Trilinos&date=2018-10-27&limit=0'}, + u'nextdate': u'2018-10-29', + u'previousdate': u'2018-10-27', + u'project': { u'showtesttime': 0}, + u'projectid': 1, + u'projectname': u'Trilinos', + u'projectname_encoded': u'Trilinos', + u'public': 1, + u'showcalendar': 1, + u'startdate': u'Sunday, October 28 2018 04:01:00', + u'title': u'CDash : Trilinos', + u'unixtimestamp': 1540699260, + u'user': { u'id': 0}, + u'vcs': u'http://github.com/trilinos/Trilinos', + u'version': None} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/test_history_cache/testname2_buildname2.json b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/test_history_cache/testname2_buildname2.json new file mode 100644 index 000000000..25a33686d --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures/rft_1_ift_2/test_queries_cache/test_history_cache/testname2_buildname2.json @@ -0,0 +1,108 @@ +{ u'bugtracker': u'https://github.com/trilinos/Trilinos/issues', + u'builds': [ { u'buildName': u'build2', + u'buildSummaryLink': u'build/1', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Passed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=1', + u'testname': u'testname2', + u'time': 10.72 + }, + { u'buildName': u'build2', + u'buildSummaryLink': u'build/2', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=2', + u'testname': u'testname2', + u'time': 10.72 + }, + { u'buildName': u'build2', + u'buildSummaryLink': u'build/3', + u'buildstarttime': u'2018-10-26T05:56:22 UTC', + u'details': u'Completed (Failed)\n', + u'nprocs': 4, + u'prettyProcTime': u'42s 880ms', + u'prettyTime': u'10s 720ms', + u'procTime': 42.88, + u'site': u'mutrino', + u'siteLink': u'viewSite.php?siteid=223', + u'status': u'Failed', + u'statusclass': u'error', + u'testDetailsLink': u'testDetails.php?test=57860629&build=3', + u'testname': u'testname2', + u'time': 10.72 + } + ], + u'date': u'2018-10-26', + u'datetime': u'Wednesday, October 31 2018 19:42:20', + u'documentation': u'http://trilinos.org', + u'feed_enabled': False, + u'filterdata': { u'colorblind': 0, + u'debug': 0, + u'filtercombine': u'and', + u'filters': [ { u'compare': 61, + u'field': u'groupname', + u'value': u'Specialized'}, + { u'compare': 65, + u'field': u'buildname', + u'value': u'Trilinos-atdm-'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial'}, + { u'compare': 62, + u'field': u'buildname', + u'value': u'Trilinos-atdm-white-ride-cuda-9.2-debug-pt'}, + { u'compare': 62, + u'field': u'site', + u'value': u'ride'}, + { u'compare': 62, + u'field': u'status', + u'value': u'passed'}], + u'hasdateclause': 0, + u'limit': 0, + u'pageId': u'queryTests.php', + u'pageSpecificFilters': { u'TextConcat': u"GROUP_CONCAT(text SEPARATOR ', ')"}, + u'showfilters': 1, + u'showlimit': 1, + u'sql': u"AND (bg.name = 'Specialized' AND b.name LIKE 'Trilinos-atdm-%' AND b.name != 'Trilinos-atdm-cee-rhel6-gnu-7.2.0-opt-serial' AND b.name != 'Trilinos-atdm-white-ride-cuda-9.2-debug-pt' AND site.name != 'ride' AND build2test.status != 'passed')"}, + u'filterurl': u'', + u'footer': u'views/partials/footer.html', + u'generationtime': 0.969, + u'googletracker': u'', + u'hasprocessors': True, + u'header': u'views/partials/header.html', + u'home': u'http://trilinos.org', + u'logoid': 1, + u'menu': { u'back': u'index.php?project=Trilinos&date=2018-10-28', + u'current': u'queryTests.php?project=Trilinos&limit=0', + u'next': u'queryTests.php?project=Trilinos&date=2018-10-29&limit=0', + u'previous': u'queryTests.php?project=Trilinos&date=2018-10-27&limit=0'}, + u'nextdate': u'2018-10-29', + u'previousdate': u'2018-10-27', + u'project': { u'showtesttime': 0}, + u'projectid': 1, + u'projectname': u'Trilinos', + u'projectname_encoded': u'Trilinos', + u'public': 1, + u'showcalendar': 1, + u'startdate': u'Sunday, October 28 2018 04:01:00', + u'title': u'CDash : Trilinos', + u'unixtimestamp': 1540699260, + u'user': { u'id': 0}, + u'vcs': u'http://github.com/trilinos/Trilinos', + u'version': None} diff --git a/test/ci_support/cdash_analyze_and_report_random_failures_UnitTests.py b/test/ci_support/cdash_analyze_and_report_random_failures_UnitTests.py new file mode 100644 index 000000000..1bff74833 --- /dev/null +++ b/test/ci_support/cdash_analyze_and_report_random_failures_UnitTests.py @@ -0,0 +1,269 @@ +# @HEADER +# ************************************************************************ +# +# TriBTS: Tribal Build, Integrate, and Test System +# Copyright 2013 Sandia Corporation +# +# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, +# the U.S. Government retains certain rights in this software. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# 3. Neither the name of the Corporation nor the names of the +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# ************************************************************************ +# @HEADER + +import os +import shutil +import unittest +import stat +import tempfile + +from FindCISupportDir import * +import CDashQueryAnalyzeReport as CDQAR +from CDashQueryAnalyzeReportUnitTestHelpers import * + +# Base test directory in the build tree +g_baseTestDir = "cdash_analyze_and_report_random_failures" + + +def cdash_analyze_and_report_random_failures_setup_test_dir(testCaseName): + testInputDir = testCiSupportDir + "/" + g_baseTestDir + "/" + testCaseName + testOutputDir = os.getcwd() + for f in os.listdir(testInputDir): + thing = os.path.join(testInputDir, f) + if os.path.isdir(thing): + shutil.copytree(thing, os.path.join(testOutputDir, f)) + else: + shutil.copy(thing, testOutputDir) + return testOutputDir + + +def remove_dirs(dirname): + walk_gen = os.walk(dirname, topdown=False) + for dirpath, dirnames, filenames in walk_gen: + os.chmod(dirpath, stat.S_IRWXU) + shutil.rmtree(dirname) + + +def create_file(fpath, perms=0o600, content=""): + path = os.path.split(fpath)[0] + if path and not path == "." and not os.path.isdir(path): + os.makedirs(path) + with open(fpath, "w+") as fptr: + fptr.write(content) + os.chmod(fpath, perms) + return os.path.abspath(fpath) + + +class TemporaryDirectory(object): + def __init__(self, **kwargs): + self.orig_dir = os.getcwd() + self.name = tempfile.mkdtemp( + suffix=kwargs.get("suffix", ""), + prefix=kwargs.get("prefix", "tmp"), + dir=kwargs.get("dir", None), + ) + + def remove(self): + os.chdir(self.orig_dir) + if os.path.exists(self.name): + remove_dirs(self.name) + + def __enter__(self): + os.chdir(self.name) + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.remove() + + +############################################################################# +# +# System-level tests for cdash_analyze_and_report_random_failures.py +# +############################################################################# + + +class test_cdash_analyze_and_report_random_failures(unittest.TestCase): + def cdash_analyze_and_report_random_failures_run_case( + self, + expectedRtnCode, + stdoutRegexList, + htmlFileRegexList, + extraCmndLineOptionsList=None, + verbose=False, + debugPrint=False, + ): + if not extraCmndLineOptionsList: + extraCmndLineOptionsList = [] + + htmlFileName = "htmlFile.html" + htmlFileAbsPath = os.getcwd()+"/"+htmlFileName + + cmnd = ( + testCiSupportDir + + "/example_cdash_analyze_and_report_random_failures.py" + + " --cdash-project-name='Project Name'" + + " --cdash-testing-day-start-time='00:00'" + + " --group-name='Group Name'" + + " --initial-nonpassing-test-filters='initial_nonpassing_test_filters'" + + " --cdash-site-url='https://something.com/cdash'" + + " --reference-date=2018-10-28" + + " --write-email-to-file="+htmlFileName + + " " + + " ".join(extraCmndLineOptionsList) + ) + + stdoutFile = "stdout.out" + stdoutFileAbsPath = os.getcwd() + "/" + stdoutFile + rtnCode = CDQAR.echoRunSysCmnd( + cmnd, throwExcept=False, outFile=stdoutFile, verbose=verbose + ) + + stdout = "" + try: + with open(stdoutFile, "r") as inf: + stdout = inf.read() + except Exception: + print("WARNING: No stdout available from this test") + + # UNCOMMENT THIS TO SEE OUTPUT FROM THE SCRIPT (Can use the test to help develop) + # print(stdout) + + self.assertEqual(rtnCode, expectedRtnCode, "Failed with stdout: " + stdout) + + # Grep stdout for expected list of strings + assertListOfRegexsFoundInListOfStrs(self, stdoutRegexList, + stdout.splitlines(), stdoutFileAbsPath, debugPrint=debugPrint) + + # Grep written HTML file for expected strings + try: + with open(htmlFileName, 'r') as htmlFile: + htmlFileStrList = htmlFile.read().split("\n") + except Exception: + print("WARNING: HTML file not available for this test: "+htmlFileAbsPath) + + assertListOfRegexsFoundInListOfStrs(self, htmlFileRegexList, + htmlFileStrList, htmlFileAbsPath, debugPrint=debugPrint) + + + def setUp(self): + self.test_dir = TemporaryDirectory() + os.chdir(self.test_dir.name) + + def tearDown(self): + self.test_dir.remove() + + + # Test the random failure case starting from two initial failing tests (ift) + # in which one of the initial failing test contains a history of two tests + # with the same sha1 pair, but one is a passing case and the other nonpassing. + # + def test_random_failure(self): + + testCaseName = "rft_1_ift_2" + cdash_analyze_and_report_random_failures_setup_test_dir(testCaseName) + + self.cdash_analyze_and_report_random_failures_run_case( + expectedRtnCode=0, + stdoutRegexList=[ + "[*][*][*] CDash random failure analysis for Project Name Group Name from 2018-10-26 to 2018-10-28", + "Total number of initial failing tests: 2", + + "Found random failing tests: 1", + "Test name: testname1", + "Build name: build1", + "Identical sha1 pairs: \(\'592ea0d5\', \'b07e361c\'\)", + "Test history browser URL:", + " https://something[.]com/cdash/queryTests[.]php[?]project=Project%20Name&begin=2018-10-26&end=2018-10-28&filtercount=3&showfilters=1&filtercombine=and&field1=testname&compare1=63&value1=testname1&field2=groupname&compare2=63&value2=Group%20Name&field3=buildname&compare3=63&value3=buildname1", + + "FAILED \(rft=1, ift=2\): Project Name Group Name on 2018-10-26 to 2018-10-28" + ], + htmlFileRegexList=[ + "

FAILED \(rft=1, ift=2\): Project Name Group Name on 2018-10-26 to 2018-10-28

", + + "

Random test failure scan results for Project Name from 2018-10-26 to 2018-10-28

", + + "

", + "Nonpassing tests scanned on CDash=2
", + "", + "Found random failing tests: 1
", + "
Build name: build1", + "
Test name: testname1", + "
Test history URL: https://something[.]com/cdash/queryTests[.]php[?]project=Project%20Name&begin=2018-10-26&end=2018-10-28&filtercount=3&showfilters=1&filtercombine=and&field1=testname&compare1=63&value1=testname1&field2=groupname&compare2=63&value2=Group%20Name&field3=buildname&compare3=63&value3=buildname1", + "
Sha1 Pair : \('592ea0d5', 'b07e361c'\)", + "

" + ], + extraCmndLineOptionsList=[ + "--days-of-history=3" + ] + ) + + + # Test to no random failure case starting from two initial failing tests (ift). + # Each ift has a test history containing multiple tests with passing and nonpassing results, + # but non share the same sha1 pair. + # + def test_no_random_failure(self): + + testCaseName = "rft_0_ift_2" + cdash_analyze_and_report_random_failures_setup_test_dir(testCaseName) + + self.cdash_analyze_and_report_random_failures_run_case( + expectedRtnCode=0, + stdoutRegexList=[ + "[*][*][*] CDash random failure analysis for Project Name Group Name from 2018-10-26 to 2018-10-28", + "Total number of initial failing tests: 2", + + "Found random failing tests: 0", + + "PASSED \(rft=0, ift=2\): Project Name Group Name on 2018-10-26 to 2018-10-28" + ], + htmlFileRegexList=[ + "

PASSED \(rft=0, ift=2\): Project Name Group Name on 2018-10-26 to 2018-10-28

", + + "

Random test failure scan results for Project Name from 2018-10-26 to 2018-10-28

", + + "

", + "Nonpassing tests scanned on CDash=2
", + "

", + + "

", + "Found random failing tests: 0
", + "

" + ], + extraCmndLineOptionsList=[ + "--days-of-history=3" + ] + ) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/ci_support/example_cdash_analyze_and_report_random_failures.py b/test/ci_support/example_cdash_analyze_and_report_random_failures.py new file mode 100755 index 000000000..6c93f5dd0 --- /dev/null +++ b/test/ci_support/example_cdash_analyze_and_report_random_failures.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python + +import sys +import argparse +import re as regex + +from FindCISupportDir import * +import CDashAnalyzeReportRandomFailures as CDARRF + + +usageHelp = \ +r""" +Example usageHelp string +""" + + +def main(): + + cdashAnalyzeAndReportRandomFailures = \ + CDARRF.CDashAnalyzeReportRandomFailuresDriver( + ExampleVersionInfoStrategy(), + ExampleExtractBuildNameStrategy(), + usageHelp=usageHelp) + + cdashAnalyzeAndReportRandomFailures.runDriver() + + +class ExampleVersionInfoStrategy: + + def getTargetTopicSha1s(self, buildData): + pattern = r"Parent [12]:\n\s+(\w+)" + matchedList = regex.findall(pattern, buildData) + + if len(matchedList) != 2: return None + return tuple(matchedList) + + def checkTargetTopicRandomFailure(self, targetTopicPair, knownTargetTopicPairs): + return targetTopicPair in knownTargetTopicPairs + + +class ExampleExtractBuildNameStrategy: + + def getCoreBuildName(self, fullBuildName): + coreBuildName = fullBuildName.rsplit('-',1)[0] + return coreBuildName + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/tribits/ci_support/CDashAnalyzeReportRandomFailures.py b/tribits/ci_support/CDashAnalyzeReportRandomFailures.py new file mode 100644 index 000000000..4973bec16 --- /dev/null +++ b/tribits/ci_support/CDashAnalyzeReportRandomFailures.py @@ -0,0 +1,339 @@ + +import os +import argparse +import datetime + +from FindGeneralScriptSupport import * +import CDashQueryAnalyzeReport as CDQAR +import cdash_build_testing_date as CBTD + + +class CDashAnalyzeReportRandomFailuresDriver: + + def __init__(self, versionInfoStrategy, extractBuildNameStrategy, + usageHelp=""): + self.versionInfoStrategy = versionInfoStrategy + self.extractBuildNameStrategy = extractBuildNameStrategy + self.args = None + self.usageHelp = usageHelp + + def runDriver(self): + + self.getCmndLineArgs() + + cdashProjectTestingDayStartTime = self.args.cdash_testing_day_start_time + cdashSiteUrl = self.args.cdash_site_url + cdashProjectName = self.args.cdash_project_name + initialNonpassingTestFilters = self.args.initial_nonpassing_test_filters + date = self.args.reference_date + groupName = self.args.group_name + daysOfHistory = self.args.days_of_history + printUrlMode = self.args.print_url_mode + writeEmailToFile = self.args.write_email_to_file + sendEmailFrom = self.args.send_email_from + sendEmailTo = self.args.send_email_to + + randomFailureSummaries = [] + + # A.1) Set up date range and directories + + # Construct date range for queryTests filter string + referenceDateDT = CDQAR.convertInputDateArgToYYYYMMDD( + cdashProjectTestingDayStartTime, date) + dateRangeStart, dateRangeEnd = self.getDateRangeTuple(referenceDateDT, daysOfHistory) + dateUrlField = "begin="+dateRangeStart+"&end="+dateRangeEnd + dateRangeStr = dateRangeStart+" to "+dateRangeEnd + + testQueriesCacheDir = os.getcwd()+"/test_queries_cache" + testHistoryCacheDir = testQueriesCacheDir+"/test_history_cache" + createDirsFromPath(testQueriesCacheDir) + createDirsFromPath(testHistoryCacheDir) + + # Construct queryTest.php filter for a date range + initialNonpassingTestQueryFilters = \ + dateUrlField+"&"+initialNonpassingTestFilters + + # A.2) Create starting email body and html string aggregation var + + cdashReportData = CDQAR.CDashReportData() + + cdashReportData.htmlEmailBodyTop += \ + "

Random test failure scan results for "+cdashProjectName\ + +" from "+dateRangeStr+"

\n\n" + + + # B.1) Get all failing test result for past daysOfHistory + + # Beginning of scanned details and links paragraph + cdashReportData.htmlEmailBodyTop +="

\n" + + print("\nGetting list of initial nonpassing tests from CDash from "+dateRangeStr) + + initialNonpassingTestsQueryUrl = CDQAR.getCDashQueryTestsQueryUrl( + cdashSiteUrl, cdashProjectName, None, initialNonpassingTestQueryFilters) + initialNonpassingTestBrowserUrl = CDQAR.getCDashQueryTestsBrowserUrl( + cdashSiteUrl, cdashProjectName, None, initialNonpassingTestQueryFilters) + + if printUrlMode == 'initial' or printUrlMode == 'all': + print("\nCDash nonpassing tests browser URL:\n\n"+\ + " "+initialNonpassingTestBrowserUrl+"\n") + print("\nCDash nonpassing tests query URL:\n\n"+\ + " "+initialNonpassingTestsQueryUrl+"\n") + + initialNonpassingTestsQueryCacheFile = testQueriesCacheDir +\ + "/initialCDashNonPassingTests_"+dateRangeStart+"_"+dateRangeEnd+".json" + + # List of dictionaries containing the cdash results in rows + initialNonpassingTestsLOD = CDQAR.downloadTestsOffCDashQueryTestsAndFlatten( + initialNonpassingTestsQueryUrl, initialNonpassingTestsQueryCacheFile,\ + alwaysUseCacheFileIfExists=True) + + cdashReportData.htmlEmailBodyTop += \ + "" +\ + "Nonpassing tests scanned on CDash=" +\ + str(len(initialNonpassingTestsLOD))+"
\n" + + # Ending of scanned details and links paragraph + # and start of scanning summaries and table + cdashReportData.htmlEmailBodyTop +="

\n\n

\n" + + # B.2) Get each nonpassing test's testing history + for nonpassingTest in initialNonpassingTestsLOD: + + # Remove unique jenkins run ID from build name + correctedBuildName = self.extractBuildNameStrategy.getCoreBuildName(nonpassingTest['buildName']) + + testNameBuildName = nonpassingTest['testname']+"_"+nonpassingTest['buildName'] + testNameBuildName = CDQAR.getCompressedFileNameIfTooLong(testNameBuildName) + + print("\n Getting history from "+dateRangeStr+" for\n"+\ + " Test name: "+nonpassingTest['testname']+"\n"+\ + " Build name: "+correctedBuildName) + + groupNameNormUrl, = CDQAR.normalizeUrlStrings(groupName) + + testHistoryFilters = \ + "filtercount=3&showfilters=1&filtercombine=and"+\ + "&field1=testname&compare1=63&value1="+nonpassingTest['testname']+\ + "&field2=groupname&compare2=63&value2="+groupNameNormUrl+\ + "&field3=buildname&compare3=63&value3="+correctedBuildName + + testHistoryQueryFilters = dateUrlField+"&"+testHistoryFilters + + testHistoryCacheFile = testHistoryCacheDir+"/"+\ + CDQAR.getCompressedFileNameIfTooLong(testNameBuildName+".json", ext=".json") + + print("\n Creating file to write test history:\n "+testHistoryCacheFile) + + testHistoryQueryUrl = CDQAR.getCDashQueryTestsQueryUrl( + cdashSiteUrl, cdashProjectName, None, testHistoryQueryFilters) + testHistoryBrowserUrl = CDQAR.getCDashQueryTestsBrowserUrl( + cdashSiteUrl, cdashProjectName, None, testHistoryQueryFilters) + + testHistoryLOD = CDQAR.downloadTestsOffCDashQueryTestsAndFlatten( + testHistoryQueryUrl, testHistoryCacheFile, alwaysUseCacheFileIfExists=True) + + print("\n Size of test history: "+str(len(testHistoryLOD))) + + if printUrlMode == 'all': + print("\n CDash test history browser URL for "+nonpassingTest['testname']+" "+\ + correctedBuildName+":\n\n"+" "+testHistoryBrowserUrl) + print("\n CDash test history query URL for "+nonpassingTest['testname']+" "+\ + correctedBuildName+":\n\n"+" "+testHistoryQueryUrl) + + if len(testHistoryLOD) < 2: + print("\n Size of test history too small for any comparisons, skipping ...\n") + continue + + # B.3) Split full testing history to passed and nonpassed lists of dicts + passingTestHistoryLOD = [test for test in testHistoryLOD if test.get("status") == "Passed"] + nonpassingTestHistoryLOD = [test for test in testHistoryLOD if test.get("status") == "Failed"] + nonpassingSha1Pairs = set() + + print("\n Num of passing tests in test history: "+str(len(passingTestHistoryLOD))) + print("\n Num of nonpassing tests in test history: "+str(len(nonpassingTestHistoryLOD))) + + buildSummaryCacheDir = testQueriesCacheDir+"/build_summary_cache/"+testNameBuildName + createDirsFromPath(buildSummaryCacheDir) + # NOTE: There is an argument to be made that test histories should get their own directory + # instead of build summaries and that build summaries should live inside of there + + # C.1) Get all nonpassing tests' sha1s into a set + for test in nonpassingTestHistoryLOD: + + buildId = self.getBuildIdFromTest(test) + + buildSummaryCacheFile = buildSummaryCacheDir+"/"+buildId + buildSummaryQueryUrl = CDQAR.getCDashBuildSummaryQueryUrl(cdashSiteUrl, buildId) + buildConfigOutput = self.downloadBuildSummaryOffCDash( + buildSummaryQueryUrl, buildSummaryCacheFile, verbose=printUrlMode =='all', + alwaysUseCacheFileIfExists=True)['configure']['output'] + + nonpassingSha1Pairs.add( + self.versionInfoStrategy.getTargetTopicSha1s(buildConfigOutput)) + + print("\n Test history failing sha1s: "+str(nonpassingSha1Pairs)) + + # C.2) Check if passing tests' sha1s exist in nonpassing sha1s set + for test in passingTestHistoryLOD: + + buildId = self.getBuildIdFromTest(test) + + buildSummaryCacheFile = buildSummaryCacheDir+"/"+buildId + buildSummaryQueryUrl = CDQAR.getCDashBuildSummaryQueryUrl(cdashSiteUrl, buildId) + buildConfigOutput = self.downloadBuildSummaryOffCDash( + buildSummaryQueryUrl, buildSummaryCacheFile, verbose=printUrlMode =='all', + alwaysUseCacheFileIfExists=True)['configure']['output'] + + passingSha1Pair = \ + self.versionInfoStrategy.getTargetTopicSha1s(buildConfigOutput) + + if self.versionInfoStrategy.checkTargetTopicRandomFailure(passingSha1Pair, nonpassingSha1Pairs): + print("\n Found passing sha1 pair, " + str(passingSha1Pair)+\ + " in set of nonpassing sha1 pairs: \n"+str(nonpassingSha1Pairs)) + + randomFailureSummaries.append( + RandomFailureSummary(test['buildName'], test['testname'], + testHistoryBrowserUrl, passingSha1Pair)) + + + print("\n*** CDash random failure analysis for " +\ + cdashProjectName+" "+groupName+" from " +dateRangeStr) + + print("Total number of initial failing tests: "+str(len(initialNonpassingTestsLOD))+"\n") + + print("Found random failing tests: "+str(len(randomFailureSummaries))+"\n") + + cdashReportData.htmlEmailBodyTop += \ + "Found random failing tests: "+str(len(randomFailureSummaries))+"
\n" + + if len(randomFailureSummaries) > 0: + cdashReportData.globalPass = False + + # Add number of random failing tests 'rft' found to summary data list + cdashReportData.summaryLineDataNumbersList.append( + "rft="+str(len(randomFailureSummaries))) + + # Add number of initial failing tests 'ift' scanned to summary + # data list + cdashReportData.summaryLineDataNumbersList.append( + "ift="+str(len(initialNonpassingTestsLOD))) + + for summary in randomFailureSummaries: + print(str(summary)) + summary.singleSummaryReporter(cdashReportData) + + summaryLine = CDQAR.getOverallCDashReportSummaryLine( + cdashReportData, cdashProjectName+" "+groupName, dateRangeStr) + print("\n"+summaryLine) + + # Finish HTML body paragraph + cdashReportData.htmlEmailBodyTop += "\n

" + + defaultPageStyle = CDQAR.getDefaultHtmlPageStyleStr() + + if writeEmailToFile: + print("\nWriting HTML to file: "+writeEmailToFile+" ...") + htmlStr = CDQAR.getFullCDashHtmlReportPageStr(cdashReportData, + pageTitle=summaryLine, pageStyle=defaultPageStyle) + # print(htmlStr) + with open(writeEmailToFile, 'w') as outFile: + outFile.write(htmlStr) + + if sendEmailTo: + htmlStr = CDQAR.getFullCDashHtmlReportPageStr(cdashReportData, + pageStyle=defaultPageStyle) + for emailAddress in sendEmailTo.split(','): + emailAddress = emailAddress.strip() + print("\nSending email to '"+emailAddress+"' ...") + msg=CDQAR.createHtmlMimeEmail( + sendEmailFrom, emailAddress, summaryLine, "", htmlStr) + CDQAR.sendMineEmail(msg) + + def getCmndLineArgs(self): + parser = argparse.ArgumentParser(description=self.usageHelp) + + parser.add_argument("--cdash-site-url", default="", required=True, + help="Base CDash site (e.g. 'https://testing.sandia.gov/cdash')."+\ + " [REQUIRED]") + parser.add_argument("--cdash-project-name", default="", required=True, + help="CDash project name (e.g. TriBITS)."+\ + " [REQUIRED]") + parser.add_argument("--initial-nonpassing-test-filters", default="", required=True, + help="Partial URL fragment containing CDash filters for the initial set"+\ + " of nonpassing tests (e.g. 'filtercount=2&showfilters=1&filtercombine=and&field1=status&compare1=63&"+\ + "value1=Failed&field2=groupname&compare2=63&value2=Pull%%20Request')."+\ + " [REQUIRED]") + parser.add_argument("--group-name", default="", required=True, + help="Name of the build group index for filtering a set of test (e.g. 'Pull Request')."+\ + " [REQUIRED]") + parser.add_argument("--cdash-testing-day-start-time", default="00:00", + help="CDash project's testing day start time in UTC format ':'."+\ + " [default='00:00']") + parser.add_argument("--reference-date", default="yesterday", + help="Starting reference date for querying failing tests as or"+\ + " special values 'today' or 'yesterday.'"+\ + " [default='yesterday']") + parser.add_argument("--days-of-history", default=1, type=int, + help="Number of days of testing history to query starting from the reference and going"+\ + " backwards in time."+\ + " [default=1]") + parser.add_argument("--print-url-mode", choices=['none','initial','all'], default='none', + help="Mode of url printing."+\ + " [default=none]") + parser.add_argument("--write-email-to-file", default="", + help="Name of file to write built email HTML to."+\ + " [default='']") + parser.add_argument("--send-email-to", default="", + help="Target email address to send script summary results to."+\ + " [default='']") + parser.add_argument("--send-email-from", default="random-failure-script@noreply.org", + help="Addressed sender of the script summary results email."+\ + " [default='random-failure-script@noreply.org']") + + self.args = parser.parse_args() + + def getDateRangeTuple(self, referenceDateTime, dayTimeDelta): + beginDateTime = referenceDateTime - datetime.timedelta(days=(dayTimeDelta-1)) + beginDateTimeStr = CBTD.getDateStrFromDateTime(beginDateTime) + endDateTimeStr = CBTD.getDateStrFromDateTime(referenceDateTime) + return (beginDateTimeStr, endDateTimeStr) + + def getBuildIdFromTest(self, test): + return test['buildSummaryLink'].split("/")[-1] + + def downloadBuildSummaryOffCDash(self, + cdashBuildSummaryQueryUrl, buildSummaryCacheFile=None, + useCachedCDashData=False, alwaysUseCacheFileIfExists=False, + verbose='False' + ): + verbose = verbose == 'all' + buildSummaryJson = CDQAR.getAndCacheCDashQueryDataOrReadFromCache( + cdashBuildSummaryQueryUrl, buildSummaryCacheFile, useCachedCDashData, + alwaysUseCacheFileIfExists, verbose) + return buildSummaryJson + + +class RandomFailureSummary(object): + + def __init__(self, buildName, testName, testHistoryUrl, sha1Pair): + self.buildName = buildName + self.testName = testName + self.testHistoryUrl = testHistoryUrl + self.sha1Pair = sha1Pair + + def __str__(self): + myStr = "Test name: "+self.testName +\ + "\nBuild name: "+self.buildName +\ + "\nIdentical sha1 pairs: "+str(self.sha1Pair) +\ + "\nTest history browser URL: " +\ + "\n "+self.testHistoryUrl+"\n" + return myStr + + def singleSummaryReporter(self, cdashReportData): + cdashReportData.htmlEmailBodyTop += \ + "\n
Build name: "+ self.buildName +\ + "\n
Test name: "+ self.testName +\ + "\n
Test history URL: "+ self.testHistoryUrl +\ + "\n
Sha1 Pair : "+ str(self.sha1Pair) + diff --git a/tribits/ci_support/CDashQueryAnalyzeReport.py b/tribits/ci_support/CDashQueryAnalyzeReport.py index dc20a2f54..c5cc46b7e 100644 --- a/tribits/ci_support/CDashQueryAnalyzeReport.py +++ b/tribits/ci_support/CDashQueryAnalyzeReport.py @@ -762,6 +762,16 @@ def getCDashQueryTestsBrowserUrl(cdashUrl, projectName, date, filterFields): return cdashUrl+"/queryTests.php?project="+projectName+dateArg+"&"+filterFields +# Construct full cdash/api/v1/buildSummary.php query URL given the buildId +def getCDashBuildSummaryQueryUrl(cdashUrl, buildId): + return cdashUrl+"/api/v1/buildSummary.php?buildid="+buildId + + +# Construct full cdash/build browser URL given the buildId +def getCDashBuildSummaryBrowserUrl(cdashUrl, buildId): + return cdashUrl+"/build/"+buildId + + # Copy a key/value pair from one dict to another if it eixsts def copyKeyDictIfExists(sourceDict_in, keyName_in, dict_inout): value = sourceDict_in.get(keyName_in, None)