File: python_pybuffer_runme.py

package info (click to toggle)
swig 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 46,232 kB
  • sloc: cpp: 54,631; ansic: 29,122; java: 17,530; python: 12,505; cs: 10,369; ruby: 7,232; yacc: 6,477; makefile: 5,965; javascript: 5,520; sh: 5,415; perl: 4,187; php: 3,693; ml: 2,187; lisp: 2,056; tcl: 1,991; xml: 115
file content (70 lines) | stat: -rw-r--r-- 1,889 bytes parent folder | download | duplicates (2)
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
# run:
#  python python_pybuffer_runme.py benchmark
# for the benchmark, other wise the test case will be run
import python_pybuffer
import sys

def check(flag):
    if not flag:
        raise RuntimeError("Test failed")

if len(sys.argv) >= 2 and sys.argv[1] == "benchmark":
    # run the benchmark
    import time
    k = 1000000  # number of times to execute the functions

    t = time.time()
    a = bytearray(b"hello world")
    for i in range(k):
        python_pybuffer.title1(a)
    print("Time used by bytearray: {}".format(time.time() - t))

    t = time.time()
    b = "hello world"
    for i in range(k):
        python_pybuffer.title2(b)
    print("Time used by string: {}".format(time.time() - t))
else:
    # run the test case
    buf1 = bytearray(10)
    buf2 = bytearray(50)

    python_pybuffer.func1(buf1)
    check(buf1 == b"a" * 10)

    python_pybuffer.func2(buf2)
    check(buf2.startswith(b"Hello world!\x00"))

    count = python_pybuffer.func3(buf2)
    check(count == 10)  # number of alpha and number in 'Hello world!'

    length = python_pybuffer.func4(buf2)
    check(length == 12)

    buf3 = bytearray(b"hello")
    python_pybuffer.title1(buf3)
    check(buf3 == b"Hello")

    try:
        python_pybuffer.func1(1)
        raise RuntimeError("should throw TypeError")
    except TypeError as e:
        check("(char *buf1, int len)" in str(e))

    try:
        python_pybuffer.func2(1)
        raise RuntimeError("should throw TypeError")
    except TypeError as e:
        check("(char *buf2)" in str(e))

    try:
        python_pybuffer.func3(1)
        raise RuntimeError("should throw TypeError")
    except TypeError as e:
        check("(const char *buf3, int len)" in str(e))

    try:
        python_pybuffer.func4(1)
        raise RuntimeError("should throw TypeError")
    except TypeError as e:
        check("(const char *buf4)" in str(e))