Index: third_party/WebKit/LayoutTests/external/wpt/webvtt/webvtt-file-format-parsing/webvtt-cue-text-parsing-rules/buildtests.py |
diff --git a/third_party/WebKit/LayoutTests/external/wpt/webvtt/webvtt-file-format-parsing/webvtt-cue-text-parsing-rules/buildtests.py b/third_party/WebKit/LayoutTests/external/wpt/webvtt/webvtt-file-format-parsing/webvtt-cue-text-parsing-rules/buildtests.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..5ad788bc088f3968e72a1e02b6890df75ababec9 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/external/wpt/webvtt/webvtt-file-format-parsing/webvtt-cue-text-parsing-rules/buildtests.py |
@@ -0,0 +1,67 @@ |
+#!/usr/bin/python |
+ |
+import os |
+import urllib |
+import hashlib |
+ |
+doctmpl = """<!doctype html> |
+<title>WebVTT cue data parser test %s</title> |
+<style>video { display:none }</style> |
+<script src=/resources/testharness.js></script> |
+<script src=/resources/testharnessreport.js></script> |
+<script src=/html/syntax/parsing/template.js></script> |
+<script src=/html/syntax/parsing/common.js></script> |
+<script src=../common.js></script> |
+<div id=log></div> |
+<script> |
+runTests([ |
+%s |
+]); |
+</script>""" |
+ |
+testobj = "{name:'%s', input:'%s', expected:'%s'}" |
+ |
+def appendtest(tests, input, expected): |
+ tests.append(testobj % (hashlib.sha1(input).hexdigest(), urllib.quote(input[:-1]), urllib.quote(expected[:-1]))) |
+ |
+files = os.listdir('dat/') |
+for file in files: |
+ if os.path.isdir('dat/'+file) or file[0] == ".": |
+ continue |
+ tests = [] |
+ input = "" |
+ expected = "" |
+ state = "" |
+ f = open('dat/'+file, "r") |
+ while 1: |
+ line = f.readline() |
+ if not line: |
+ if state != "": |
+ appendtest(tests, input, expected) |
+ input = "" |
+ expected = "" |
+ state = "" |
+ break |
+ if line[0] == "#": |
+ state = line |
+ if line == "#document-fragment\n": |
+ expected = expected + line |
+ elif state == "#data\n": |
+ input = input + line |
+ elif state == "#errors\n": |
+ pass |
+ elif state == "#document-fragment\n": |
+ if line == "\n": |
+ appendtest(tests, input, expected) |
+ input = "" |
+ expected = "" |
+ state = "" |
+ else: |
+ expected = expected + line |
+ else: |
+ raise Exception("failed to parse file "+file+" line:"+line+" (state: "+state+")") |
+ f.close() |
+ barename = file.replace(".dat", "") |
+ out = open('tests/'+barename+".html", "w") |
+ out.write(doctmpl % (barename, ",\n".join(tests))) |
+ out.close() |