Bug 76630

Summary: REGRESSION(r100558): NRWT should work without SVN or GIT
Product: WebKit Reporter: Csaba Osztrogonác <ossy>
Component: Tools / TestsAssignee: Dirk Pranke <dpranke>
Severity: Normal CC: abarth, alex.bravo, dpranke, eric, lauro.neto, ojan, ossy, webkit.review.bot, zarvai
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on:    
Bug Blocks: 72247    
Description Flags
Patch none

Description Csaba Osztrogonác 2012-01-19 07:07:56 PST
After http://trac.webkit.org/changeset/100558 NRWT exits 
before testing if the WebKit isn't is SVN or GIT SCM:

For more parallelism, run new-run-webkit-tests directly.
Traceback (most recent call last):
  File "/home/oszi/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 426, in <module>
  File "/home/oszi/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 419, in main
  File "/home/oszi/WebKit/Tools/Scripts/webkitpy/common/host.py", line 112, in _initialize_scm
    self._scm = detector.default_scm(patch_directories)
  File "/home/oszi/WebKit/Tools/Scripts/webkitpy/common/checkout/scm/detection.py", line 60, in default_scm
    raise Exception("FATAL: Failed to determine the SCM system for either %s or %s" % (cwd, script_directory))
Exception: FATAL: Failed to determine the SCM system for either /home/oszi/WebKit or /home/oszi/WebKit/Tools/Scripts/webkitpy/common/checkout/scm

It would be great if we can run NRWT again without copying ~5Gb sized repository for an embedded system.
I don't think if NRWT should depends on SCM.
Comment 1 Csaba Osztrogonác 2012-01-19 07:18:26 PST
Created attachment 123124 [details]

It is only a workaround (partial revert of r100558) to make NRWT 
work without GIT or SVN SCM. Feel free to use it until a proper fix.
Comment 2 Eric Seidel (no email) 2012-01-19 09:24:54 PST
No.  I don't think we should support this.
Comment 3 Eric Seidel (no email) 2012-01-19 09:25:28 PST
I think not having a checkout just makes things more complicated.  I don't think there is a lot of need to support running the tests w/o a full development environment.
Comment 4 Csaba Osztrogonác 2012-01-19 09:42:57 PST
I really don't understand why should NRWT depends on SCM if it doesn't 
use it for running tests ... Copying ~5Gb sized full repository to an 
embedded system is _impossible_. 

We really need WebKit lib, DumpRenderTree, Tools/Scripts/webkitpy, 
LayoutTests/platform/my-favourite-platform and LayoutTests directory 
without other platform results for testing. It is maximum 2-300Mb, 
which can be copied simple to a device.

But now this crazy dependency is the only blocker.
Comment 5 Alex Bravo 2012-06-05 14:02:56 PDT
I just run across a problem that when only git is installed and svn is NOT installed. I get a crash like the one supplied below. 
It's pretty hard to find out from that crash that missing subversion is the problem.

alex@alex8540:~/projects/webkit-desk$ python Tools/Scripts/new-run-webkit-tests 
Traceback (most recent call last):
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 452, in <module>
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py", line 444, in main
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/common/host.py", line 112, in _initialize_scm
    self._scm = detector.default_scm(patch_directories)
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/common/checkout/scm/detection.py", line 53, in default_scm
    scm_system = self.detect_scm_system(cwd, patch_directories)
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/common/checkout/scm/detection.py", line 69, in detect_scm_system
    if SVN.in_working_directory(absolute_path):
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/common/checkout/scm/svn.py", line 93, in in_working_directory
    exit_code = Executive().run_command(svn_info_args, cwd=path, return_exit_code=True)
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/common/system/executive.py", line 397, in run_command
  File "/home/alex/projects/webkit-desk/Tools/Scripts/webkitpy/common/system/executive.py", line 453, in popen
    return subprocess.Popen(*args, **kwargs)
  File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
    errread, errwrite)
  File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
    raise child_exception
Comment 6 Dirk Pranke 2012-06-18 17:48:54 PDT
Created attachment 148215 [details]
Comment 7 Dirk Pranke 2012-06-18 17:52:02 PDT
I've updated this patch (just merged to head and added a ChangeLog) and am landing it. NRWT is explicitly not supposed to be required to have a checkout, so I agree w/ Ossy here.

Note that if we are in an SVN checkout and are configured to upload the build results we will extract the revision number if we can; that code is in json_results_generator, and it should deal with a lack-of-svn fine, though (it will probably raise an error if there is a .svn dir but you don't have an svn binary in your path, but that shouldn't happen in practice).
Comment 8 Dirk Pranke 2012-06-18 17:58:25 PDT
Committed r120646: <http://trac.webkit.org/changeset/120646>
Comment 9 Rafael Brandao 2012-06-19 07:20:00 PDT
*** Bug 87020 has been marked as a duplicate of this bug. ***