Title: [94899] trunk/Tools
Revision
94899
Author
a...@apple.com
Date
2011-09-09 21:00:45 -0700 (Fri, 09 Sep 2011)

Log Message

        Add a script to create a monolithic script-test
        https://bugs.webkit.org/show_bug.cgi?id=67747

        Reviewed by Darin Adler.

        * Scripts/make-new-script-test: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (94898 => 94899)


--- trunk/Tools/ChangeLog	2011-09-10 03:21:41 UTC (rev 94898)
+++ trunk/Tools/ChangeLog	2011-09-10 04:00:45 UTC (rev 94899)
@@ -1,3 +1,12 @@
+2011-09-09  Alexey Proskuryakov  <a...@apple.com>
+
+        Add a script to create a monolithic script-test
+        https://bugs.webkit.org/show_bug.cgi?id=67747
+
+        Reviewed by Darin Adler.
+
+        * Scripts/make-new-script-test: Added.
+
 2011-09-09  Luiz Agostini  <l...@webkit.org>
 
         Adding myself to the reviewers list.

Added: trunk/Tools/Scripts/make-new-script-test (0 => 94899)


--- trunk/Tools/Scripts/make-new-script-test	                        (rev 0)
+++ trunk/Tools/Scripts/make-new-script-test	2011-09-10 04:00:45 UTC (rev 94899)
@@ -0,0 +1,120 @@
+#!/usr/bin/perl -w
+
+# Copyright (C) 2011 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 INC. 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.
+
+# Script to create a new HTML file for a monolithic test using js-test machinery.
+
+use strict;
+
+use FindBin;
+use lib $FindBin::Bin;
+
+use File::Basename;
+use Getopt::Long;
+use webkitdirs;
+
+sub makeTestRelativePathToSharedSources;
+sub openTestInEditor;
+sub writeTestFile;
+
+my $showHelp;
+
+my $result = GetOptions(
+    "help"       => \$showHelp,
+);
+
+if (!$result || $showHelp || !scalar(@ARGV) || $ARGV[0] !~ m/\.html$/) {
+    print STDERR "Usage: " . basename($0) . " [-h|--help] pathname\n";
+    print STDERR "\nExamples:\n";
+    print STDERR "    " . basename($0) . " new-test.html (will create the test in current directory)\n";
+    print STDERR "    " . basename($0) . " fast/loader/new-test.html (a relative path is always from LayoutTests directory)\n";
+    print STDERR "    " . basename($0) . " /Volumes/Data/WebKit/LayoutTests/fast/loader/new-test.html\n";
+    exit 1;
+}
+
+my $providedPath = $ARGV[0];
+
+my $testAbsolutePath;
+
+# If only a file name is provided, create the test in current directory.
+$testAbsolutePath = File::Spec->rel2abs($providedPath) if (!(File::Spec->splitpath($providedPath))[1]);
+
+# Otherwise, it's either absolute, or relative to LayoutTests directory.
+chdirWebKit();
+chdir "LayoutTests";
+$testAbsolutePath = File::Spec->rel2abs($providedPath) if (!$testAbsolutePath);
+
+writeTestFile();
+
+print "$testAbsolutePath\n";
+openTestInEditor();
+
+exit 0;
+
+sub makeTestRelativePathToSharedSources
+{
+    my $layoutTestsPath = getcwd();
+    $testAbsolutePath =~ m/^$layoutTestsPath/ or die "Path $testAbsolutePath is not in LayoutTests directory.\n";
+    my $result = File::Spec->abs2rel("fast/js/resources/", dirname($testAbsolutePath));
+    return $result;
+}
+
+sub writeTestFile
+{
+    die "Test $testAbsolutePath already exists.\n" if (-e $testAbsolutePath);
+
+    my $relativePathToSharedSources = makeTestRelativePathToSharedSources();
+
+    open TEST, ">", ${testAbsolutePath} or die "Cannot create test file at $testAbsolutePath.\n";
+    print TEST << "EOF";
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<link rel="stylesheet" href=""
+<script src=""
+<title></title>
+</head>
+<body>
+<p>TEST DESCRIPTION HERE</p>
+<div id="console"></div>
+<script>
+
+// Your test script here. Feel free to modify surrounding HTML code if necessary.
+
+var successfullyParsed = true;
+
+</script>
+<script src=""
+</body>
+</html>
+EOF
+    close TEST;
+}
+
+sub openTestInEditor()
+{
+    my $editor = $ENV{EDITOR};
+    exec ($editor, $testAbsolutePath) if ($editor);
+}
Property changes on: trunk/Tools/Scripts/make-new-script-test
___________________________________________________________________

Added: svn:executable

_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to