rack-contrib icon indicating copy to clipboard operation
rack-contrib copied to clipboard

Tests fails (Ruby 3.1.2)

Open AlexWayfer opened this issue 3 years ago • 1 comments

> rake test
WARN: Skipping Rack::MailExceptions tests (mail not installed)
Run options: --seed 60240

# Running:

...................................F..../home/alex/Projects/ruby/rack-contrib/lib/rack/contrib/backstage.rb:13: warning: File.exists? is deprecated; use File.exist? instead
./home/alex/Projects/ruby/rack-contrib/lib/rack/contrib/backstage.rb:13: warning: File.exists? is deprecated; use File.exist? instead
..[DEPRECATION] `PostBodyContentTypeParser` is deprecated. Use `JSONBodyParser` as a drop-in replacement.
.[DEPRECATION] `PostBodyContentTypeParser` is deprecated. Use `JSONBodyParser` as a drop-in replacement.
.[DEPRECATION] `PostBodyContentTypeParser` is deprecated. Use `JSONBodyParser` as a drop-in replacement.
.[DEPRECATION] `PostBodyContentTypeParser` is deprecated. Use `JSONBodyParser` as a drop-in replacement.
.[DEPRECATION] `PostBodyContentTypeParser` is deprecated. Use `JSONBodyParser` as a drop-in replacement.
.[DEPRECATION] `PostBodyContentTypeParser` is deprecated. Use `JSONBodyParser` as a drop-in replacement.
..................................................[DEPRECATION] `PostBodyContentTypeParser` is deprecated. Use `JSONBodyParser` as a drop-in replacement.
.....................................................................................................................

Finished in 0.112627s, 1908.9515 runs/s, 4403.9067 assertions/s.

  1) Failure:
