blob: 325af448e2ba471ed39c3315d5bb9be84d9c6e0b [file] [edit]
#!/usr/bin/env python3
# Copyright (C) 2026 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 INC. 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.
import logging
import os
import sys
scripts_dir = os.path.dirname(os.path.abspath(__file__))
libraries_dir = os.path.join(scripts_dir, 'libraries')
sys.path.insert(0, os.path.join(libraries_dir, 'webkitcorepy'))
import webkitpy
from webkitcorepy import log
from webkitcorepy.testing.llm_test_runner import LLMTestRunner
if __name__ == '__main__':
logging.basicConfig(level=logging.WARNING)
opensource_dir = os.path.dirname(os.path.dirname(scripts_dir))
claude_dir = os.path.join(opensource_dir, '.claude')
if not os.path.isdir(claude_dir):
sys.stderr.write('Expected .claude directory at {}\n'.format(claude_dir))
sys.exit(1)
sys.exit(LLMTestRunner(
description='Run structural validation for Claude Code skills in WebKit.',
claude_dir=claude_dir,
name='webkit',
loggers=[logging.getLogger(), log],
).main(*sys.argv[1:]))