Bug 125196

Summary: [Win] run-jsc-stress-tests failures
Product: WebKit Reporter: Brent Fulgham <bfulgham>
Component: JavaScriptCoreAssignee: Brent Fulgham <bfulgham>
Status: RESOLVED FIXED    
Severity: Normal CC: bfulgham, fpizlo, joepeck, mark.lam, mhahnenberg, msaboff, ossy, peavo
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: PC   
OS: All   
Bug Depends on: 125111    
Bug Blocks:    
Attachments:
Description Flags
Patch none

Description Brent Fulgham 2013-12-03 15:19:39 PST
The Apple Windows build has 34 Failures:

** The following JSC stress test failures have been introduced:
	profiler-test.yaml/tests/sunspider-1.0/3d-cube.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/3d-morph.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/3d-raytrace.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/access-binary-trees.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/access-fannkuch.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/access-nbody.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/access-nsieve.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/bitops-3bit-bits-in-byte.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/bitops-bits-in-byte.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/bitops-bitwise-and.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/bitops-nsieve-bits.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/controlflow-recursive.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/crypto-aes.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/crypto-md5.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/crypto-sha1.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/date-format-tofte.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/date-format-xparb.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/math-cordic.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/math-partial-sums.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/math-spectral-norm.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/regexp-dna.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/string-base64.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/string-fasta.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/string-tagcloud.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/string-unpack-code.js.profiler
	profiler-test.yaml/tests/sunspider-1.0/string-validate-input.js.profiler
	jsc-layout-tests.yaml/js/script-tests/math.js.layout
	jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/math.js.layout-dfg-eager-no-cjit
	jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
	jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
	jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
	jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit
Comment 1 Brent Fulgham 2013-12-03 17:42:28 PST
The sunspider tests may be failing due to path issues.  The test harness is run from Cygwin, but the JSC executable is a Windows binary that expects paths to be in DOS/Windows format.

If I modify the "run-jsc-stress-tests" to pass a Windows-style path to the test input, I now get a series of files containing ">quit" in them.
Comment 2 Brent Fulgham 2013-12-03 17:47:15 PST
Created attachment 218368 [details]
Patch
Comment 3 Brent Fulgham 2013-12-03 17:47:44 PST
The attached patch gets things working, but may not be good idiomatic Ruby code.
Comment 4 Brent Fulgham 2013-12-03 17:48:51 PST
With this patch, I get the following results:

** The following JSC stress test failures have been introduced:
        jsc-layout-tests.yaml/js/script-tests/math.js.layout
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/math.js.layout-dfg-eager-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-llint
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-no-cjit
        jsc-layout-tests.yaml/js/script-tests/sort-stability.js.layout-dfg-eager-no-cjit

Results for JSC stress tests:
    8 failures found.

It doesn't seem like the profiling output is being incorporated into the "failure" part of the testing.
Comment 5 Mark Hahnenberg 2013-12-04 10:41:12 PST
Comment on attachment 218368 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=218368&action=review

> Tools/Scripts/run-jsc-stress-tests:87
> +    if $? == 0
> +        $isCygwin = 1
> +    else
> +        $isCygwin = 0
> +    end

How about:

$isCygwin = $? == 0

Also, in Ruby booleans are distinct from numbers (unlike, e.g., perl).

> Tools/Scripts/run-jsc-stress-tests:89
> +    $isCygwin = 0

$isCygwin = false

> Tools/Scripts/run-jsc-stress-tests:596
> +    if $isCygwin == 1

if $isCygwin

I'm surprised that this is the only place where you need to do this. I guess profilerOutput is the only absolute path generated by the script? If so it might make sense to just change this to a relative path so that we don't need any cygwin specific stuff.
Comment 6 Csaba Osztrogonác 2015-10-06 06:48:22 PDT
Windows bots already run jsc stress tests long long time ago.
Comment 7 Joseph Pecoraro 2015-11-12 21:21:32 PST
Clearing review flag, this bug has already been marked as closed anyways.