mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Create a top-level "third_party" directory
This directory now contains third_party software that is vendored into the Servo source tree. The idea is that it would eventually hold webrender and other crates from mozilla-central as well with a standard patch management approach for each.
This commit is contained in:
parent
7412e28349
commit
8be014ee46
148 changed files with 10 additions and 7 deletions
311
third_party/WebIDL/tests/test_unforgeable.py
vendored
Normal file
311
third_party/WebIDL/tests/test_unforgeable.py
vendored
Normal file
|
@ -0,0 +1,311 @@
|
|||
def WebIDLTest(parser, harness):
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
harness.check(
|
||||
len(results),
|
||||
2,
|
||||
"Should be able to inherit from an interface with "
|
||||
"[LegacyUnforgeable] properties.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
const short foo = 10;
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
harness.check(
|
||||
len(results),
|
||||
2,
|
||||
"Should be able to inherit from an interface with "
|
||||
"[LegacyUnforgeable] properties even if we have a constant with "
|
||||
"the same name.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
static attribute short foo;
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
harness.check(
|
||||
len(results),
|
||||
2,
|
||||
"Should be able to inherit from an interface with "
|
||||
"[LegacyUnforgeable] properties even if we have a static attribute "
|
||||
"with the same name.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
static undefined foo();
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
harness.check(
|
||||
len(results),
|
||||
2,
|
||||
"Should be able to inherit from an interface with "
|
||||
"[LegacyUnforgeable] properties even if we have a static operation "
|
||||
"with the same name.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
undefined foo();
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(
|
||||
threw,
|
||||
"Should have thrown when shadowing unforgeable attribute on "
|
||||
"parent with operation.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
undefined foo();
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] undefined foo();
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
harness.ok(
|
||||
threw,
|
||||
"Should have thrown when shadowing unforgeable operation on "
|
||||
"parent with operation.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
attribute short foo;
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except Exception as x:
|
||||
threw = True
|
||||
harness.ok(
|
||||
threw,
|
||||
"Should have thrown when shadowing unforgeable attribute on "
|
||||
"parent with attribute.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
attribute short foo;
|
||||
};
|
||||
interface Parent {
|
||||
[LegacyUnforgeable] undefined foo();
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except Exception as x:
|
||||
threw = True
|
||||
harness.ok(
|
||||
threw,
|
||||
"Should have thrown when shadowing unforgeable operation on "
|
||||
"parent with attribute.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
};
|
||||
interface Parent {};
|
||||
interface mixin Mixin {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
Parent includes Mixin;
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
harness.check(
|
||||
len(results),
|
||||
4,
|
||||
"Should be able to inherit from an interface with a "
|
||||
"mixin with [LegacyUnforgeable] properties.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
undefined foo();
|
||||
};
|
||||
interface Parent {};
|
||||
interface mixin Mixin {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
Parent includes Mixin;
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
|
||||
harness.ok(
|
||||
threw,
|
||||
"Should have thrown when shadowing unforgeable attribute "
|
||||
"of parent's consequential interface.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
};
|
||||
interface Parent : GrandParent {};
|
||||
interface GrandParent {};
|
||||
interface mixin Mixin {
|
||||
[LegacyUnforgeable] readonly attribute long foo;
|
||||
};
|
||||
GrandParent includes Mixin;
|
||||
interface mixin ChildMixin {
|
||||
undefined foo();
|
||||
};
|
||||
Child includes ChildMixin;
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
|
||||
harness.ok(
|
||||
threw,
|
||||
"Should have thrown when our consequential interface shadows unforgeable attribute "
|
||||
"of ancestor's consequential interface.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface Child : Parent {
|
||||
};
|
||||
interface Parent : GrandParent {};
|
||||
interface GrandParent {};
|
||||
interface mixin Mixin {
|
||||
[LegacyUnforgeable] undefined foo();
|
||||
};
|
||||
GrandParent includes Mixin;
|
||||
interface mixin ChildMixin {
|
||||
undefined foo();
|
||||
};
|
||||
Child includes ChildMixin;
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
|
||||
harness.ok(
|
||||
threw,
|
||||
"Should have thrown when our consequential interface shadows unforgeable operation "
|
||||
"of ancestor's consequential interface.",
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
parser.parse(
|
||||
"""
|
||||
interface iface {
|
||||
[LegacyUnforgeable] attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
harness.check(
|
||||
len(results), 1, "Should allow writable [LegacyUnforgeable] attribute."
|
||||
)
|
||||
|
||||
parser = parser.reset()
|
||||
threw = False
|
||||
try:
|
||||
parser.parse(
|
||||
"""
|
||||
interface iface {
|
||||
[LegacyUnforgeable] static readonly attribute long foo;
|
||||
};
|
||||
"""
|
||||
)
|
||||
|
||||
results = parser.finish()
|
||||
except:
|
||||
threw = True
|
||||
|
||||
harness.ok(threw, "Should have thrown for static [LegacyUnforgeable] attribute.")
|
Loading…
Add table
Add a link
Reference in a new issue