Rack::Profiler#test_0002_called multiple times via query params [/home/alex/Projects/ruby/rack-contrib/test/spec_rack_profiler.rb:26]:
Expected /Time#initialize \[4 calls, 4 total\]/ to match "<html><head>\n<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\">\n<title>ruby-prof call tree</title>\n<style type=\"text/css\">\r\n<!--\r\n  body {\r\n    font-size:70%;\r\n    padding:0;\r\n    margin:5px;\r\n    margin-right:0px;\r\n    margin-left:0px;\r\n    background: #ffffff;\r\n  }\r\n  ul {\r\n    margin-left:0px;\r\n    margin-top:0px;\r\n    margin-bottom:0px;\r\n    padding-left:0px;\r\n    list-style-type:none;\r\n  }\r\n  li {\r\n    margin-left:11px;\r\n    padding:0px;\r\n    white-space:nowrap;\r\n    border-top:1px solid #cccccc;\r\n    border-left:1px solid #cccccc;\r\n    border-bottom:none;\r\n  }\r\n  .thread {\r\n    margin-left:11px;\r\n    background:#708090;\r\n    padding-top:3px;\r\n    padding-left:12px;\r\n    padding-bottom:2px;\r\n    border-left:1px solid #CCCCCC;\r\n    border-top:1px solid #CCCCCC;\r\n    font-weight:bold;\r\n  }\r\n  .hidden {\r\n    display:none;\r\n    width:0px;\r\n    height:0px;\r\n    margin:0px;\r\n    padding:0px;\r\n    border-style:none;\r\n  }\r\n  .color01 { background:#adbdeb }\r\n  .color05 { background:#9daddb }\r\n  .color0 { background:#8d9dcb }\r\n  .color1 { background:#89bccb }\r\n  .color2 { background:#56e3e7 }\r\n  .color3 { background:#32cd70 }\r\n  .color4 { background:#a3d53c }\r\n  .color5 { background:#c4cb34 }\r\n  .color6 { background:#dcb66d }\r\n  .color7 { background:#cda59e }\r\n  .color8 { background:#be9d9c }\r\n  .color9 { background:#cf947a }\r\n  #commands {\r\n    font-size:10pt;\r\n    padding:10px;\r\n    margin-left:11px;\r\n    margin-bottom:0px;\r\n    margin-top:0px;\r\n    background:#708090;\r\n    border-top:1px solid #cccccc;\r\n    border-left:1px solid #cccccc;\r\n    border-bottom:none;\r\n  }\r\n  #titlebar {\r\n    font-size:10pt;\r\n    padding:10px;\r\n    margin-left:11px;\r\n    margin-bottom:0px;\r\n    margin-top:10px;\r\n    background:#8090a0;\r\n    border-top:1px solid #cccccc;\r\n    border-left:1px solid #cccccc;\r\n    border-bottom:none;\r\n  }\r\n  #help {\r\n    font-size:10pt;\r\n    padding:10px;\r\n    margin-left:11px;\r\n    margin-bottom:0px;\r\n    margin-top:0px;\r\n    background:#8090a0;\r\n    display:none;\r\n    border-top:1px solid #cccccc;\r\n    border-left:1px solid #cccccc;\r\n    border-bottom:none;\r\n  }\r\n  #sentinel {\r\n    height: 400px;\r\n    margin-left:11px;\r\n    background:#8090a0;\r\n    border-top:1px solid #cccccc;\r\n    border-left:1px solid #cccccc;\r\n    border-bottom:none;\r\n  }\r\n  input { margin-left:10px; }\r\n\r\n  .toggle {\r\n    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAJCAMAAAD0FKf3AAAAA3NCSVQICAjb4U/gAAAAb1BMVEX///98jcR8jMV4jMB7jcR7jcR8jcT////7/f/3/P/0+vzx+v7s9vzq9Pzm8Prk7vzi7fnj5/Pc5vTb5vbg5PHW4fHV3/XS3fLM1+3K1e/G0e3EzuzCzey8x+m8xuystuSqtt98jsR8jcR7jcQAAADWswcWAAAAJXRSTlMAVVVV3e7u////////////////////////////////////////Vv4VOQAAAAlwSFlzAAALEgAACxIB0t1+/AAAABx0RVh0U29mdHdhcmUAQWRvYmUgRmlyZXdvcmtzIENTNui8sowAAACVSURBVAiZPc/hDoIwDATgobCWgZsWgSGidOz9n9F1CPfrki+5tIqPXHSQVMVZFH8/sx/Is16X9zR2vtQPAMC6LxVnco5Dpvtt40QRGrspnueBqDUcdmrEMILtknkiQkQOU5RAsn9RPGRKNkLOxiibIEauNSYZy2CNyerGRngtsilkiLXP9Cx1bzuAZU13Himq/a3rWX4VVRPEuDWiLQAAAABJRU5ErkJggg==) no-repeat left center;\r\n    float:left;\r\n    width:9px;\r\n    height:9px;\r\n    margin:2px 1px 1px 1px;\r\n  }\r\n\r\n  .toggle.minus {\r\n    background-position: -9px 0;\r\n  }\r\n\r\n  .toggle.plus {\r\n    background-position: -18px 0;\r\n  }\r\n\r\n-->\r\n</style>\n<script type=\"text/javascript\">\r\n  /*\r\n   Copyright (C) 2005,2009  Stefan Kaes\r\n   [email protected]\r\n   */\r\n\r\n  function rootNode() {\r\n    return currentThread;\r\n  }\r\n\r\n  function showUL(node, show) {\r\n    var lis = node.childNodes;\r\n    var l = lis.length;\r\n    for (var i=0; i < l ; i++ ) {\r\n      toggle(lis[i], show);\r\n    }\r\n  }\r\n\r\n  function findUlChild(li){\r\n    var ul = li.childNodes[2];\r\n    while (ul && ul.nodeName != \"UL\") {\r\n      ul = ul.nextSibling;\r\n    }\r\n    return ul;\r\n  }\r\n\r\n  function isLeafNode(li) {\r\n    var img = li.firstChild;\r\n    return (img.className.indexOf('empty') > -1);\r\n  }\r\n\r\n  function toggle(li, show) {\r\n    if (isLeafNode(li))\r\n      return;\r\n\r\n    var img = li.firstChild;\r\n    img.className = 'toggle ';\r\n    img.className += show ? 'minus' : 'plus';\r\n\r\n    var ul = findUlChild(li);\r\n    if (ul) {\r\n      ul.style.display = show ? 'block' : 'none';\r\n      showUL(ul, true);\r\n    }\r\n  }\r\n\r\n  function toggleLI(li) {\r\n    var img = li.firstChild;\r\n    if (img.className.indexOf(\"minus\")>-1)\r\n      toggle(li, false);\r\n    else {\r\n      if (img.className.indexOf(\"plus\")>-1)\r\n        toggle(li, true);\r\n    }\r\n  }\r\n\r\n  function aboveThreshold(text, threshold) {\r\n    var match = text.match(/\\d+[.,]\\d+/);\r\n    return (match && parseFloat(match[0].replace(/,/, '.'))>=threshold);\r\n  }\r\n\r\n  function setThresholdLI(li, threshold) {\r\n    var img = li.firstChild;\r\n    var text = img.nextSibling.firstChild;\r\n    var ul = findUlChild(li);\r\n\r\n    var visible = aboveThreshold(text.nodeValue, threshold) ? 1 : 0;\r\n\r\n    var count = 0;\r\n    if (ul) {\r\n      count = setThresholdUL(ul, threshold);\r\n    }\r\n    if (count>0) {\r\n      img.className = 'toggle minus';\r\n    }\r\n    else {\r\n      img.className = 'toggle empty';\r\n    }\r\n    if (visible) {\r\n      li.style.display = 'block'\r\n    }\r\n    else {\r\n      li.style.display = 'none'\r\n    }\r\n    return visible;\r\n  }\r\n\r\n  function setThresholdUL(node, threshold) {\r\n    var lis = node.childNodes;\r\n    var l = lis.length;\r\n\r\n    var count = 0;\r\n    for ( var i = 0; i < l ; i++ ) {\r\n      count = count + setThresholdLI(lis[i], threshold);\r\n    }\r\n\r\n    var visible = (count > 0) ? 1 : 0;\r\n    if (visible) {\r\n      node.style.display = 'block';\r\n    }\r\n    else {\r\n      node.style.display = 'none';\r\n    }\r\n    return visible;\r\n  }\r\n\r\n  function toggleChildren(img, event) {\r\n    event.cancelBubble=true;\r\n    if (img.className.indexOf('empty') > -1)\r\n      return;\r\n\r\n    var minus = (img.className.indexOf('minus') > -1);\r\n\r\n    if (minus) {\r\n      img.className = 'toggle plus';\r\n    }\r\n    else\r\n      img.className = 'toggle minus';\r\n\r\n    var li = img.parentNode;\r\n    var ul = findUlChild(li);\r\n    if (ul) {\r\n      if (minus)\r\n        ul.style.display = 'none';\r\n      else\r\n        ul.style.display = 'block';\r\n    }\r\n    if (minus)\r\n      moveSelectionIfNecessary(li);\r\n  }\r\n\r\n  function showChildren(li) {\r\n    var img = li.firstChild;\r\n    if (img.className.indexOf('empty') > -1)\r\n      return;\r\n    img.className = 'toggle minus';\r\n\r\n    var ul = findUlChild(li);\r\n    if (ul) {\r\n      ul.style.display = 'block';\r\n    }\r\n  }\r\n\r\n  function setThreshold() {\r\n    var tv = document.getElementById(\"threshold\").value;\r\n    if (tv.match(/[0-9]+([.,][0-9]+)?/)) {\r\n      var f = parseFloat(tv.replace(/,/, '.'));\r\n      var threads = document.getElementsByName(\"thread\");\r\n      var l = threads.length;\r\n      for ( var i = 0; i < l ; i++ ) {\r\n        setThresholdUL(threads[i], f);\r\n      }\r\n      var p = selectedNode;\r\n      while (p && p.style.display=='none')\r\n        p=p.parentNode.parentNode;\r\n      if (p && p.nodeName==\"LI\")\r\n        selectNode(p);\r\n    }\r\n    else {\r\n      alert(\"Please specify a decimal number as threshold value!\");\r\n    }\r\n  }\r\n\r\n  function expandAll(event) {\r\n    toggleAll(event, true);\r\n  }\r\n\r\n  function collapseAll(event) {\r\n    toggleAll(event, false);\r\n    selectNode(rootNode(), null);\r\n  }\r\n\r\n  function toggleAll(event, show) {\r\n    event.cancelBubble=true;\r\n    var threads = document.getElementsByName(\"thread\");\r\n    var l = threads.length;\r\n    for ( var i = 0; i < l ; i++ ) {\r\n      showUL(threads[i], show);\r\n    }\r\n  }\r\n\r\n  function toggleHelp(node) {\r\n    var help = document.getElementById(\"help\");\r\n    if (node.value == \"Show Help\") {\r\n      node.value = \"Hide Help\";\r\n      help.style.display = 'block';\r\n    }\r\n    else {\r\n      node.value = \"Show Help\";\r\n      help.style.display = 'none';\r\n    }\r\n  }\r\n\r\n  var selectedNode = null;\r\n  var selectedColor = null;\r\n  var selectedThread = null;\r\n\r\n  function descendentOf(a,b){\r\n    while (a!=b && b!=null)\r\n      b=b.parentNode;\r\n    return (a==b);\r\n  }\r\n\r\n  function moveSelectionIfNecessary(node){\r\n    if (descendentOf(node, selectedNode))\r\n      selectNode(node, null);\r\n  }\r\n\r\n  function selectNode(node, event) {\r\n    if (event) {\r\n      event.cancelBubble = true;\r\n      thread = findThread(node);\r\n      selectThread(thread);\r\n    }\r\n    if (selectedNode) {\r\n      selectedNode.style.background = selectedColor;\r\n    }\r\n    selectedNode = node;\r\n    selectedColor = node.style.background;\r\n    selectedNode.style.background = \"red\";\r\n    selectedNode.scrollIntoView();\r\n    window.scrollBy(0,-400);\r\n  }\r\n\r\n  function moveUp(){\r\n    move(selectedNode.previousSibling);\r\n  }\r\n\r\n  function moveDown(){\r\n    move(selectedNode.nextSibling);\r\n  }\r\n\r\n  function move(p) {\r\n    while (p && p.style.display == 'none')\r\n      p = p.nextSibling;\r\n    if (p && p.nodeName == \"LI\") {\r\n      selectNode(p, null);\r\n    }\r\n  }\r\n\r\n  function moveLeft(){\r\n    var p = selectedNode.parentNode.parentNode;\r\n    if (p && p.nodeName==\"LI\") {\r\n      selectNode(p, null);\r\n    }\r\n  }\r\n\r\n  function moveRight(){\r\n    if (!isLeafNode(selectedNode)) {\r\n      showChildren(selectedNode);\r\n      var ul = findUlChild(selectedNode);\r\n      if (ul) {\r\n        selectNode(ul.firstChild, null);\r\n      }\r\n    }\r\n  }\r\n\r\n  function moveForward(){\r\n    if (isLeafNode(selectedNode)) {\r\n      var p = selectedNode;\r\n      while ((p.nextSibling == null || p.nextSibling.style.display=='none') && p.nodeName==\"LI\") {\r\n        p = p.parentNode.parentNode;\r\n      }\r\n      if (p.nodeName==\"LI\")\r\n        selectNode(p.nextSibling, null);\r\n    }\r\n    else {\r\n      moveRight();\r\n    }\r\n  }\r\n\r\n  function isExpandedNode(li){\r\n    var img = li.firstChild;\r\n    return(img.className.indexOf('minus')>-1);\r\n  }\r\n\r\n  function moveBackward(){\r\n    var p = selectedNode;\r\n    var q = p.previousSibling;\r\n    while (q != null && q.style.display=='none')\r\n      q = q.previousSibling;\r\n    if (q == null) {\r\n      p = p.parentNode.parentNode;\r\n    } else {\r\n      while (!isLeafNode(q) && isExpandedNode(q)) {\r\n        q = findUlChild(q).lastChild;\r\n        while (q.style.display=='none')\r\n          q = q.previousSibling;\r\n      }\r\n      p = q;\r\n    }\r\n    if (p.nodeName==\"LI\")\r\n      selectNode(p, null);\r\n  }\r\n\r\n  function moveHome() {\r\n    selectNode(currentThread);\r\n  }\r\n\r\n  var currentThreadIndex = null;\r\n\r\n  function findThread(node){\r\n    while (node && !node.parentNode.nodeName.match(/BODY|DIV/g)) {\r\n      node = node.parentNode;\r\n    }\r\n    return node.firstChild;\r\n  }\r\n\r\n  function selectThread(node){\r\n    var threads = document.getElementsByName(\"thread\");\r\n    currentThread = node;\r\n    for (var i=0; i<threads.length; i++) {\r\n      if (threads[i]==currentThread.parentNode)\r\n        currentThreadIndex = i;\r\n    }\r\n  }\r\n\r\n  function nextThread(){\r\n    var threads = document.getElementsByName(\"thread\");\r\n    if (currentThreadIndex==threads.length-1)\r\n      currentThreadIndex = 0;\r\n    else\r\n      currentThreadIndex += 1\r\n    currentThread = threads[currentThreadIndex].firstChild;\r\n    selectNode(currentThread, null);\r\n  }\r\n\r\n  function previousThread(){\r\n    var threads = document.getElementsByName(\"thread\");\r\n    if (currentThreadIndex==0)\r\n      currentThreadIndex = threads.length-1;\r\n    else\r\n      currentThreadIndex -= 1\r\n    currentThread = threads[currentThreadIndex].firstChild;\r\n    selectNode(currentThread, null);\r\n  }\r\n\r\n  function switchThread(node, event){\r\n    event.cancelBubble = true;\r\n    selectThread(node.nextSibling.firstChild);\r\n    selectNode(currentThread, null);\r\n  }\r\n\r\n  function handleKeyEvent(event){\r\n    var code = event.charCode ? event.charCode : event.keyCode;\r\n    var str = String.fromCharCode(code);\r\n    switch (str) {\r\n      case \"a\": moveLeft();  break;\r\n      case \"s\": moveDown();  break;\r\n      case \"d\": moveRight(); break;\r\n      case \"w\": moveUp();    break;\r\n      case \"f\": moveForward(); break;\r\n      case \"b\": moveBackward(); break;\r\n      case \"x\": toggleChildren(selectedNode.firstChild, event); break;\r\n      case \"*\": toggleLI(selectedNode); break;\r\n      case \"n\": nextThread(); break;\r\n      case \"h\": moveHome(); break;\r\n      case \"p\": previousThread(); break;\r\n    }\r\n  }\r\n  document.onkeypress=function(event){ handleKeyEvent(event) };\r\n\r\n  window.onload=function(){\r\n    var images = document.querySelectorAll(\".toggle\");\r\n    for (var i=0; i<images.length; i++) {\r\n      var img = images[i];\r\n        img.onclick = function(event){ toggleChildren(this, event); return false; };\r\n    }\r\n    var divs = document.getElementsByTagName(\"div\");\r\n    for (i=0; i<divs.length; i++) {\r\n      var div = divs[i];\r\n      if (div.className == \"thread\")\r\n        div.onclick = function(event){ switchThread(this, event) };\r\n    }\r\n    var lis = document.getElementsByTagName(\"li\");\r\n    for (var i=0; i<lis.length; i++) {\r\n      lis[i].onclick = function(event){ selectNode(this, event); };\r\n    }\r\n    var threads = document.getElementsByName(\"thread\");;\r\n    currentThreadIndex = 0;\r\n    currentThread = threads[0].firstChild;\r\n    selectNode(currentThread, null);\r\n  };\r\n\r\n</script>\n</head><body><div style=\"display: inline-block;\">\n<div id=\"titlebar\">\nCall tree for application <b>/home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-10.5.0/lib/rake/rake_test_loader.rb </b><br/>\nGenerated on 2022-09-24 15:37:23 +0300 with options {:min_percent=&gt;0.01}<br/>\n</div>\n<div id=\"commands\">\n<span style=\"font-size: 11pt; font-weight: bold;\">Threshold:</span>\n<input value=\"1.0\" size=\"3\" id=\"threshold\" type=\"text\">\n<input value=\"Apply\" onclick=\"setThreshold();\" type=\"submit\">\n<input value=\"Expand All\" onclick=\"expandAll(event);\" type=\"submit\">\n<input value=\"Collapse All\" onclick=\"collapseAll(event);\" type=\"submit\">\n<input value=\"Show Help\" onclick=\"toggleHelp(this);\" type=\"submit\">\n</div>\n<div style=\"display: none;\" id=\"help\">\n&#8226; Enter a decimal value <i>d</i> into the threshold field and click \"Apply\"\n        to hide all nodes marked with time values lower than <i>d</i>.<br>\n&#8226; Click on \"Expand All\" for full tree expansion.<br>\n&#8226; Click on \"Collapse All\" to show only top level nodes.<br>\n&#8226; Use a, s, d, w as in Quake or Urban Terror to navigate the tree.<br>\n&#8226; Use f and b to navigate the tree in preorder forward and backwards.<br>\n&#8226; Use x to toggle visibility of a subtree.<br>\n&#8226; Use * to expand/collapse a whole subtree.<br>\n&#8226; Use h to navigate to thread root.<br>\n&#8226; Use n and p to navigate between threads.<br>\n&#8226; Click on background to move focus to a subtree.<br>\n</div>\n<div class=\"thread\">Thread: 1600, Fiber: 1620 (100.00% ~ 0.0001081729999999892)</div><ul name=\"thread\"><li class=\"color9\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 100.00% (100.00%) <a href=\"file:///home/alex/Projects/ruby/rack-contrib/lib/rack/contrib/profiler.rb#70\">Rack::Profiler#profile</a> [1 calls, 1 total]</span>\n<ul><li class=\"color9\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 96.51% (96.51%) Integer#times [1 calls, 1 total]</span>\n<ul><li class=\"color8\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 88.10% (91.29%) <a href=\"file:///home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/timecop-0.9.5/lib/timecop/time_extensions.rb#22\">&lt;Class::Time&gt;#new_with_mock_time</a> [4 calls, 8 total]</span>\n<ul><li class=\"color6\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 67.44% (76.56%) <a href=\"file:///home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/timecop-0.9.5/lib/timecop/time_extensions.rb#14\">&lt;Class::Time&gt;#now_with_mock_time</a> [4 calls, 4 total]</span>\n<ul><li class=\"color3\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 32.25% (47.81%) <a href=\"file:///home/alex/Projects/ruby/rack-contrib/<internal:timev>#224\">&lt;Class::Time&gt;#now</a> [4 calls, 4 total]</span>\n<ul><li class=\"color2\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 26.43% (81.94%) <a href=\"file:///home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/timecop-0.9.5/lib/timecop/time_extensions.rb#22\">&lt;Class::Time&gt;#new_with_mock_time</a> [4 calls, 8 total]</span>\n<ul><li class=\"color1\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 15.03% (56.88%) &lt;Class::Time&gt;#new [4 calls, 4 total]</span>\n<ul><li class=\"color05\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 7.96% (52.98%) <a href=\"file:///home/alex/Projects/ruby/rack-contrib/<internal:timev>#298\">Time#initialize</a> [4 calls, 4 total]</span>\n</li></ul></li><li class=\"color01\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 1.74% (6.59%) Integer#&lt;= [4 calls, 8 total]</span>\n</li><li class=\"color01\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 1.60% (6.06%) Array#size [4 calls, 8 total]</span>\n</li></ul></li></ul></li><li class=\"color2\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 28.63% (42.45%) <a href=\"file:///home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/timecop-0.9.5/lib/timecop/time_extensions.rb#7\">&lt;Class::Time&gt;#mock_time</a> [4 calls, 4 total]</span>\n<ul><li class=\"color1\" style=\"display:block\"><a href=\"#\" class=\"toggle minus\" ></a><span> 18.63% (65.09%) <a href=\"file:///home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/timecop-0.9.5/lib/timecop/timecop.rb#105\">&lt;Class::Timecop&gt;#top_stack_item</a> [4 calls, 4 total]</span>\n<ul><li class=\"color01\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 4.62% (24.80%) <a href=\"file:///home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/timecop-0.9.5/lib/timecop/timecop.rb#158\">Timecop#stack</a> [4 calls, 4 total]</span>\n</li><li class=\"color01\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 3.82% (20.47%) <a href=\"file:///home/alex/.rbenv/versions/3.1.2/lib/ruby/3.1.0/singleton.rb#124\">Singleton::SingletonClassMethods#instance</a> [4 calls, 4 total]</span>\n</li><li class=\"color01\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 1.98% (10.64%) Array#last [4 calls, 4 total]</span>\n</li></ul></li><li class=\"color01\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 1.88% (6.57%) NilClass#nil? [4 calls, 4 total]</span>\n</li></ul></li></ul></li><li class=\"color05\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 10.42% (11.83%) Array#size [4 calls, 8 total]</span>\n</li><li class=\"color01\" style=\"display:block\"><a href=\"#\" class=\"toggle empty\" ></a><span> 2.03% (2.30%) Integer#&lt;= [4 calls, 8 total]</span>\n</li></ul></li></ul></li></ul></li></ul><div id=\"sentinel\"></div></div></body></html>\n".

