mirror of
https://github.com/tc39/test262.git
synced 2025-05-03 14:30:27 +02:00
* [javascriptcore-test262-automation] changes from git@github.com:WebKit/webkit.git at sha 949e26452cfa153a7f4afe593da97e2fe9e1b706 on Tue Jul 03 2018 14:35:15 GMT-0400 (Eastern Daylight Time)
94 lines
3.0 KiB
Ruby
Executable File
94 lines
3.0 KiB
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
# Copyright (C) 2016 Apple Inc. All rights reserved.
|
|
#
|
|
# 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.
|
|
#
|
|
# THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "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 APPLE OR ITS 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.
|
|
|
|
require 'fileutils'
|
|
require 'getoptlong'
|
|
require 'pathname'
|
|
require 'rbconfig'
|
|
require 'open3'
|
|
|
|
THIS_SCRIPT_PATH = Pathname.new(__FILE__).realpath
|
|
WASM_PATH = THIS_SCRIPT_PATH.dirname
|
|
raise unless WASM_PATH.basename.to_s == "wasm"
|
|
raise unless WASM_PATH.dirname.basename.to_s == "JSTests"
|
|
|
|
def usage
|
|
puts ""
|
|
puts "usage:"
|
|
puts " import-spec-tests.rb --spec <path-to-wasm-spec-git-repo> [-v]"
|
|
puts ""
|
|
puts " the wasm spec's git repo can be found here: https://github.com/WebAssembly/spec"
|
|
puts ""
|
|
exit 1
|
|
end
|
|
|
|
$specDirectory = nil
|
|
$verbose = false
|
|
|
|
GetoptLong.new(['--spec',GetoptLong::REQUIRED_ARGUMENT],
|
|
['-v', GetoptLong::OPTIONAL_ARGUMENT],
|
|
['--help', GetoptLong::OPTIONAL_ARGUMENT],
|
|
).each {
|
|
| opt, arg |
|
|
case opt
|
|
when '--help'
|
|
usage
|
|
when '--spec'
|
|
$specDirectory = arg
|
|
when '-v'
|
|
$verbose = true
|
|
end
|
|
}
|
|
|
|
raise unless $specDirectory
|
|
|
|
$resultDirectory = File.join(WASM_PATH, "spec-tests")
|
|
$harnessDirectory = File.join(WASM_PATH, "spec-harness")
|
|
|
|
$specTestDirectory = File.join($specDirectory, "test")
|
|
|
|
def removeDir(file)
|
|
begin
|
|
FileUtils.remove_dir(file)
|
|
rescue
|
|
puts "No directory: #{file}" if $verbose
|
|
end
|
|
end
|
|
|
|
removeDir($resultDirectory)
|
|
removeDir($harnessDirectory)
|
|
|
|
FileUtils.mkdir($resultDirectory)
|
|
FileUtils.cp_r(File.join($specTestDirectory, "harness"), $harnessDirectory)
|
|
|
|
$genScript = File.join($specTestDirectory, "build.py")
|
|
stdout, stderr, status = Open3.capture3("#{$genScript} --js #{$resultDirectory}")
|
|
if stderr != ""
|
|
puts "failed to generate tests"
|
|
puts "The error is:\n--------------\n #{stderr}\n--------------\n" if $verbose
|
|
end
|
|
puts stdout if $verbose
|
|
|