File: test_arraybuffer.py

package info (click to toggle)
thunderbird 1%3A60.9.0-1~deb9u1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 2,339,492 kB
  • sloc: cpp: 5,457,040; ansic: 2,360,385; python: 596,167; asm: 340,963; java: 326,296; xml: 258,830; sh: 84,445; makefile: 23,705; perl: 17,317; objc: 3,768; yacc: 1,766; ada: 1,681; lex: 1,364; pascal: 1,264; cs: 879; exp: 527; php: 436; lisp: 258; ruby: 153; awk: 152; sed: 53; csh: 27
file content (81 lines) | stat: -rw-r--r-- 3,762 bytes parent folder | download | duplicates (26)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import WebIDL

def WebIDLTest(parser, harness):
    parser.parse("""
        interface TestArrayBuffer {
          attribute ArrayBuffer bufferAttr;
          void bufferMethod(ArrayBuffer arg1, ArrayBuffer? arg2, sequence<ArrayBuffer> arg3);

          attribute ArrayBufferView viewAttr;
          void viewMethod(ArrayBufferView arg1, ArrayBufferView? arg2, sequence<ArrayBufferView> arg3);

          attribute Int8Array int8ArrayAttr;
          void int8ArrayMethod(Int8Array arg1, Int8Array? arg2, sequence<Int8Array> arg3);

          attribute Uint8Array uint8ArrayAttr;
          void uint8ArrayMethod(Uint8Array arg1, Uint8Array? arg2, sequence<Uint8Array> arg3);

          attribute Uint8ClampedArray uint8ClampedArrayAttr;
          void uint8ClampedArrayMethod(Uint8ClampedArray arg1, Uint8ClampedArray? arg2, sequence<Uint8ClampedArray> arg3);

          attribute Int16Array int16ArrayAttr;
          void int16ArrayMethod(Int16Array arg1, Int16Array? arg2, sequence<Int16Array> arg3);

          attribute Uint16Array uint16ArrayAttr;
          void uint16ArrayMethod(Uint16Array arg1, Uint16Array? arg2, sequence<Uint16Array> arg3);

          attribute Int32Array int32ArrayAttr;
          void int32ArrayMethod(Int32Array arg1, Int32Array? arg2, sequence<Int32Array> arg3);

          attribute Uint32Array uint32ArrayAttr;
          void uint32ArrayMethod(Uint32Array arg1, Uint32Array? arg2, sequence<Uint32Array> arg3);

          attribute Float32Array float32ArrayAttr;
          void float32ArrayMethod(Float32Array arg1, Float32Array? arg2, sequence<Float32Array> arg3);

          attribute Float64Array float64ArrayAttr;
          void float64ArrayMethod(Float64Array arg1, Float64Array? arg2, sequence<Float64Array> arg3);
        };
    """)

    results = parser.finish()

    iface = results[0]

    harness.ok(True, "TestArrayBuffer interface parsed without error")
    harness.check(len(iface.members), 22, "Interface should have twenty two members")

    members = iface.members

    def checkStuff(attr, method, t):
        harness.ok(isinstance(attr, WebIDL.IDLAttribute), "Expect an IDLAttribute")
        harness.ok(isinstance(method, WebIDL.IDLMethod), "Expect an IDLMethod")

        harness.check(str(attr.type), t, "Expect an ArrayBuffer type")
        harness.ok(attr.type.isSpiderMonkeyInterface(), "Should test as a js interface")

        (retType, arguments) = method.signatures()[0]
        harness.ok(retType.isVoid(), "Should have a void return type")
        harness.check(len(arguments), 3, "Expect 3 arguments")

        harness.check(str(arguments[0].type), t,  "Expect an ArrayBuffer type")
        harness.ok(arguments[0].type.isSpiderMonkeyInterface(), "Should test as a js interface")

        harness.check(str(arguments[1].type), t + "OrNull",  "Expect an ArrayBuffer type")
        harness.ok(arguments[1].type.inner.isSpiderMonkeyInterface(), "Should test as a js interface")

        harness.check(str(arguments[2].type), t + "Sequence",  "Expect an ArrayBuffer type")
        harness.ok(arguments[2].type.inner.isSpiderMonkeyInterface(), "Should test as a js interface")


    checkStuff(members[0],  members[1],  "ArrayBuffer")
    checkStuff(members[2],  members[3],  "ArrayBufferView")
    checkStuff(members[4],  members[5],  "Int8Array")
    checkStuff(members[6],  members[7],  "Uint8Array")
    checkStuff(members[8],  members[9],  "Uint8ClampedArray")
    checkStuff(members[10], members[11], "Int16Array")
    checkStuff(members[12], members[13], "Uint16Array")
    checkStuff(members[14], members[15], "Int32Array")
    checkStuff(members[16], members[17], "Uint32Array")
    checkStuff(members[18], members[19], "Float32Array")
    checkStuff(members[20], members[21], "Float64Array")