215 runs, 496 assertions, 1 failures, 0 errors, 0 skips
rake aborted!
Command failed with status (1): [ruby -I"lib:test" -I"/home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-10.5.0/lib" "/home/alex/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0/gems/rake-10.5.0/lib/rake/rake_test_loader.rb" "test/spec_rack_access.rb" "test/spec_rack_backstage.rb" "test/spec_rack_bounce_favicon.rb" "test/spec_rack_callbacks.rb" "test/spec_rack_common_cookies.rb" "test/spec_rack_config.rb" "test/spec_rack_contrib.rb" "test/spec_rack_cookies.rb" "test/spec_rack_csshttprequest.rb" "test/spec_rack_deflect.rb" "test/spec_rack_enforce_valid_encoding.rb" "test/spec_rack_evil.rb" "test/spec_rack_expectation_cascade.rb" "test/spec_rack_garbagecollector.rb" "test/spec_rack_host_meta.rb" "test/spec_rack_json_body_parser_spec.rb" "test/spec_rack_jsonp.rb" "test/spec_rack_lazy_conditional_get.rb" "test/spec_rack_lighttpd_script_name_fix.rb" "test/spec_rack_locale.rb" "test/spec_rack_mailexceptions.rb" "test/spec_rack_nested_params.rb" "test/spec_rack_not_found.rb" "test/spec_rack_post_body_content_type_parser.rb" "test/spec_rack_proctitle.rb" "test/spec_rack_profiler.rb" "test/spec_rack_relative_redirect.rb" "test/spec_rack_response_cache.rb" "test/spec_rack_response_headers.rb" "test/spec_rack_runtime.rb" "test/spec_rack_simple_endpoint.rb" "test/spec_rack_static_cache.rb" "test/spec_rack_try_static.rb" ]
/home/alex/.rbenv/versions/3.1.2/bin/bundle:25:in `load'
/home/alex/.rbenv/versions/3.1.2/bin/bundle:25:in `<main>'
Tasks: TOP => test
(See full trace by running task with --trace)

AlexWayfer avatar Sep 24 '22 12:09 AlexWayfer

I guess we need to spend some time fixing these issues.

ioquatix avatar Sep 24 '22 22:09 ioquatix

I guess we need to spend some time fixing these issues.

I did 😄

dentarg avatar Sep 15 '23 07:09 dentarg