Skip to content
  • fpizlo@apple.com's avatar
    Unified test infrastructure via the jsc shell · 89a4f645
    fpizlo@apple.com authored
    https://bugs.webkit.org/show_bug.cgi?id=120696
    
    Source/JavaScriptCore: 
    
    Reviewed by Oliver Hunt.
            
    Add a mozilla-tests.yaml list. This is autogenerated by create-mozilla-js-test-list.
    I think it's better to leave this checked in; we may even just edit it directly in
    the future. Also generating it is not cheap.
            
    Fix some low-hanging fruit bugs that I caught by introducing more test coverage.
            
    - We were not emitting labels for CFA-unreachable blocks, which caused link errors.
      It's possible for a CFA-unreachable block to be jumped to, if the thing that causes
      it to be unreachable is a speculation in a Branch or peephole compare.
            
    - The register allocation assertions didn't handle peephole branches correctly. Since
      the peephole branch handling returns early from compile(), the clearBlahbittyBlah()
      method wasn't being called.
    
    * dfg/DFGSpeculativeJIT.cpp:
    (JSC::DFG::SpeculativeJIT::compileCurrentBlock):
    * dfg/DFGSpeculativeJIT32_64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * dfg/DFGSpeculativeJIT64.cpp:
    (JSC::DFG::SpeculativeJIT::compile):
    * tests/mozilla/mozilla-tests.yaml: Added.
    
    Tools: 
    
    Reviewed by Oliver Hunt.
            
    Make run-jsc-stress-tests smart enough to be able to handle different styles of test
    output (silent or noisy) and different styles of test failure (just bad exit code,
    text diff, filtering for some magical text, etc.). This allows me to get rid of the
    layout-test-helper. It also allows me to switch all of the old Mozilla tests to
    running in run-jsc-stress-tests.
            
    Also removes all of the code paths that defended against not having shellwords. Just
    install the shellwords gem if you want to run tests.
            
    Also removes the non-parallel test running code. No reason for it to exist anymore.
            
    This is a massive increase in test coverage. It uncovered bugs. I fixed two of them
    as part of this patch, and left three more as new bugzillas.
    
    * Scripts/create-mozilla-js-test-list: Added.
    * Scripts/jsc-stress-test-helpers/check-mozilla-failure: Added.
    * Scripts/jsc-stress-test-helpers/layout-test-helper: Removed.
    * Scripts/run-javascriptcore-tests:
    * Scripts/run-jsc-stress-tests:
    
    LayoutTests: 
    
    Reviewed by Oliver Hunt.
            
    Suppress running the no-cjit and dfg-eager variants of these tests because there are
    still some hard bugs to fix; they were revealed by the increase in test coverage.
    
    * js/script-tests/dfg-inline-arguments-capture-throw-exception.js:
    * js/script-tests/dfg-uint32-to-number-in-middle-of-copy-propagation.js:
    * js/script-tests/integer-division-neg2tothe32-by-neg1.js:
    
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157014 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    89a4f645